Application binary interface compatability through a customizable language

Update Item Information
Publication Type dissertation
School or College College of Engineering
Department Computing
Author Atkinson, Kevin Jay
Title Application binary interface compatability through a customizable language
Date 2011-12
Description ZL is a C++-compatible language in which high-level constructs, such as classes, are defined using macros over a C-like core language. This approach is similar in spirit to Scheme and makes many parts of the language easily customizable. For example, since the class construct can be defined using macros, a programmer can have complete control over the memory layout of objects. Using this capability, a programmer can mitigate certain problems in software evolution such as fragile ABIs (Application Binary Interfaces) due to software changes and incompatible ABIs due to compiler changes. ZL's parser and macro expander is similar to that of Scheme. Unlike Scheme, however, ZL must deal with C's richer syntax. Specifically, support for context;-sensitive parsing and multiple syntactic categories (expressions, statements, types, etc.) leads to novel strategies for parsing and macro expansion. In this dissertation we describe ZL's approach to parsing and macros. We demonstrate how to use ZL to avoid problems with ABI instability through techniques such as fixing the size of class instances and controlling the layout of virtual method dispatch tables. We also demonstrate how to avoid problems with ABI incompatibility by implementing another compiler's ABI. Future work includes a more complete implementation of C++ and elevating the approach so that it is driven by a declarative ABI specification language.
Type Text
Publisher University of Utah
Subject ABI; Binary compatibility; C++; Extensible compilers; Macros; Scheme; ZL
Dissertation Institution University of Utah
Dissertation Name Doctor of Philosophy
Language eng
Rights Management Copyright © Kevin Jay Atkinson 2011
Format Medium application/pdf
Format Extent 430,714 bytes
Identifier us-etd3,75658
Source Original housed in Marriott Library Special Collections, QA3.5 2011 .A84
ARK ark:/87278/s6th92dr
Setname ir_etd
ID 194404
Reference URL https://collections.lib.utah.edu/ark:/87278/s6th92dr
Back to Search Results