ABI Compatibility Through a Customizable Language

Kevin Atkinson, Matthew Flatt, and Gary Lindstrom
{kevina, mflatt, gary}@cs.utah.edu
University of Utah, School of Computing

Abstract

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 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. In this paper, we outline the problem of fragile and incompatible ABIs and show how ZL can be used to solve them.

Appeared in Proceedings of the Ninth International Conference on Generative Programming and Component Engineering (GPCE), pages 147–156, Eindhoven, The Netherlands, October 2010.

© ACM, 2010. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in Proceedings of the Ninth International Conference on Generative Programming and Component Engineering (GPCE '10), Eindhoven, The Netherlands, Oct. 2010. http://dx.doi.org/10.1145/1868294.1868316

The slides from the GPCE '10 presentation are also available.


Eric Eide <eeide@cs.utah.edu>
Last modified: Sun Jan 16 14:18:50 MST 2011