Java Reference
In-Depth Information
generate code). Because of the wide variety of programming languages and
computers that exist, apparently a large number of similar, but not identical,
compilers must be written. While this situation has decided benefits for those
of us in the compiler writing business, it does make for a lot of duplication
of e
ort and for a wide variance in compiler quality. As a result, the retar-
getable compiler has become a concept of increasing importance for language
designers, computer architects, and compiler writers.
A retargetable compiler is one whose target architecture can be changed
without its machine-independent components having to be rewritten. A retar-
getable compiler is more di
ff
cult to write than an ordinary compiler because
target-machine dependencies must be carefully localized.
In addition, it is
often di
cient as
that of an ordinary compiler because special cases and machine idiosyncrasies
are harder to exploit. Nonetheless, because a retargetable compiler allows de-
velopment costs to be shared and provides for uniformity across computers,
it is an important innovation. While discussing the fundamentals of compila-
tion, we concentrate on compilers targeted to a single machine. Chapters 11
and 13 cover some of the techniques needed to provide retargetability.
cult for a retargetable compiler to generate code that is as e
1.9
Integrated Development Environments
In practice, a compiler is but one tool used in the program development cycle.
Developers edit a program, compile it, and test its performance. This cycle
is repeated many times as the application is developed, often in response to
specification changes and bugs that are discovered. The integrated develop-
ment environment (IDE) has become a popular tool to integrate this cycle
within a single framework. An IDE allows programs to be built incrementally,
with program checking and testing fully integrated. Of course, an important
component within an IDE is its compiler. An IDE places special demands on
its compiler as follows:
Most IDEs provide immediate feedback concerning syntax and semantic
problems in the code as the code is entered.
The IDE focus is typically on the source of a program, with any derived
files (such as object code) carefully managed beyond the user's view.
Most IDEs provide key or mouse actions that provide information about
the program as it is developed. For example, a program may have an
object reference o and the developer may wish to see the methods that
can be invoked on o. Such information depends on the declared type of
o as well as the methods defined on objects of that type.
 
 
 
Search WWH ::




Custom Search