Group: memory management
Topic: compiler
Topic: dynamic code modification
Topic: incremental compilation
Topic: intermediate representation of code
Topic: just-in-time compilation
Topic: load-time code generation
Topic: memory management for programs and modules
Topic: programming with a database of modules
Topic: software maintenance by patching
Topic: system builds
Topic: Thesa compiler and loader
| |
Subtopic: linkers
| Quote: the assembly subroutine combined a master routine with subroutines, generated subroutine calls, and resolved input data; seldom used [»wilkMV_1951]
| | Quote: transform a library subroutine into its final form on loading [»wheeDJ6_1949]
| | Quote: Oberon's loader transforms modules into executable code by linking object code files on disk [»wirtN9_1989]
| | Quote: Oberon allocates imported modules but does not load them; delayed loading on first call by paging; supports larger systems [»wirtN9_1989]
| Subtopic: incremental linkers
| Quote: traditional compiler/linkers generate many output files; not needed for dynamic code generation [»franM3_1997]
| | Quote: with incremental loading or faster processor speeds, on-the-fly code generation may be as fast as a loader
| | Quote: portable interface for modifying instruction space; e.g., for incremental linking; handles machine-dependent issues such as instruction caching [»keppD4_1991]
| Subtopic: feedback linker
| Quote: use a feedback linker to reduce the size of binary delta files; does not modify 4-26% of the 4Kbyte pages [»vonpC6_2006]
| | Quote: use delta images for updating embedded software; in-place update [»vonpC6_2006]
| Subtopic: separate compilation
| Quote: lcc.NET is a C compiler under MSIL; does not include setjump, longjmp, and some function pointers; required a new MSIL linker for static initialization and separate compilation; problems with address arithmetic [»hansDR3_2004]
| Subtopic: metadata
| Quote: PL.8 generated type metadata for every external variable; used for link edit and load-time type checking [»auslM6_1982]
| Subtopic: type-safe dynamic linking
| Quote: dynamic linking of verifiable native code in Typed Assembly Language (TAL); allows type-safe, dynamic linking; comparable performance to the standard ELF implementation [»hickM9_2000]
| Subtopic: remotely-loaded code
| Quote: remotely-loaded code may have security flaws. For example, Java has many security flaws such as covert channels and lacking a formal security policy [»deanD5_1996]
| | Quote: a language for remotely-loaded code should have a safe type system, garbage-collection, and carefully managed system calls
| | Quote: Limbo programs are byte codes for the Dis virtual machine with garbage collection and task scheduling [»dorwSM1_1997]
| Subtopic: explicit loader
| Quote: Limbo programs load modules explicitly: simplifies garbage collection, provides better control, allows multiple implementations [»dorwSM1_1997]
| | Quote: the 'load' operator takes a module type and the filename of an implementation. It checks that the implementation matches the type
| | Quote: a Limbo program can load different implementations of a module; e.g., load a GIF implementation of an image file [»dorwSM1_1997]
| Subtopic: class loaders
| Quote: class loaders--lazy loading, type-safe linkage, multiple namespaces, user extensibility [»lianS10_1998]
| | Quote: class loaders in Java locate an implementation for a class by its textual name; e.g., locate a handler for a new MIME type by its name [»goslJ6_1997]
| Subtopic: fields
| Note: type includes a list of fields, created by 'Field of Type'; compute offsets on load [»cbb_2000, OK]
| Subtopic: fast compiler
| QuoteRef: hoarCA_1972 ;;338 compiler as fast as linker loader, also efficiency and security
| Subtopic: internal representations
| Quote: a C-- executable consists of C-- modules, a large front-end run-time library, and a small C-- run-time system for suspended computations [»ramsN6_2000]
| Subtopic: linking as persistent functions
| Quote: use persistent functions for program linking [»atkiMP6_1987]
| Subtopic: line numbers
| Quote: can encode line numbers into a frequently used operation code; then determine the current line number by scanning the object code [»klinP10_1979, OK]
| Subtopic: definition as executable
| Note: use compiled code as disk format; IDs expanded to text as needed [»cbb_1990, OK]
| Subtopic: history
| 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]
| | Quote: Corbato and Daggett's linking loader allowed patches in symbolic machine language [»mccaJ7_1963]
| | Quote: AED compilation produces merbes by merging merbes and vocabulary merbes; merbes have a parameter header and code with parameter substitution; can create new vocabulary merbe [»rossDT5_1964]
| | Quote: execute a program one allocation unit at a time; load into memory on use [»holtAW10_1961]
| Quote: use relocatable code for library subroutines; allows mechanical copying of subroutines [»wilkMV_1951]
|
Related Topics
Group: memory management (11 topics, 367 quotes)
Topic: compiler (18 items)
Topic: dynamic code modification (15 items)
Topic: incremental compilation (3 items)
Topic: intermediate representation of code (31 items)
Topic: just-in-time compilation (20 items)
Topic: load-time code generation (13 items)
Topic: memory management for programs and modules (12 items)
Topic: programming with a database of modules (94 items)
Topic: software maintenance by patching (27 items)
Topic: system builds (43 items)
Topic: Thesa compiler and loader (23 items)
|