Embedded software verification using symbolic execution and uninterpreted functions

被引:17
|
作者
Currie, D
Feng, XS
Fujita, M
Hu, AJ
Kwan, M
Rajan, S
机构
[1] Univ British Columbia, Dept Comp Sci, Vancouver, BC V6T 1Z4, Canada
[2] Synopsys Inc, Marlbaro, MA USA
[3] Univ Tokyo, Tokyo, Japan
[4] Stanford Univ, Stanford, CA 94305 USA
[5] Fujitsu Labs Amer, Sunnyvale, CA USA
基金
加拿大自然科学与工程研究理事会;
关键词
formal verification; embedded software; DSP; VLIW;
D O I
10.1007/s10766-005-0004-8
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Symbolic simulation and uninterpreted functions have long been staple techniques for formal hardware verification. In recent years, we have adapted these techniques for the automatic, formal verification of low-level embedded software-specifically, checking the equivalence of different versions of assembly language programs. Our approach, though limited in scalability, has proven particularly promising for the intricate code optimizations and complex architectures typical of high-performance embedded software, such as for DSPs and VLIW processors. Indeed, one of our key findings was how easy it was to create or retarget our verification tools to different, even very complex, machines. The resulting tools automatically verified or found previously unknown bugs in several small sequences of industrial and published example code. This paper provides an introduction to these techniques and a review of our results.
引用
收藏
页码:61 / 91
页数:31
相关论文
共 50 条
  • [1] Embedded Software Verification Using Symbolic Execution and Uninterpreted Functions
    David Currie
    Xiushan Feng
    Masahiro Fujita
    Alan J. Hu
    Mark Kwan
    Sreeranga Rajan
    International Journal of Parallel Programming, 2006, 34 : 61 - 91
  • [2] Verification using uninterpreted functions and finite instantiations
    Hojati, R
    Isles, A
    Kirkpatrick, D
    Brayton, RK
    FORMAL METHODS IN COMPUTER-AIDED DESIGN, 1996, 1166 : 218 - 232
  • [3] Verification of scheduling in the presence of loops using uninterpreted symbolic simulation
    Ashar, Pranav
    Raghunathan, Anand
    Gupta, Aarti
    Bhattacharya, Subhrajit
    Proceedings - IEEE International Conference on Computer Design: VLSI in Computers and Processors, 1999, : 458 - 466
  • [4] VERIFICATION OF PROTOCOLS USING SYMBOLIC EXECUTION
    BRAND, D
    JOYNER, WH
    COMPUTER NETWORKS AND ISDN SYSTEMS, 1978, 2 (4-5): : 351 - 360
  • [5] Using symbolic simulation and weakening abstraction for formal verification of embedded software
    He, Nannan
    Hsiao, Michael S.
    PROCEEDINGS OF THE 10TH IASTED INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND APPLICATIONS, 2006, : 334 - +
  • [6] FORMAL PROGRAM VERIFICATION USING SYMBOLIC EXECUTION
    DANNENBERG, RB
    ERNST, GW
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1982, 8 (01) : 43 - 52
  • [7] Generating Unit Tests for Floating Point Embedded Software using Compositional Dynamic Symbolic Execution
    Prelgauskas, J.
    Bareisa, E.
    ELEKTRONIKA IR ELEKTROTECHNIKA, 2012, 122 (06) : 19 - 22
  • [8] Using dynamic symbolic execution to improve deductive verification
    Vanoverberghe, Dries
    Bjorner, Nikolaj
    de Halleux, Jonathan
    Schulte, Wolfram
    Tillmann, Nikolai
    MODEL CHECKING SOFTWARE, PROCEEDINGS, 2008, 5156 : 9 - 25
  • [9] Full contract verification for ATL using symbolic execution
    Bentley James Oakes
    Javier Troya
    Levi Lúcio
    Manuel Wimmer
    Software & Systems Modeling, 2018, 17 : 815 - 849
  • [10] USING SYMBOLIC EXECUTION FOR VERIFICATION OF ADA TASKING PROGRAMS
    DILLON, LK
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1990, 12 (04): : 643 - 669