Concepts of Programming Languages

(Sean Pound) #1
1.7 Implementation Methods 25

implementation and has the advantage of very fast program execution, once
the translation process is complete. Most production implementations of lan-
guages, such as C, COBOL, C++, and Ada, are by compilers.
The language that a compiler translates is called the source language. The
process of compilation and program execution takes place in several phases, the
most important of which are shown in Figure 1.3.
The lexical analyzer gathers the characters of the source program into lexi-
cal units. The lexical units of a program are identifiers, special words, operators,
and punctuation symbols. The lexical analyzer ignores comments in the source
program because the compiler has no use for them.
The syntax analyzer takes the lexical units from the lexical analyzer and uses
them to construct hierarchical structures called parse trees. These parse trees
represent the syntactic structure of the program. In many cases, no actual parse
tree structure is constructed; rather, the information that would be required to
build a tree is generated and used directly. Both lexical units and parse trees are
further discussed in Chapter 3. Lexical analysis and syntax analysis, or parsing,
are discussed in Chapter 4.

Operating
system
command
interpreter

Scheme
interpreter
C
compiler

Virtual
C
computer

Virtual
Ada
computer

Ada
compiler

...
...


Assembler

Virtual
assembly
language
computer

Java Virtual
Machine

Java
compiler

.NET
common
language
run time

VB.NET
compiler

C#
compiler

Virtual
VB .NET
computer

Virtual C#
computer

Bare
machine

Macroinstruction
interpreter

Operating system

Virtual Java
computer

Virtual
Scheme
computer

Figure 1.2


Layered interface of
virtual computers,
provided by a typical
computer system

Free download pdf