Compilers: Principles, Techniques, and Tools
Encyclopedia
Compilers: Principles, Techniques, and Tools is a famous computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 textbook by Alfred V. Aho, Monica S. Lam
Monica S. Lam
Monica Sin-Ling Lam is a professor in the Computer Science Department at Stanford, and Founder and Chief Scientist of MokaFive.-Professional biography:...

, Ravi Sethi
Ravi Sethi
Ravi Sethi is an Indian computer scientist retired from Bell Labs and president of Avaya Labs Research. He is best known as one of three authors of the classic computer science textbook Compilers: Principles, Techniques, and Tools, also known as the Dragon Book.Sethi was born in 1947 in Murdana,...

, and Jeffrey D. Ullman about compiler construction
Compiler construction
Compiler construction is an area of computer science that deals with the theory and practice of developing programming languages and their associated compilers....

. Although more than two decades have passed since the publication of the first edition, it is widely regarded as the classic definitive compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 technology text.

It is affectionately known as the Dragon Book to a generation of computer scientists and its covers depict a knight
Knight
A knight was a member of a class of lower nobility in the High Middle Ages.By the Late Middle Ages, the rank had become associated with the ideals of chivalry, a code of conduct for the perfect courtly Christian warrior....

 and a dragon in battle, a metaphor for conquering complexity. This name can also refer to Aho and Ullman's older Principles of Compiler Design
Principles of Compiler Design
Principles of Compiler Design, by Alfred Aho and Jeffrey D. Ullman, is a classic textbook on compilers for computer programming languages.It is often called the "dragon book" and its cover depicts a knight and a dragon in battle; the dragon is green, and labelled "Complexity of Compiler...

.

First edition

The first edition is informally called the 'red dragon book' to distinguish it from the second edition and from Aho & Ullman’s 1977 Principles of Compiler Design
Principles of Compiler Design
Principles of Compiler Design, by Alfred Aho and Jeffrey D. Ullman, is a classic textbook on compilers for computer programming languages.It is often called the "dragon book" and its cover depicts a knight and a dragon in battle; the dragon is green, and labelled "Complexity of Compiler...

sometimes known as the 'green dragon book'
Topics covered in the first edition include:
  • Compiler
    Compiler
    A compiler is a computer program that transforms source code written in a programming language into another computer language...

     structure
  • Lexical analysis
    Lexical analysis
    In computer science, lexical analysis is the process of converting a sequence of characters into a sequence of tokens. A program or function which performs lexical analysis is called a lexical analyzer, lexer or scanner...

     (including regular expression
    Regular expression
    In computing, a regular expression provides a concise and flexible means for "matching" strings of text, such as particular characters, words, or patterns of characters. Abbreviations for "regular expression" include "regex" and "regexp"...

    s and finite automata)
  • Syntax analysis (including context-free grammar
    Context-free grammar
    In formal language theory, a context-free grammar is a formal grammar in which every production rule is of the formwhere V is a single nonterminal symbol, and w is a string of terminals and/or nonterminals ....

    s, LL parser
    LL parser
    An LL parser is a top-down parser for a subset of the context-free grammars. It parses the input from Left to right, and constructs a Leftmost derivation of the sentence...

    s, bottom-up parser
    Bottom-up parsing
    Bottom-up parsing is a strategy for analyzing unknown information that attempts to identify the most fundamental units first, and then to infer higher-order structures from them...

    s, and LR parser
    LR parser
    In computer science, an LR parser is a parser that reads input from Left to right and produces a Rightmost derivation. The term LR parser is also used; where the k refers to the number of unconsumed "look ahead" input symbols that are used in making parsing decisions...

    s)
  • Syntax-directed translation
    Syntax-directed translation
    In computer programming, Syntax-directed translation is a method of translating a string into a sequence of actions by attaching one such action to each rule of a grammar. Thus, parsing a string of the grammar produces a sequence of rule applications...

  • Type checking (including type conversions and polymorphism)
  • Run-time environment (including parameter passing, symbol tables, and storage allocation)
  • Code generation (including intermediate code generation)
  • Code optimization
    Compiler optimization
    Compiler optimization is the process of tuning the output of a compiler to minimize or maximize some attributes of an executable computer program. The most common requirement is to minimize the time taken to execute a program; a less common one is to minimize the amount of memory occupied...


Second edition

Following in the tradition of its two predecessors, the second edition features a dragon and a knight on its cover, and is informally known as the purple dragon. Monica S. Lam
Monica S. Lam
Monica Sin-Ling Lam is a professor in the Computer Science Department at Stanford, and Founder and Chief Scientist of MokaFive.-Professional biography:...

 of Stanford University
Stanford University
The Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is a private research university on an campus located near Palo Alto, California. It is situated in the northwestern Santa Clara Valley on the San Francisco Peninsula, approximately northwest of San...

 became a co-author with this edition.

The second edition includes several additional topics including
  • directed translation
  • new data flow analyses
  • parallel machines
  • JIT
    Just-in-time compilation
    In computing, just-in-time compilation , also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static compilation...

     compiling
  • garbage collection
    Garbage collection (computer science)
    In computer science, garbage collection is a form of automatic memory management. The garbage collector, or just collector, attempts to reclaim garbage, or memory occupied by objects that are no longer in use by the program...

  • new case studies.

See also

  • Compiler
    Compiler
    A compiler is a computer program that transforms source code written in a programming language into another computer language...

    s
  • Programming language
    Programming language
    A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

  • Wizard book
  • Principles of Compiler Design
    Principles of Compiler Design
    Principles of Compiler Design, by Alfred Aho and Jeffrey D. Ullman, is a classic textbook on compilers for computer programming languages.It is often called the "dragon book" and its cover depicts a knight and a dragon in battle; the dragon is green, and labelled "Complexity of Compiler...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK