Precise and efficient static array bound checking for large embedded C programs

被引:36
作者
Venet, A [1 ]
Brat, G [1 ]
机构
[1] NASA, Ames Res Ctr, Kestrel Technol, Moffett Field, CA 94035 USA
关键词
abstract interpretation; program verification; pointer analysis; array-bound checking; difference-bound matrices;
D O I
10.1145/996893.996869
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In this paper we describe the design and implementation of a static array-bound checker for a family of embedded programs: the flight control software of recent Mars missions. These codes are large (up to 280 KLOC), pointer intensive, heavily multithreaded and written in an object-oriented style, which makes their analysis very challenging. We designed a tool called C Global Surveyor (CGS) that can analyze the largest code in a couple of hours with a precision of 80%. The scalability and precision of the analyzer are achieved by using an incremental framework in which a pointer analysis and a numerical analysis of array indices mutually refine each other. CGS has been designed so that it can distribute the analysis over several processors in a cluster of machines. To the best of our knowledge this is the first distributed implementation of static analysis algorithms. Throughout the paper we will discuss the scalability setbacks that we encountered during the construction of the tool and their impact on the initial design decisions.
引用
收藏
页码:231 / 242
页数:12
相关论文
共 17 条
  • [1] [Anonymous], ANAL SLICING TRANSFO
  • [2] Blanchet Bruno, 2003, P ACM SIGPLAN 2003 C, P196, DOI [DOI 10.1145/780822.781153, 10.1145/781131.781153, DOI 10.1145/781131.781153]
  • [3] BOURDONCLE F, 1993, LECT NOTES COMPUTER, V735, P128
  • [4] BRAT G, 2003, 1 INT SPAC MISS CHAL, P321
  • [5] Cousot P., 1992, Journal of Logic and Computation, V2, P511, DOI 10.1093/logcom/2.4.511
  • [6] Cousot P, 2002, LECT NOTES COMPUT SC, V2304, P159
  • [7] ABSTRACT INTERPRETATION AND APPLICATION TO LOGIC PROGRAMS
    COUSOT, P
    COUSOT, R
    [J]. JOURNAL OF LOGIC PROGRAMMING, 1992, 13 (2-3): : 103 - 179
  • [8] Cousot P., 1977, P 4 ACM SIGACT SIGPL, DOI DOI 10.1145/512950.512973
  • [9] COUSOT P, **DROPPED REF**
  • [10] DAS M, 2000, P ACM SIGPLAN C PROG, P35