Essentials of Programming Languages (original) (raw)

About DBpedia

Essentials of Programming Languages (EOPL) is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and . EOPL surveys the principles of programming languages from an operational perspective. It starts with an interpreter in Scheme for a simple functional core language similar to the lambda calculus and then systematically adds constructs. For each addition, for example, variable assignment or thread-like control, the book illustrates an increase in expressive power of the programming language and a demand for new constructs for the formulation of a direct interpreter. The book also demonstrates that systematic transformations, say, store-passing style or continuation-passing style, can eliminate certain constructs from the language in which the interpreter is formulate

thumbnail

Property Value
dbo:abstract Essentials of Programming Languages (EOPL) is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and . EOPL surveys the principles of programming languages from an operational perspective. It starts with an interpreter in Scheme for a simple functional core language similar to the lambda calculus and then systematically adds constructs. For each addition, for example, variable assignment or thread-like control, the book illustrates an increase in expressive power of the programming language and a demand for new constructs for the formulation of a direct interpreter. The book also demonstrates that systematic transformations, say, store-passing style or continuation-passing style, can eliminate certain constructs from the language in which the interpreter is formulated. The second part of the book is dedicated to a systematic translation of the interpreter(s) into register machines. The transformations show how to eliminate higher-order closures; continuation objects; recursive function calls; and more. At the end, the reader is left with an "interpreter" that uses nothing but tail-recursive function calls and assignment statements plus conditionals. It becomes trivial to translate this code into a C program or even an assembly program. As a bonus, the book shows how to pre-compute certain pieces of "meaning" and how to generate a representation of these pre-computations. Since this is the essence of compilation, the book also prepares the reader for a course on the principles of compilation and language translation, a related but distinct topic. Apart from the text explaining the key concepts, the book also comprises a series of exercises, enabling the readers to explore alternative designs and other issues. Like SICP, EOPL represents a significant departure from the prevailing textbook approach in the 1980s. At the time, a book on the principles of programming languages presented four to six (or even more) programming languages and discussed their programming idioms and their implementation at a high level. The most successful books typically covered ALGOL 60 (and the so-called Algol family of programming languages), SNOBOL, Lisp, and Prolog. Even today, a fair number of textbooks on programming languages are just such surveys, though their scope has narrowed. EOPL was started in 1983, when Indiana was one of the leading departments in programming languages research. Eugene Kohlbecker, one of Friedman's PhD students, transcribed and collected his "311 lectures". Other faculty members, including Mitch Wand and Christopher Haynes, started contributing and turned "The Hitchhiker's Guide to the Meta-Universe"—as Kohlbecker had called it—into the systematic, interpreter and transformation-based survey that it is now. Over the 25 years of its existence, the book has become a near-classic; it is now in its third edition, including additional topics such as types and modules. Its first part now incorporates ideas on programming from HtDP, another unconventional textbook, which uses Scheme to teach the principles of program design. The authors, as well as Matthew Flatt, have recently provided DrRacket plug-ins and language levels for teaching with EOPL. EOPL has spawned at least two other related texts: Queinnec's Lisp in Small Pieces and Krishnamurthi's Programming Languages: Application and Interpretation. (en)
dbo:author dbr:Daniel_P._Friedman dbr:Mitchell_Wand dbr:Christopher_T._Haynes
dbo:isbn 0-262-06279-8
dbo:lcc QA76.7 .F73 2008
dbo:literaryGenre dbr:Textbook
dbo:nonFictionSubject dbr:Programming_language
dbo:numberOfPages 416 (xsd:positiveInteger)
dbo:publisher dbr:MIT_Press
dbo:thumbnail wiki-commons:Special:FilePath/EOPL_3rd_edition_cover.jpg?width=300
dbo:wikiPageExternalLink http://www.eopl3.com/ https://web.archive.org/web/20070630055031/http:/www.cs.indiana.edu/eopl/ http://community.schemewiki.org/%3Feopl
dbo:wikiPageID 11071609 (xsd:integer)
dbo:wikiPageLength 5406 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1071126375 (xsd:integer)
dbo:wikiPageWikiLink dbr:Prolog dbr:Scheme_(programming_language) dbr:How_to_Design_Programs dbr:Interpreter_(computing) dbr:SNOBOL dbr:Continuation-passing_style dbr:Lisp_(programming_language) dbr:MIT_Press dbr:Structure_and_Interpretation_of_Computer_Programs dbr:Programming_Languages:_Application_and_Interpretation dbr:ALGOL_60 dbr:Daniel_P._Friedman dbr:Matthew_Flatt dbr:Textbook dbc:Computer_programming_books dbc:Computer_science_books dbc:Programming_language_topics dbr:Lambda_calculus dbr:Mitchell_Wand dbr:Modular_programming dbr:Register_machine dbr:Programming_language dbr:Store-passing_style dbr:DrRacket dbr:Christopher_T._Haynes dbr:Type_systems
dbp:author dbr:Daniel_P._Friedman dbr:Mitchell_Wand dbr:Christopher_T._Haynes
dbp:congress QA76.7 .F73 2008 (en)
dbp:genre dbr:Textbook
dbp:isbn 0 (xsd:integer)
dbp:isbnNote (en)
dbp:italicTitle force (en)
dbp:name Essentials of Programming Languages (en)
dbp:pages 416 (xsd:integer)
dbp:pubDate April 2008 (en)
dbp:publisher dbr:MIT_Press
dbp:subject Programming languages (en)
dbp:wikiPageUsesTemplate dbt:Infobox_book dbt:Reflist
dc:publisher MIT Press
dct:subject dbc:Computer_programming_books dbc:Computer_science_books dbc:Programming_language_topics
gold:hypernym dbr:Textbook
rdf:type owl:Thing bibo:Book schema:Book schema:CreativeWork dbo:Work wikidata:Q234460 wikidata:Q386724 wikidata:Q571 yago:WikicatComputerScienceBooks yago:Artifact100021939 yago:Book106410904 yago:Creation103129123 yago:Object100002684 yago:PhysicalEntity100001930 yago:Product104007894 yago:Publication106589574 yago:Work104599396 dbo:Book dbo:WrittenWork yago:Whole100003553
rdfs:comment Essentials of Programming Languages (EOPL) is a textbook on programming languages by Daniel P. Friedman, Mitchell Wand, and . EOPL surveys the principles of programming languages from an operational perspective. It starts with an interpreter in Scheme for a simple functional core language similar to the lambda calculus and then systematically adds constructs. For each addition, for example, variable assignment or thread-like control, the book illustrates an increase in expressive power of the programming language and a demand for new constructs for the formulation of a direct interpreter. The book also demonstrates that systematic transformations, say, store-passing style or continuation-passing style, can eliminate certain constructs from the language in which the interpreter is formulate (en)
rdfs:label Essentials of Programming Languages (en)
owl:sameAs freebase:Essentials of Programming Languages yago-res:Essentials of Programming Languages wikidata:Essentials of Programming Languages dbpedia-hr:Essentials of Programming Languages https://global.dbpedia.org/id/4jaaj
prov:wasDerivedFrom wikipedia-en:Essentials_of_Programming_Languages?oldid=1071126375&ns=0
foaf:depiction wiki-commons:Special:FilePath/EOPL_3rd_edition_cover.jpg
foaf:isPrimaryTopicOf wikipedia-en:Essentials_of_Programming_Languages
foaf:name Essentials of Programming Languages (en)
is dbo:wikiPageRedirects of dbr:Essentials_of_programming_languages dbr:EoPL dbr:Eopl
is dbo:wikiPageWikiLink of dbr:Scheme_(programming_language) dbr:List_of_programming_language_researchers dbr:Structure_and_Interpretation_of_Computer_Programs dbr:Essentials_of_programming_languages dbr:Daniel_P._Friedman dbr:List_of_Northeastern_University_people dbr:Mitchell_Wand dbr:Programming_language dbr:EoPL dbr:Eopl
is foaf:primaryTopic of wikipedia-en:Essentials_of_Programming_Languages