Structura și interpretarea programelor informatice (în engleză Structure and Interpretation of Computer Programs, prescurtat SICP) este un manual de informatică scris de Harold Abelson și Gerald Jay Sussman, împreună cu Julie Sussman. Prima ediție a fost publicată de MIT Press în 1984, iar ediția a doua a apărut în 1996. În jargonul hackerilor, cartea este cunoscută și ca „Wizard Book”, denumire legată de ilustrația cu un vrăjitor de pe copertă.
Cartea tratează principii fundamentale ale programării, între care abstractizarea, recursivitatea, modularitatea și evaluarea expresiilor, precum și teme legate de interpretoare, compilatoare și proiectarea limbajelor de programare. Abordarea pedagogică este centrată pe controlul complexității sistemelor software prin abstracții, interfețe convenționale și moduri diferite de descriere a programelor.
MIT Press a publicat în 2022 o ediție adaptată la JavaScript, realizată pe baza edițiilor anterioare și revizuită pentru particularitățile limbajului.
Conținut
Edițiile clasice ale cărții folosesc , un dialect al limbajului Lisp, pentru prezentarea conceptelor de programare. În ediția a doua, textul include și construirea unor interpretoare și compilatoare Lisp, folosind un model abstract de calcul bazat pe registre și un asamblor.
Structura ediției a doua este organizată în cinci capitole principale:
Capitolul 1: Construirea abstracțiilor cu proceduri
Elementele programării
Procedurile și procesele pe care le generează
Formularea abstracțiilor cu proceduri de ordin superior
Capitolul 2: Construirea abstracțiilor cu date
Introducere în abstractizarea datelor
Date ierarhice și proprietatea de închidere
Date simbolice
Reprezentări multiple pentru date abstracte
Sisteme cu operații generice
Capitolul 3: Modularitate, obiecte și stare
Atribuire și stare locală
Modelul de mediu al evaluării
Modelarea cu date mutabile
Concurență: timpul ca factor esențial
Fluxuri
Capitolul 4: Abstractizare metalingvistică
Evaluatorul metacircular
Variante ale Scheme: evaluare leneșă
Variante ale Scheme: calcul nedeterminist
Programare logică
Capitolul 5: Calcul cu mașini cu registre
Proiectarea mașinilor cu registre
Simulatorul unei mașini cu registre
Alocarea memoriei și colectarea gunoiului
Evaluatorul cu control explicit
Compilare
Personaje
În exemplele și exercițiile din carte apar mai multe personaje fictive cu nume umoristice, între care Alyssa P. Hacker, Ben Bitdiddle, Cy D. Fect, Eva Lu Ator, Lem E. Tweakit și Louis Reasoner.
Licență
Textul online al ediției a doua este publicat de MIT Press sub licența Creative Commons Attribution-ShareAlike 4.0 International.
Utilizare în cursuri
SICP a fost asociată cu cursului introductiv de calcul 6.001, de la MIT. Descrierea MIT Press a cursului prezenta 6.001 ca disciplină introductivă axată pe tehnici generale de control al complexității în sistemele software, nu pe detalii ale unui anumit limbaj de programare. Versiunea MIT OpenCourseWare pentru Spring 2005 indică manualul Abelson, Sussman și Sussman ca sursă a lecturilor cursului.
MIT Press a publicat și o listă de instituții care foloseau SICP pentru cursuri introductive sau avansate, incluzând universități din Statele Unite, Europa și Asia.
Recenzii
În 1986, Haim Kilov a recenzat cartea în revista Byte, recomandând-o programatorilor profesioniști interesați de domeniu. Recenzia considera textul util și instructiv pentru programatori experimentați, dar dificil pentru studenții începători fără sprijin didactic foarte bun.
Philip Wadler a publicat în 1987, în ACM SIGPLAN Notices, o critică a folosirii Scheme ca limbaj introductiv în contextul cărții. Printre problemele discutate se aflau lipsa pattern matching-ului, dificultățile pentru raționarea ecuațională, lipsa tipurilor de date algebrice și dependența de perechile cons pentru reprezentarea codului și a datelor.
Influență
MIT Press descrie SICP ca pe un text care a influențat programe de studii de informatică la nivel internațional. Brian Harvey a subliniat influența cărții asupra predării informaticii și asupra unor manuale ulterioare care au preluat ambiția pedagogică a acesteia.
Lucrări asociate acestei tradiții pedagogice includ:
, de Gerald Jay Sussman și Jack Wisdom, care aplică o abordare computațională în mecanica clasică; Software Design for Flexibility, de Chris Hanson și Gerald Jay Sussman; , dezvoltată ca răspuns pedagogic la unele dificultăți ale modelului SICP; , manual axat pe concepte ale limbajelor de programare prin interpretoare scurte.
Note
Vezi și
, cunoscută și ca „Dragon Book”
Legături externe
Site oficial
Prelegeri video MIT OpenCourseWare pentru 6.001
Textul online al ediției a doua
Categorie:Cărți din 1984
Categorie:Cărți din 1996
Categorie:Massachusetts Institute of Technology
Categorie:Manuale informatică