Group: memory management
Group: programming
Topic: builtin functions
Topic: code optimization
Topic: compiler error checking
Topic: compile-time execution
Topic: compiling pseudocode designs
Topic: conditional compilation
Topic: incremental compilation
Topic: intermediate representation of code
Topic: interpreter
Topic: just-in-time compilation
Topic: lexical analysis
Topic: load-time code generation
Topic: object code linkers and loaders
Topic: symbol table
Topic: syntax analysis
Topic: system-defined variables
Topic: Thesa compiler and loader
| |
Summary
A compiler translates a programming language into machine instructions. Compilers translate programs into an internal format for rapid loading and linking. Compilers are typically used with an editor and a linker-loader.
Curiously compilers are seldom subjected to criticism nor to standards. They are an invisible link in the programming process.
Interpreters form the primary alternative to compilers. Other alternatives are throw-away compilation and incremental compilers.
Note the quotation by Mauchly. Like self-modifying code, a compiler represents a long sequence of instructions by transforming a shorter sequence of instructions. (cbb 5/80 3/98)
Subtopic: compilation
Quote: a compiler translates a program into a sequence of unrecognizable codes that, like magic, has the same execution [»elsoM_1973]
| Quote: a compiler translates flow charts into code, compiles any program, includes named flow charts, and allocates memory [»perlAJ4_1957]
| Quote: compile statements by symbol pairs invoking a generator; context not needed [»perlAJ4_1957]
| Quote: instruction modification is more important than subsequences; allows a short program to carry out a very long sequence of instructions
| Quote: with simple hardware, the compiler is complex but program execution is simple and efficient [»hennJ3_1982]
| Subtopic: goals
Quote: compilation time is important because half of throughput can be spent compiling [»flynMJ9_1987]
| Quote: a compiler needs exhaustive error checking, fast compilation, and efficient code [»wirtN3_1976]
| Quote: efficient object code is important; allows better-structured and clearer programs [»hoarCA_1974]
| Quote: a compiler should produce efficient, compact code similar to a resolutely non-clever machine code programmer [»hoarCA_1974]
| Subtopic: portability
Quote: PL.8 was highly portable; most bugs occurred on all machines
| Subtopic: testing
Quote: self-test of compiler by fixed points; compile the compiler, then recompile; the two results should be identical; also recompile the runtime library for each machine [»auslM6_1982]
| Subtopic: precompiled code
Quote: use precompile to save the compiler state after processing any initial segment of a program [»hoarCA_1974]
| Subtopic: examples
Quote: Pascal compiler programmed in Pascal itself; 7000 lines; 63 seconds to compile [»wirtN3_1976]
| Quote: PL.8 compiler was written in PL.8 [»auslM6_1982]
| QuoteRef: wulfWA12_1971 ;;782 Bliss requires no run-time support
| QuoteRef: feldJ2_1968 ;;good review of compilers, covers syntax and semantics
| QuoteRef: wulfW_1975 ;;good presentation of an optimizing compiler, from syntax to code generation.
| QuoteRef: hoarCA_1972 ;;338 compiler as fast as linker loader, also efficiency and security
|
Related Topics
Group: memory management (11 topics, 367 quotes)
Group: programming (339 topics, 10149 quotes)
Topic: builtin functions (6 items)
Topic: code optimization (54 items)
Topic: compiler error checking (16 items)
Topic: compile-time execution (17 items)
Topic: compiling pseudocode designs (8 items)
Topic: conditional compilation (1 item)
Topic: incremental compilation (3 items)
Topic: intermediate representation of code (31 items)
Topic: interpreter (59 items)
Topic: just-in-time compilation (20 items)
Topic: lexical analysis (14 items)
Topic: load-time code generation (13 items)
Topic: object code linkers and loaders (31 items)
Topic: symbol table (4 items)
Topic: syntax analysis (29 items)
Topic: system-defined variables (9 items)
Topic: Thesa compiler and loader (23 items)
|