Deriving abstract transfer functions for analyzing embedded software

Update Item Information
Publication Type Manuscript
School or College College of Engineering
Department Computing, School of
Creator Regehr, John
Other Author Duongsaa, Usit
Title Deriving abstract transfer functions for analyzing embedded software
Date 2006-01-01
Description This paper addresses the problem of creating abstract transfer functions supporting dataflow analyses. Writing these functions by hand is problematic: transfer functions are difficult to understand, difficult to make precise, and difficult to debug. Bugs in transfer functions are particularly serious since they defeat the soundness of any program analysis running on top of them. Furthermore, implementing transfer functions by hand is wasteful because the resulting code is often difficult to reuse in new analyzers and to analyze new languages. We have developed algorithms and tools for deriving transfer functions for the bitwise and unsigned interval abstract domains. The interval domain is standard; in the bitwise domain, values are vectors of three-valued bits. For both domains, important challenges are to derive transfer functions that are sound in the presence of integer overflow, and to derive precise transfer functions for operations whose semantics are a mismatch for the domain (i.e., bit-vector operations in the interval domain and arithmetic operations in the bitwise domain). We can derive transfer functions, and execute them, in time linear in the bitwidth of the operands. These functions are maximally precise in most cases. Our generated transfer functions are parameterized by a bitwidth and are independent of the language being analyzed, and also of the language in which the analyzer is written. Currently, we generate interval and bitwise transfer functions in C and OCaml for analyzing C source code, ARM object code, and AVR object code. We evaluate our derive functions by using them in an interprocedural dataflow analyzer.
Type Text
Publisher Association for Computing Machinery
DOI http://doi.acm.org/10.1145/nnnnnn.nnnnnn ; ACM 1-59593-362-X/06/0006. Doi 10.1145/1134650.1134657
Dissertation Institution University of Utah
Language eng
Bibliographic Citation Regehr, J., & Duongsaa, U. (2006). Deriving abstract transfer functions for analyzing embedded software. In Proceedings of the ACM Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES 2006). June.
Rights Management © ACM, 2006. This is the authors 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 ACM Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES 2006). June 14-16. 34-43.
Format Medium application/pdf
Format Extent 740,108 bytes
Identifier uspace,17489
ARK ark:/87278/s6v41cz4
Setname ir_uspace
ID 708014
Reference URL https://collections.lib.utah.edu/ark:/87278/s6v41cz4
Back to Search Results