-

Changes

Jump to: navigation, search

Compiler Structure

9 bytes added, 17:47, 30 July 2017
no edit summary
The passes are:
;CPP
:The pre-processor - handles macros and conditional compilation
;P1
:The syntax and semantic analysis pass. This writes intermediate code for the code generator to read.
;CGEN, CG86 etc.:
:The code generator - produces assembler code.
;OPTIM, OPT86 etc.
:The code improver - may optionally be omitted, reducing compilation time at a cost of larger, slower code produced.
;ZAS, AS86 etc.
:The assembler - in fact a general purpose macro assembler.
;LINK
:The link editor - links object files with libraries.
;OBJTOHEX
:This utility converts the output of LINK into the appropriate executable file format (e.g. .EXE or .PRG or .HEX).
:The passes are invoked in the order given. Each pass reads a file and writes a file for its successor to read. Each intermediate file has a particular format; CPP produces C code without the macro definitions and with uses of macros expanded; P1 writes a file containing a program in an intermediate code; CGEN translates this to assembly code; AS produces object code, a binary format containing code bytes along with relocation and symbol information. LINK accepts object files and libraries of object files and writes another object file; this may be in absolute form or it may preserve relocation information and be input to another LINK command.
:There are also other utility programs:
There are also other utility programs: ;LIBR
:Creates and maintains libraries of object modules
;CREF
:Produces cross-reference listings of C or assembler programs.

Navigation menu