Introduction

Terms

black box
A system characterized only by its external interface behavior.

Translators and Compilers

Terms

translator
A program that accepts text expressed in one language and generates semantically equivalent text expressed in another language.
source language
The input language of a translator.
target language
The output language of a translator.
assembler
A translator from an assembly language to the corresponding machine language.
compiler
A translator from a high level language to a low level language.
high-level translator
A translator from one high-level language to another.
disassembler
A translator from machine language to assembler language.
decompiler
A translater from a low level language to a high level language.
source program
The input text of an assembler or compiler.
object program
The output text of an assembler or compiler.
implementation language
The language in which a program is expressed.
tombstone diagram
A graphical representation of the overall function of a system. 
cross compiler
A compiler which generates code for a machine different from the machine on which it is run. 

Procedure

Interpreters

Terms

interpreter
A program expressed in one language which executes programs expressed in another language.

Real and Abstract Machines

Terms

Real machine
A machine which exists physically as hardware.
Abstract machine
A virtual machine.
Virtual machine
A machine which is implemented in software.

Interpretive Compilers

Terms

Interpretive compiler
A program which combines a compiler that produces object code in an intermediate language with an interpreter for that intermediate language.

Portable Compilers

Terms

Portable program
A program which can be (compiled and) run on any machine.

Bootstrapping

Remarks

Case Study: The Triangle Language Processor

Remarks