Programming Language Concepts

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Programming Language Concepts uses a functional programming language (F#) as the metalanguage in which to present all concepts and examples, and thus has an operational flavour, enabling practical experiments and exercises. It includes basic concepts such as abstract syntax, interpretation, stack machines, compilation, type checking, and garbage collection techniques, as well as the more advanced topics on polymorphic types, type inference using unification, co- and contravariant types, continuations, and backwards code generation with on-the-fly peephole optimization.

Programming Language Concepts covers practical construction of lexers and parsers, but not regular expressions, automata and grammars, which are well covered elsewhere. It throws light on the design and technology of Java and C# to strengthen students’ understanding of these widely used languages.

The examples present several interpreters and compilers for toy languages, including a compiler for a small but usable subset of C, several abstract machines, a garbage collector, and ML-style polymorphic type inference. Each chapter has exercises based on such examples.

Author(s): Peter Sestoft (auth.)
Series: Undergraduate Topics in Computer Science 50
Edition: 1
Publisher: Springer-Verlag London
Year: 2012

Language: English
Pages: 278
Tags: Programming Languages, Compilers, Interpreters

Front Matter....Pages I-XIV
Introduction....Pages 1-12
Interpreters and Compilers....Pages 13-29
From Concrete Syntax to Abstract Syntax....Pages 31-56
A First-Order Functional Language....Pages 57-76
Higher-Order Functions....Pages 77-91
Polymorphic Types....Pages 93-113
Imperative Languages....Pages 115-136
Compiling Micro-C....Pages 137-154
Real-World Abstract Machines....Pages 155-174
Garbage Collection....Pages 175-199
Continuations....Pages 201-223
A Locally Optimizing Compiler....Pages 225-243
Back Matter....Pages 245-278