College Publications logo   College Publications title  
View Basket
Homepage Contact page
   
 
AiML
Algorithmics
Cadernos de Lógica e Computação
Cadernos de Lógica e Filosofia
Cahiers de Logique et d'Epistemologie
Communication, Mind and Language
Computing
Cuadernos de lógica, Epistemología y Lenguaje
DEON
Dialogues
Economics
Encyclopaedia of Logic
Filosofia
Handbooks
IfColog series in Computational Logic
Journals
Law and Society
Logic PhDs
Logic, Methodology and Philosophy of Science
The Logica Yearbook
Neural Computing and Artificial Intelligence
Philosophy
Research
The SILFS series
Studies in Logic
Studies in Talmudic Logic
Systems
Texts in Mathematics
Tributes
Other
Digital Downloads
Information for authors
About us
Search for Books
 



Computing


Back

Implementing Programming Languages

An Introduction to Compilers and Interpreters

Aarne Ranta, with an appendix coauthored by Markus Forsberg

Implementing a programming language means bridging the gap from the programmer's high-level thinking to the machine's zeros and ones. If this is done in an efficient and reliable way, programmers can concentrate on the actual problems they have to solve, rather than on the details of machines. But understanding the whole chain from languages to machines is still an essential part of the training of any serious programmer. It will result in a more competent programmer, who will moreover be able to develop new languages. A new language is often the best way to solve a problem, and less difficult than it may sound.

This book follows a theory-based practical approach, where theoretical models serve as blueprint for actual coding. The reader is guided to build compilers and interpreters in a well-understood and scalable way. The solutions are moreover portable to different implementation languages. Much of the actual code is automatically generated from a grammar of the language, by using the BNF Converter tool. The rest can be written in Haskell or Java, for which the book gives detailed guidance, but with some adaptation also in C, C++, C#, or OCaml, which are supported by the BNF Converter.

The main focus of the book is on standard imperative and functional languages: a subset of C++ and a subset of Haskell are the source languages, and Java Virtual Machine is the main target. Simple Intel x86 native code compilation is shown to complete the chain from language to machine. The last chapter leaves the standard paths and explores the space of language design ranging from minimal Turing-complete languages to human-computer interaction in natural language.

Click here for more information about this book.

9 May 2012

978-1-84890-064-6

Buy from Amazon: UK   US   

For Digital Download:

Buy now






© 2005–2017 College Publications / VFH webmaster