The
compiler writer, like any software developer, can profitably use modern
software development environments containing tools such as language editors,
debuggers, version managers, profilers, test harnesses, and so on. In addition
to these general software-development tools, other more specialized tools have
been created to help implement various phases of a compiler.
The
most successful tools are those that hide the details of the generation
algorithm and produce components that can be easily integrated into the
remainder of the compiler. Some commonly used compiler-construction tools
include:
1.
Parser generators that
automatically produce syntax analyzers from a grammatical description of a
programming language.
2. Scanner generators that produce lexical analyzers
from a regular-expression description of the tokens of a language.
3. Syntax-directed translation engines that produce
collections of routines for walking a parse tree and generating intermediate
code.
4. Code-generator generators that produce a code
generator from a collection of rules for translating each operation of the
intermediate language into the machine language for a target machine.
5. Data-flow
analysis engines that
facilitate the gathering of information about how values are transmitted from
one part of a program to each other part. Data-flow analysis is a key part of
code optimization.
6. Compiler-construction toolkits that provide an integrated
set of routines for constructing various phases of a compiler
Comments
Post a Comment