Topic: code optimization
Topic: code optimization by code rewrite
Topic: compiler
Topic: compressed code
Topic: incremental execution
Topic: interpreter
Topic: just-in-time compilation
Topic: load-time code generation
Topic: machine code and assembly language
Topic: object code linkers and loaders
Topic: register allocation
Topic: stack machine
Topic: threaded code
Topic: virtual machine
| |
Subtopic: intermediate code goals
Quote: intermediate representation should be machine independent, encode dataflow, allow security proofs, extendible, space efficient, online code generation [»franM11_1998]
| Quote: for optimization, the intermediate representation should be tree-based with control flow, dominator, and use-def information included [»franM11_1998]
| Subtopic: intermediate language as abstraction
Quote: C-- is an abstraction of computation (expressions), control flow (if), memory (addressing), registers (variables), and procedures; an intermediate language [»joneSP9_1999]
| Subtopic: specification
Quote: ASDL, abstract syntax description language, for describing intermediate representations; concise data structure definitions, pickling functions, and automated implementation; simplification of ASN.1 [»wangDS10_1997]
| Subtopic: examples
Quote: Lean Virtual Machine--stack-based; lcc trees in postfix
| Quote: C-- is a compiler-target language that is independent of source programming and target architecture [»ramsN6_2000]
| Quote: C-- is a portable assembly language; e.g., language-independent specification of garbage collection
| Quote: .NET Common Language Runtime (CLR) provides a type system and intermediate language for object-oriented languages; stack-based, single-inheritance, interfaces, native code compilation, runtime services, shared libraries [»kennA6_2001]
| Quote: Limbo programs are byte codes for the Dis virtual machine with garbage collection and task scheduling [»dorwSM1_1997]
| Quote: 32-bit, register-based intermediate language for PL.8; similar to target machines [»auslM6_1982]
| QuoteRef: ahoAV_1973 ;;724 intermediate representations--pre or postfix polish, linked list trees, multiple address code with named or implicit results
| QuoteRef: ganaM10_1981 ;;Bibliography on automated retargetable code generation
| Subtopic: uniform intermediate code
Quote: in multi-pass programs with different intermediate formats, can not remove a pass [»parnDL5_1978]
| Subtopic: IL code generation
Quote: generate intermediate code bottom up, independent of context [»auslM6_1982]
| Subtopic: control flow
Quote: PL.8 intermediate language uses a status register for compares and conditional jumps; no source language control structures [»auslM6_1982]
| Quote: a C-- program is the textual description of a control-flow graph; a label names a node and a goto creates an edge to the node [»ramsN6_2000]
| Quote: with structured languages, loops in intermediate code usually via 'DO' construct
| Subtopic: data types
Quote: C-- types are words and floating-point values of various sizes; e.g., bits16, float64 [»ramsN6_2000]
| Quote: C-- types only for the allocation and use of machine resources; e.g., the mapping of variables to registers [»ramsN6_2000]
| Subtopic: addressing
Quote: C-- identifies the native data-pointer and native code-pointer types
| Quote: optimize addressing and housekeeping computations through the intermediate language; necessary for efficiency [»auslM6_1982]
| Subtopic: compression
Quote: 24% smaller compressed code by separating an intermediate representation into streams [»frasCW5_1999]
| Subtopic: lexical tokens
Quote: store program as tokens; skips lexical scan, reduces file size, allows full listing [»hoarCA_1974]
| Subtopic: patching
Quote: JRun instruments Java code by patching its bytecode; annotated class file format with constant pool [»mossK10_2000]
| Quote: Corbato and Daggett's linking loader allowed patches in symbolic machine language [»mccaJ7_1963]
| Subtopic: load-time linking
Quote: Oberon's loader transforms modules into executable code by linking object code files on disk [»wirtN9_1989]
| Quote: a linking segment subprogram is a relocatable binary with symbolic references and arrays; a linking loader combines these subprograms and resolves references [»mccaJ7_1963]
| Subtopic: run-time code generation
Quote: instruction coprocessor generates machine code for intermediate codes; 2x faster, problem of jumps [»debaEH_1990]
| Subtopic: intermediate code vs. source
Quote: compared intermediate code instead of C code; captures the essential properties of a program [»engbJ5_1999]
| Note: use compiled code as disk format; IDs expanded to text as needed [»cbb_1990, OK]
| Subtopic: decoding
Quote: algorithm for decoding machine code from bit patterns alone; accesses significant bits exactly once; assumes unambiguous decoding by the processor [»theiH6_2001]
|
Related Topics
Topic: code optimization (54 items)
Topic: code optimization by code rewrite (30 items)
Topic: compiler (18 items)
Topic: compressed code (17 items)
Topic: incremental execution (22 items)
Topic: interpreter (59 items)
Topic: just-in-time compilation (20 items)
Topic: load-time code generation (13 items)
Topic: machine code and assembly language (49 items)
Topic: object code linkers and loaders (31 items)
Topic: register allocation (28 items)
Topic: stack machine (10 items)
Topic: threaded code (18 items)
Topic: virtual machine (13 items)
|