Elementele esențiale ale limbajelor de programare -Essentials of Programming Languages

Elementele esențiale ale limbajelor de programare
EOPL ediția a 3-a cover.jpg
Autor Daniel P. Friedman , Mitchell Wand , Christopher T. Haynes
Subiect Limbaje de programare
Gen Manual
Editor Apăsați MIT
Data publicării
Aprilie 2008 (ediția a 3-a)
Pagini 416
ISBN 0-262-06279-8 (ed. A 3-a)
Clasa LC QA76.7 .F73 2008

Essentials of Programming Languages ( EOPL ) este un manual despre limbaje de programare de Daniel P. Friedman , Mitchell Wand și Christopher T. Haynes .

EOPL analizează principiile limbajelor de programare dintr-o perspectivă operațională. Începe cu un interpret în Scheme pentru un limbaj funcțional simplu de bază similar cu calculul lambda și apoi adaugă sistematic construcții. Pentru fiecare adăugare, de exemplu, atribuire variabilă sau control de tip fir, cartea ilustrează o creștere a puterii expresive a limbajului de programare și o cerere pentru noi constructe pentru formularea unui interpret direct. Cartea demonstrează, de asemenea, că transformările sistematice, să zicem, stilul de trecere a magazinului sau stilul de trecere a continuării , pot elimina anumite construcții din limbajul în care este formulat interpretul.

A doua parte a cărții este dedicată unei traduceri sistematice a interpretorului (interpretilor) în aparatele de înregistrare . Transformările arată cum se elimină închiderile de ordin superior; obiecte de continuare; apeluri funcționale recursive; și altele. La sfârșit, cititorul rămâne cu un „interpret” care nu folosește altceva decât apeluri funcționale recursive și instrucțiuni de atribuire plus condiționali. Devine banal să traduceți acest cod într-un program C sau chiar într-un program de asamblare. Ca bonus, cartea arată cum să calculăm în prealabil anumite bucăți de „semnificație” și cum să generăm o reprezentare a acestor calcule prealabile. Deoarece aceasta este esența compilării, cartea pregătește, de asemenea, cititorul pentru un curs pe principiile compilării și traducerii limbii, un subiect legat, dar distinct. În afară de textul care explică conceptele cheie, cartea cuprinde, de asemenea, o serie de exerciții, care permit cititorilor să exploreze modele alternative și alte probleme.

La fel ca SICP , EOPL reprezintă o abatere semnificativă de la abordarea predominantă a manualului în anii 1980. La acea vreme, o carte despre principiile limbajelor de programare prezenta patru până la șase (sau chiar mai multe) limbaje de programare și discuta despre limbajele lor de programare și implementarea lor la un nivel înalt. Cele mai reușite cărți au acoperit de obicei ALGOL 60 (și așa-numita familie de limbaje de programare Algol), SNOBOL , Lisp și Prolog . Chiar și astăzi, un număr destul de mare de manuale despre limbaje de programare sunt doar astfel de sondaje, deși sfera lor de aplicare s-a restrâns.

EOPL a fost început în 1983, când Indiana era unul dintre departamentele de top în cercetarea limbajelor de programare. Eugene Kohlbecker, unul dintre doctoranzii lui Friedman, a transcris și a colectat „311 de prelegeri”. Alți membri ai facultății, inclusiv Mitch Wand și Christopher Haynes, au început să contribuie și au transformat „Ghidul autostopistului la metaunivers” - așa cum îl numise Kohlbecker - în sondajul sistematic, interpret și bazat pe transformare, care este acum. De-a lungul celor 25 de ani de existență, cartea a devenit aproape clasică; este acum la a treia ediție, incluzând subiecte suplimentare, cum ar fi tipuri și module . Prima sa parte încorporează acum idei despre programarea din HtDP , un alt manual neconvențional, care folosește Scheme pentru a preda principiile proiectării programelor. Autorii, precum și Matthew Flatt , au oferit recent pluginuri DrRacket și niveluri de limbă pentru predarea cu EOPL.

EOPL a dat naștere la cel puțin alte două texte conexe: Lispul lui Queinnec în bucăți mici și Limbajele de programare ale lui Krishnamurthi : aplicație și interpretare .

Vezi si

Referințe