Podstawy języków programowania -Essentials of Programming Languages

Podstawy języków programowania
3. edycja EOPL cover.jpg
Autor Daniel P. Friedman , Mitchell Wand , Christopher T. Haynes
Przedmiot 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. Rozpoczyna się interpretatorem w schemacie prostego języka funkcjonalnego, podobnego do rachunku lambda, a następnie systematycznie dodaje konstrukcje. Dla każdego dodania, na przykład przypisania zmiennej lub sterowania podobnego do wątku, książka ilustruje wzrost mocy ekspresyjnej języka programowania i zapotrzebowanie na nowe konstrukcje do sformułowania bezpośredniego interpretera. Książka pokazuje również, że systematyczne transformacje, powiedzmy, styl przechodzenia przez sklep lub styl przechodzenia przez kontynuację , mogą wyeliminować pewne konstrukty z języka, w którym formułuje się tłumacz.

Druga część książki poświęcona jest systematycznemu tłumaczeniu tłumacza (-ów) na maszyny rejestrujące . Przekształcenia pokazują, jak wyeliminować domknięcia wyższego rzędu; obiekty kontynuacji; rekurencyjne wywołania funkcji; i więcej. Na końcu czytelnik otrzymuje „interpreter”, który używa tylko wywołań funkcji rekurencyjnych ogonowych i instrukcji przypisania oraz instrukcji warunkowych. Przetłumaczenie tego kodu na program C lub nawet program asemblera staje się trywialne. Jako bonus, książka pokazuje, jak wstępnie obliczyć pewne elementy „znaczenia” i jak wygenerować reprezentację tych wstępnych obliczeń. Ponieważ jest to istota kompilacji, książka przygotowuje również czytelnika do kursu na temat zasad kompilacji i tłumaczenia językowego, który jest tematem pokrewnym, ale odrębnym. Oprócz tekstu wyjaśniającego kluczowe pojęcia, książka zawiera również serię ćwiczeń, umożliwiających czytelnikom zgłębianie alternatywnych projektów i innych zagadnień.

Podobnie jak SICP , EOPL stanowi znaczące odejście od dominującego podejścia podręcznikowego w latach 80. W tamtym czasie książka o zasadach języków programowania przedstawiała od czterech do sześciu (a nawet więcej) języków programowania oraz omawiała na wysokim poziomie ich idiomy programistyczne i ich implementację. Książki odnoszące największe sukcesy obejmowały zazwyczaj ALGOL 60 (i tak zwaną rodzinę 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, choć ich zakres się zawęził.

EOPL powstał w 1983 roku, kiedy Indiana był jednym z wiodących wydziałów badań języków programowania. Eugene Kohlbecker, jeden z doktorantów Friedmana, dokonał transkrypcji i zebrał jego „311 wykładów”. Inni członkowie wydziału, w tym Mitch Wand i Christopher Haynes, zaczęli współtworzyć i przekształcili „Autostopowicza Przewodnik po Meta-Wszechświecie” - jak nazwał to Kohlbecker - w systematyczny, interpretujący i oparty na transformacji przegląd, którym jest teraz. W ciągu 25 lat istnienia książka stała się niemal klasyczna; jest teraz w trzeciej edycji, zawierającej dodatkowe tematy, takie jak typy i moduły . Jego pierwsza część zawiera teraz pomysły na programowanie z HtDP , innego niekonwencjonalnego podręcznika, który wykorzystuje Scheme do nauczania zasad projektowania programów. Autorzy, a także Matthew Flatt , niedawno dostarczyli wtyczki DrRacket i poziomy językowe do nauczania z EOPL.

EOPL zrodził co najmniej dwa inne powiązane teksty: Queinnec's Lisp in Small Pieces i Krishnamurthi's Programming Languages: Application and Interpretation .

Zobacz też

Bibliografia