作者:Franklyn A. Turbak, David K. Gifford
出版日期:August 31, 2008
出版社:其它
页数:1200
ISBN:ISBN-10: 0262201755 ISBN-13: 978-0262201759
文件格式:PDF
Review
“There is a paucity of good graduate-level textbooks on the foundationsof programming languages, no more than four or five in the last twodecades. Nothing to compare with the profusion of excellent texts inthe other core areas of computer science, such as algorithms oroperating systems. This new textbook by Franklyn Turbak, David Gifford,and Mark Sheldon—comprehensive, thorough, pedagogically innovative,impeccably written and organized—greatly enriches the area ofprogramming languages and will be an important reference for years tocome.”
—Assaf Kfoury, Department of Computer Science, Boston University
“This book is an excellent, systematic exploration of ideas andtechniques in programming language theory. The book carefully, butwithout wasting time on extraneous complications, explains operationaland denotational semantic techniques, and their application to manyaspects of programming language design. It will be of great value forgraduate courses and for self study.”
—Gary T. Leavens, School of Electrical Engineering and Computer Science, University of Central Florida
Product Description
Hundreds of programming languages are in use today—scripting languagesfor Internet commerce, user interface programming tools, spreadsheetmacros, page format specification languages, and many others. Designinga programming language is a metaprogramming activity that bears certainsimilarities to programming in a regular language, with clarity andsimplicity even more important than in ordinary programming. Thiscomprehensive text uses a simple and concise framework to teach keyideas in programming language design and implementation. The book’sunique approach is based on a family of syntactically simplepedagogical languages that allow students to explore programminglanguage concepts systematically. It takes as its premise and startingpoint the idea that when language behaviors become incredibly complex,the description of the behaviors must be incredibly simple.
The book presents a set of tools (a mathematical metalanguage,abstract syntax, operational and denotational semantics) and uses it toexplore a comprehensive set of programming language design dimensions,including dynamic semantics (naming, state, control, data), staticsemantics (types, type reconstruction, polymporphism, effects), andpragmatics (compilation, garbage collection). The many examples andexercises offer students opportunities to apply the foundational ideasexplained in the text. Specialized topics and code that implements manyof the algorithms and compilation methods in the book can be found onthe book’s Web site, along with such additional material as a sectionon concurrency and proofs of the theorems in the text. The book issuitable as a text for an introductory graduate or advancedundergraduate programming languages course; it can also serve as areference for researchers and practitioners.