Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2016-03-22

Structure and Interpretation of Computer Programs

From MIT Electrical Engineering and Computer Science
Structure and Interpretation of Computer Programs, Second Edition
By Harold Abelson and Gerald Jay Sussman
With Julie Sussman
https://mitpress.mit.edu/sicp/

Lisp itself can be assigned a semantics (another model, by the way),
and if a program's function can be specified, say, in the predicate calculus,
the proof methods of logic can be used to make an acceptable correctness argument.
Unfortunately, as programs get large and complicated, as they almost always do,
the adequacy, consistency, and correctness of the specifications themselves become
open to doubt, so that complete formal arguments of correctness seldom accompany large programs.
Since large programs grow from small ones, it is crucial that we develop an
arsenal of standard program structures of whose correctness we have become sure --
we call them idioms -- and learn to combine them into larger structures
using organizational techniques of proven value.
These techniques are treated at length in this book, and understanding them is essential
to participation in the Promethean enterprise called programming.
More than anything else, the uncovering and mastery of powerful organizational techniques
accelerates our ability to create large, significant programs.
Conversely, since writing large programs is very taxing,
we are stimulated to invent new methods of reducing the mass of function and detail
to be fitted into large programs.


Бунша (шепчет дьяку). Послушайте, товарищ! Товарищ, можно Вас на минуточку? Хотелось бы, так сказать, в общих чертах понять ... 

Да понять его немудрено: большие программы строятся из маленьких, поэтому надо оттачивать умение компоновать большое из малого, рассчитывая на то, что строительные блоки стандартны и проверены.
Хороший инженер обязан владеть всем арсеналом строительных блоков.




original post http://vasnake.blogspot.com/2016/03/structure-and-interpretation-of.html

1 комментарий:

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) Klaipeda (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) купи/продай (9) Photo (8) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)