Topic: object code linkers and loaders

topics > computer science > programming > Group: code generation

memory management

dynamic code modification
incremental compilation
intermediate representation of code
just-in-time compilation
load-time code generation
memory management for programs and modules
programming with a database of modules
software maintenance by patching
system builds
Thesa compiler and loader

Subtopic: linkers up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

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 up

Note: type includes a list of fields, created by 'Field of Type'; compute offsets on load [»cbb_2000, OK]

Subtopic: fast compiler up

QuoteRef: hoarCA_1972 ;;338 compiler as fast as linker loader, also efficiency and security

Subtopic: internal representations up

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 up

Quote: use persistent functions for program linking [»atkiMP6_1987]

Subtopic: line numbers up

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 up

Note: use compiled code as disk format; IDs expanded to text as needed [»cbb_1990, OK]

Subtopic: history up

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

Related Topics up

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)

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