Automatic Derivation of Abstract Semantics From Instruction Set Descriptions

Abstracted semantics of instructions of processor-based architectures are an invaluable asset for several formal verification techniques, such as software model checking and static analysis. In the field of model checking, abstract versions of instructions can help counter the state explosion problem, for instance by replacing explicit values by symbolic representations of sets of values. Similar to this, static analyses often operate on an abstract domain in order to reduce complexity, guarantee termination, or both. Hence, for a given microcontroller, the task at hand is to find such abstractions. Due to the large number of available microcontrollers, some of which are even created for specific applications, it is impracticable to rely on human developers to perform this step. Therefore, we propose a technique that starts from imperative descriptions of instructions, which allows to automate most of the process.

[1]  Markus Pister,et al.  A Framework for Static Analysis of VHDL Code , 2007, WCET.

[2]  Christel Baier,et al.  Principles of model checking , 2008 .

[3]  K. Keutzer,et al.  System-level design: orthogonalization of concerns andplatform-based design , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[4]  Stefan Kowalewski,et al.  A system for synthesizing abstraction-enabled simulators for binary code verification , 2010, International Symposium on Industrial Embedded System (SIES).

[5]  John Regehr,et al.  HOIST: a system for automatically deriving static analyzers for embedded systems , 2004, ASPLOS XI.

[6]  Stefan Kowalewski,et al.  Synthesizing simulators for model checking microcontroller binary code , 2010, 13th IEEE Symposium on Design and Diagnostics of Electronic Circuits and Systems.

[7]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[8]  Stefan Kowalewski,et al.  Application of static analyses for state-space reduction to the microcontroller binary code , 2011, Sci. Comput. Program..

[9]  Sharad Malik,et al.  Retargetable static timing analysis for embedded software , 2001, International Symposium on System Synthesis (IEEE Cat. No.01EX526).

[10]  Bastian Schlich,et al.  Delayed Nondeterminism in Model Checking Embedded Systems Assembly Code , 2007, Haifa Verification Conference.

[11]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[12]  Orna Grumberg,et al.  Static Analysis for State-Space Reductions Preserving Temporal Logics , 2004, Formal Methods Syst. Des..

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[14]  Bastian Schlich,et al.  Model checking of software for microcontrollers , 2010, TECS.

[15]  Matthew Might Abstract Interpreters for Free , 2010, SAS.