Linkers and Loaders

  title={Linkers and Loaders},
  author={Leon Presser and John R. White},
  journal={ACM Comput. Surv.},
This is a tutorial paper on the linking and loading stages of the language transformation process First, loaders are classffied and discussed Next, the hnking process is treated in terms of the various times at whmh it may occur (i e , binding to logical space). Finally, the hnking and loading functmns are explained m detail through a careful examination of their implementation m the IBM System/360 Examples are presented, and a number of possible system trade-offs are pointed out. 

Figures from this paper

Linkers and loaders
The function of the linker was to combine a number of independently compiled or assembled object files into a single load module, resolving cross-references and incorporating routines from libraries as required.
Relocating loader for MS-DOS .EXE executable files
Interactive inspection of dynamic linking and loading
DynInspector, an interactive inspection tool with a user-friendly graphical user interface that eases the understanding of dynamic linking and loading, and offers support for viewing relevant areas of the program memory by making use of the existing functionality of debuggers.
On Generalizing Interrupt Handling into a Flexible Binding Model for Kernel Components
This paper presents a flexible binding implementation in JBEOS, a component based embedded operating system targeted at resource-constrained devices. This binding model features an extensible
Separate Compilation of Structured Documents
A block-based document model is described which allows for separate compilation of various portions of a document which is brought together and merged by a linker program, called dlink, whose pilot implementation is based on ditroff and on its underlying intermediate code.
Type-safe linkage for variables and functions
It is asserted that lifting limitations would require modifying the linker or providing an environment for separate compilation, and a solution is presented that lifts the limitations within the existing scheme.
Context parsing (not only) of the object-file-format description language
A formal language and its parser will be used for an object file parsing and its automatic conversion into the internal uniform file format and the concept of this parser can be utilized within other programming languages.
SLINKY: Static Linking Reloaded
The SLINKY system that uses digest-based sharing to combine the simplicity of static linking with the space savings of dynamic linking is described, and it is believed that SLINKy obviates many of the justifications for dynamic linking.
A machine‐independent linker
The linker embodies those linking functions that are machine‐independent and centralizes them in a single tool, simplifying compilers, assemblers, and loaders.
The missing link: explaining ELF static linking, semantically
This paper provides the first validated formalisation of a realistic executable and linkable format (ELF), and captures aspects of the Application Binary Interfaces for four mainstream platforms (AArch64, AMD64, Power64, and IA32).


Virtual Memory
Two principal methods for implementing virtual memory, segmentation and paging, are compared and contrasted and are shown to be controllable by a proper combination of hardware and memory management policies.
Von Neumann's First Computer Program
An analysis of the two earliest sets of instruction codes planned for stored program computers, and the earliest extant program for such a computer, gives insight into the thoughts of John yon
The han~latmn of programming languages
  • The han~latmn of programming languages
  • 1972
Computer operating systems Chapman and Hall
  • Computer operating systems Chapman and Hall
  • 1971
Operating ~ystems
  • Operating ~ystems
  • 1972
The hnkmg segment subprogram language and hnkmg loader
  • Comm. ACM
  • 1963
Coml)utmg Storeys
  • Coml)utmg Storeys
  • 1972
W Tzme-sharing system des~q~t cot~cepts
  • W Tzme-sharing system des~q~t cot~cepts
  • 1970