Map
Index
Random
Help
Group
th

Group: code generation

topics > computer science > Group: programming



Topic:
code optimization
Topic:
code optimization by advice and statistics
Topic:
code optimization by code rewrite
Topic:
code optimization by flow analysis
Topic:
code optimization by global analysis
Topic:
code optimization by instruction reordering or scheduling
Topic:
code optimization by special case analysis
Topic:
compile-time execution
Topic:
compiler
Topic:
compiling pseudocode designs
Topic:
compressed code
Topic:
conditional compilation
Topic:
executable code from specifications and designs
Topic:
in-line code
Topic:
in-line machine code
Topic:
incremental compilation
Topic:
intermediate representation of code
Topic:
interpreter
Topic:
just-in-time compilation
Topic:
load-time code generation
Topic:
object code linkers and loaders
Topic:
optimization of object-oriented programs
Topic:
register allocation
Topic:
register allocation by graph coloring
Topic:
register allocation by usage counts
Topic:
register allocation by use-def graphs
Topic:
register arguments to subroutines
Topic:
static single assignment; SSA
Topic:
symbol table
Topic:
threaded code
Topic:
execution profile
Topic:
machine code and assembly language
Topic:
reverse engineering of software
Topic:
syntax analysis
Topic:
system builds
Topic:
Thesa compiler and loader

Summary

Code generation usually takes intermediate code based on symbolic operands or a syntax tree and produces relocatable code for linking and loading. It is an input-driven process-- ultimately from the original program representation. The result is a linear sequence of machine operations, and a list of symbols to interconnect separately compiled modules.

In Thesa, code generation assembles code from component procedures. It processes a sequence of virtual machine instructions in a register allocating environment. Register allocation decisions are delayed while information is collected. (cbb 5/80)

Subtopic: front end, back end, run-time up

Quote: co-design the front end, back end, and run-time system of a programming language; garbage collection, exception handling, debugging, profiling, and concurrency [»joneSP9_1999]
Quote: C-- separates policy from mechanism; enough hooks to allow a front-end system to implement a high-level run-time service; e.g., garbage collection [»joneSP9_1999]
Quote: high-level run-time services need to inspect and modify the state of a suspended program; e.g., garbage collector and live pointers, exception handler and call stack [»joneSP9_1999]
Quote: high-level run-time services combine information that only the front end has (variables on the heap, which exception handlers in scope), with information that only the back end has (live variables, program-counter values, how to unwind stacks)

Subtopic: code generation by routines up

Quote: Algol N's code generator traverses a tree and evokes a small code generator for each node [»suzaN12_1971]
QuoteRef: elsoM3_1970 ;;419 code generation by OMD which process tree from current location then chain or call other OMD. each node type also an OMD
Quote: compiler classifies a statement by pattern and calls appropriate routine [»nappRB2_1976, OK]
QuoteRef: cbb_1973 ;;2/3/74 it isn't the compiler that produces code but the program itself, just as it isn't the pen and pencil that produce the program
QuoteRef: cbb_1973 ;;6/18/78 so process of assembling and loading is very similar

Subtopic: byte-and-pointers model needed for efficiency up

Quote: code generation is inefficient for languages whose semantics are not close to the bytes-and-pointers model; often 3 to 10 times slower, especially with dynamic typing [»koenA12_1995]

Subtopic: compiler toolkit up

Quote: toolkit for processing machine codes: fields and tokens to describe instructions, patterns of binary encodings, and constructors to map assembly code to binary [»ramsN1_1995]
QuoteRef: bennRK7_1976 ;;37 many operators of all flavors-- eg for producing code

Subtopic: metadata up

Quote: PL.8 generated type metadata for every external variable; used for link edit and load-time type checking [»auslM6_1982]

Subtopic: generating machine code up

Quote: generate machine code after register allocation; table-driven, destructive operations, addressability, external references [»auslM6_1982]

Subtopic: decoding machine code up

Quote: algorithm for decoding machine code from bit patterns alone; accesses significant bits exactly once; assumes unambiguous decoding by the processor
[»theiH6_2001]

Group: code generation up

Topic: code optimization (54 items)
Topic: code optimization by advice and statistics (8 items)
Topic: code optimization by code rewrite (30 items)
Topic: code optimization by flow analysis (47 items)
Topic: code optimization by global analysis (24 items)
Topic: code optimization by instruction reordering or scheduling (16 items)
Topic: code optimization by special case analysis (22 items)
Topic: compile-time execution (17 items)
Topic: compiler (18 items)
Topic: compiling pseudocode designs (8 items)
Topic: compressed code (17 items)
Topic: conditional compilation (1 item)
Topic: executable code from specifications and designs (18 items)
Topic: in-line code (7 items)
Topic: in-line machine code (5 items)
Topic: incremental compilation (3 items)
Topic: intermediate representation of code (31 items)
Topic: interpreter (59 items)
Topic: just-in-time compilation (20 items)
Topic: load-time code generation (13 items)
Topic: object code linkers and loaders (31 items)
Topic: optimization of object-oriented programs (16 items)
Topic: register allocation (28 items)
Topic: register allocation by graph coloring (21 items)
Topic: register allocation by usage counts (12 items)
Topic: register allocation by use-def graphs (9 items)
Topic: register arguments to subroutines (2 items)
Topic: static single assignment; SSA (19 items)
Topic: symbol table (4 items)
Topic: threaded code
(18 items)

Related Topics up

Topic: execution profile (43 items)
Topic: machine code and assembly language (49 items)
Topic: reverse engineering of software (6 items)
Topic: syntax analysis (29 items)
Topic: system builds (43 items)
Topic: Thesa compiler and loader
(23 items)

Updated barberCB 4/04
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.