Font Size: a A A

A retargetable, optimizing linker

Posted on:1997-04-06Degree:Ph.DType:Thesis
University:Princeton UniversityCandidate:Fernandez, Maria FrancescaFull Text:PDF
GTID:2468390014980319Subject:Computer Science
Abstract/Summary:
Development of reusable software is an important software-engineering problem. Researchers address this problem by designing programming languages with features to support the development of modular software. Object-oriented languages support modularity by providing abstractions, such as Modula-3's abstract data types, that separate a software component's interface from its implementation. Some object-oriented features, however, incur runtime costs, because they shift binding time, which is the time when the complete representations of types and variables are known, from compile time to run time. Late binding makes it difficult for a compiler to implement these features efficiently.; This thesis describes a software approach to the problem of implementing high-level programming languages with late binding. We show how Modula-3's and C{dollar}sp{lcub}++{rcub}{dollar}'s features that require late binding can be implemented more efficiently with an optimizing linker. We describe the design and implementation of mld, a retargetable, optimizing linker, for the MIPS, SPARC, and Intel 486 architectures, mld's optimizations permit efficient implementation of Modula-3's module-encapsulation and data-abstraction features, we present the results of applying mld's simple optimization techniques to several Modula-3 programs and report their execution times on the MIPS and Intel 486.; mld's optimizations use information--the complete type hierarchy, external procedures, and profiles--that is usually unavailable until link time and therefore not available to an optimizing compiler. The optimizations simplicity contributes to their effectiveness and efficiency, because they do not require complex algorithms, and they are easy to implement. Most important, mld's optimizations reduce the runtime costs of strong encapsulation features without compromising program modularity.; Unlike conventional linkers, mld links mill, a machine-independent intermediate code, instead of machine-dependent object code. Linking intermediate code simplifies mld's implementation, because mill is a natural representation for applying mld's machine-independent optimizations and permits optimization of procedures in libraries as well as those in applications. Linking intermediate code is expensive, because code generation is delayed until link time. mld offsets this cost by using fast code-generation technology. We report the costs of using mld and describe the software technology that helps makes link-time code generation feasible on multiple targets.
Keywords/Search Tags:Software, Features, Code, Time, Optimizing, Mld
Related items