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ă