Podstawy języków programowania

Podstawy języków programowania
EOPL 3rd edition cover.jpg
Autor Daniel P. Friedman , Mitchell Wand , Christopher T. Haynes
Temat Języki programowania
Gatunek muzyczny Podręcznik
Wydawca MIT Press
Data publikacji
kwiecień 2008 (wyd. 3)
Strony 416
ISBN 0-262-06279-8 (wyd. 3)
Klasa LC QA76.7.F73 2008

Essentials of Programming Languages ​​( EOPL ) to podręcznik języków programowania autorstwa Daniela P. Friedmana , Mitchella Wanda i Christophera T. Haynesa.

EOPL bada zasady języków programowania z perspektywy operacyjnej. Zaczyna się od interpretera w Scheme dla prostego podstawowego języka funkcjonalnego, podobnego do rachunku lambda , a następnie systematycznie dodaje konstrukcje. Dla każdego dodatku, na przykład przypisania zmiennych lub sterowania wątkowego, książka ilustruje wzrost mocy ekspresyjnej języka programowania i zapotrzebowanie na nowe konstrukcje do sformułowania bezpośredniego tłumacza. Książka pokazuje również, że systematyczne przekształcenia, na przykład styl przekazujący informacje lub styl przekazujący kontynuację , mogą wyeliminować pewne konstrukcje z języka, w którym sformułowany jest tłumacz.

Druga część książki poświęcona jest systematycznemu tłumaczeniu tłumacza (tłumaczy) na maszyny rejestrujące . Transformacje pokazują, jak wyeliminować domknięcia wyższego rzędu; obiekty kontynuacji; rekurencyjne wywołania funkcji; i więcej. Na koniec czytelnik zostaje z „interpreterem”, który używa tylko rekurencyjnych wywołań funkcji ogona i instrukcji przypisania oraz warunków. Przetłumaczenie tego kodu na program C lub nawet program asemblerowy staje się trywialne. Jako bonus, książka pokazuje, jak wstępnie obliczyć pewne fragmenty „znaczenia” i jak wygenerować reprezentację tych wstępnych obliczeń. Ponieważ na tym polega istota kompilacji, książka przygotowuje czytelnika również do kursu dotyczącego zasad kompilacji i tłumaczenia językowego, tematu pokrewnego, ale odrębnego. Oprócz tekstu wyjaśniającego kluczowe pojęcia, książka zawiera również szereg ćwiczeń, pozwalających czytelnikowi zapoznać się z alternatywnymi projektami i innymi zagadnieniami.

Podobnie jak SICP , EOPL stanowi znaczące odejście od dominującego w latach 80. podejścia podręcznikowego. W tamtym czasie książka o zasadach języków programowania przedstawiała cztery do sześciu (a nawet więcej) języków programowania i omawiała ich idiomy programistyczne oraz ich implementację na wysokim poziomie. Książki, które odniosły największy sukces, dotyczyły zwykle ALGOL 60 (i tak zwanej rodziny języków programowania Algol), SNOBOL , Lisp i Prolog . Nawet dzisiaj spora liczba podręczników do języków programowania to właśnie takie ankiety, chociaż ich zakres się zawęził.

EOPL powstał w 1983 roku, kiedy Indiana była jednym z wiodących wydziałów badań nad językami programowania. Eugene Kohlbecker, jeden z doktorantów Friedmana, spisał i zebrał jego „311 wykładów”. Inni członkowie wydziału, w tym Mitch Wand i Christopher Haynes, zaczęli wnosić swój wkład i przekształcili „Przewodnik autostopem po metawszechświecie” — jak go nazwał Kohlbecker — w systematyczne, oparte na interpretacjach i transformacji badanie, jakim jest teraz. W ciągu 25 lat swojego istnienia książka stała się niemal klasyką; jest teraz w trzeciej edycji, zawierającej dodatkowe tematy, takie jak typy i moduły . Jego pierwsza część zawiera teraz pomysły dotyczące programowania z HtDP , innego niekonwencjonalnego podręcznika, który wykorzystuje Scheme do nauczania zasad projektowania programów. Autorzy, jak również Matthew Flatt , niedawno udostępnili wtyczki DrRacket i poziomy językowe do nauczania z EOPL.

EOPL dał początek co najmniej dwóm innym powiązanym tekstom: Lisp Queinneca w małych kawałkach i Języki programowania Krishnamurthiego : zastosowanie i interpretacja .

Zobacz też