Sciweavers

CC
2008
Springer

Automatic Transformation of Bit-Level C Code to Support Multiple Equivalent Data Layouts

14 years 2 months ago
Automatic Transformation of Bit-Level C Code to Support Multiple Equivalent Data Layouts
Portable low-level C programs must often support multiple equivalent in-memory layouts of data, due to the byte or bit order of the compiler, architecture, or external data formats. Code that makes assumptions about data layout often consists of multiple highly similar pieces of code, each designed to handle a different layout. Writing and maintaining this code is difficult and bug-prone: Because the differences among data layouts are subtle, implicit, and inherently low-level, it is difficult to understand or change the highly similar pieces of code consistently. We have developed a small extension for C that lets programmers write concise declarative descriptions of how different layouts of the same data relate to each other. Programmers then write code assuming only one layout and rely on our translation to generate code for the others. In this work, we describe our declarative language for specifying data layouts, how we perform the automatic translation of C code to equivalent cod...
Marius Nita, Dan Grossman
Added 12 Oct 2010
Updated 12 Oct 2010
Type Conference
Year 2008
Where CC
Authors Marius Nita, Dan Grossman
Comments (0)