|
This manual describes flex, a tool for generating programs that perform pattern-matching on text. The manual includes both tutorial and reference sections:
http://www.gnu.org/software/flex/manual/
created by freebooksandarticles on 2008-05-01 22:15:12
|
|
This book gives a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. The book is intended to be a source of practical labwork material, to help make functional-language implementations `come alive', by helping the reader to develop, modify and experiment with some non-trivial compilers.
http://research.microsoft.com/Users/simonpj/Papers
created by freebooksandarticles on 2008-05-01 22:04:37
|
|
This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) version 4.4.0. The use of the GNU compilers is documented in a separate manual. See Introduction.
http://gcc.gnu.org/onlinedocs/gccint/
created by freebooksandarticles on 2008-05-01 22:22:47
|
|
This fifteen-part series, written from 1988 to 1995, is a non-technical introduction to compiler construction. You can read the parts on-line or download them in a ZIP file.
http://compilers.iecc.com/crenshaw/
created by freebooksandarticles on 2008-05-01 22:21:03
|
|
This document explains how to construct a compiler using lex and yacc. Lex and yacc are tools used to generate lexical analyzers and parsers. I assume you can program in C, and understand data structures such as linked-lists and trees.
http://www.epaperpress.com/lexandyacc/index.html
created by freebooksandarticles on 2008-05-01 22:10:20
|
|
The book is intended for students who have at least used a compiler and have given some thought to the notion of compilation. It is not an introductory course (although it explains almost everything from basics).
The book consists conceptually of two parts. The first part covers the general compilation process, and contains three chapters based on the analysis/processing/synthesis paradigm: text analysis, context handling and code generation. The second part consists of four chapters, covering the paradigm-specific problems of imperative and object-oriented, functional, logic and parallel and distributed programs. The two parts are separated by a chapter on memory management/garbage collection.
http://www.cs.vu.nl/~dick/MCD.html
created by freebooksandarticles on 2008-05-01 22:09:33
|
|
The GENTLE
Compiler Construction
System
http://gentle.compilertools.net/book/index.html
created by freebooksandarticles on 2008-05-01 22:05:35
|
|
This 320-page book treats parsing in its own right, in greater depth than is found in most computer science and linguistics books. It offers a clear, accessible, and thorough discussion of many different parsing techniques with their interrelations and applicabilities, including error recovery techniques. Unlike most books, it treats (almost) all parsing methods, not just the popular ones. See Preface + Introduction and/or Table of Contents for a quick impression.
http://www.cs.vu.nl/~dick/PTAPG.html
created by freebooksandarticles on 2008-05-01 22:20:05
|
|
Bison is a general-purpose parser generator that converts an annotated context-free grammar into an LALR(1) or GLR parser for that grammar. Once you are proficient with Bison, you can use it to develop a wide range of language parsers, from those used in simple desk calculators to complex programming languages.
Bison is upward compatible with Yacc: all properly-written Yacc grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with little trouble. You need to be fluent in C or C++ programming in order to use Bison or to understand this manual.
http://www.gnu.org/software/bison/manual/
created by freebooksandarticles on 2008-05-01 22:14:19
|
|
This book is a complete revision of an earlier one published by Addison-Wesley (Terry, 1986). It has been written so as not to be too theoretical, but to relate easily to languages which the reader already knows or can readily understand, like Pascal, Modula-2, C or C++. The reader is expected to have a good background in one of those languages, access to a good implementation of it, and, preferably, some background in assembly language programming and simple machine architecture. We shall rely quite heavily on this background, especially on the understanding the reader should have of the meaning of various programming constructs.
http://www.scifac.ru.ac.za/compilers/conts.htm
created by freebooksandarticles on 2008-05-01 04:47:10
|