Java Reference
In-Depth Information
rather ambitious optimizations to produce e
-
cient code was deemed essential for Fortran to compete successfully against
assembly language programming. Machine-independent languages such as
Fortran proved the viability of high-level compiled languages. They paved
the way for the flood of languages and compilers that was to follow.
cient machine code, since e
In the early days, compilers were ad hoc structures; components and
techniques were often devised as a compiler was built. This approach to
constructing compilers lent an aura of mystery to them, and they were viewed
as complex and costly. Today the compilation process is well understood
and compiler construction is routine. Nonetheless, crafting an e
cient and
reliable compiler is still a complex task. This topic's primary task is to teach a
mastery of the fundamentals. A concomitant goal is to cover some advanced
techniques and important innovations.
Compilers normally translate conventional programming languages like
Java TM ,C,andC
into executable machine-language instructions. Com-
piler technology, however, is far more broadly applicable and has been em-
ployed in rather unexpectedareas. For example, text-formatting languages like
TeX [Knu98] and LaTeX [Lam95] are really compilers. They translate text and
formatting commands into detailed typesetting commands. PostScript R
++
[Pos]
on the other hand, which is generated by many programs, is really a pro-
gramming language. It is translated and executed by printers and docu-
ment previewers to produce a readable form of a document. This stan-
dardized document-representation language allows documents to be freely
interchanged, independently of how they were created and how they will be
viewed.
Mathematica [Wol99] is an interactive system that intermixes program-
ming with mathematics, solving intricate problems in both symbolic and nu-
meric forms. This system relies heavily on compiler techniques to handle the
specification, internal representation, and solution of problems.
Languages like Verilog [TM08] and VHDL [VHD] address the creation of
very large scale integration (VLSI) circuits. A silicon compiler specifies the
layout and composition of a VLSI circuit mask using standard cell designs. Just
as an ordinary compiler must understand and enforce the rules of a particular
machine language, so must a silicon compiler understand and enforce the
design rules that dictate the feasibility of a given circuit.
Compiler technology is of value in almost any program that presents a
nontrivial text-oriented command set, including the command and scripting
languages of operating systems and the query languages of database systems.
Thus, while our discussion will focus on traditional compilation tasks, inno-
vative readers will undoubtedly find new and unexpected applications for the
techniques presented.
 
Search WWH ::




Custom Search