Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software

Bruno Blanchet, Patrick Cousot, Radhia Cousot, Jerôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, Xavier Rival

Research output: Chapter in Book/Report/Conference proceedingChapter

Abstract

We report on a successful preliminary experience in the design and implementation of a special-purpose Abstract Interpretation based static program analyzer for the verification of safety critical embedded real-time software. The analyzer is both precise (zero false alarm in the considered experiment) and efficient (less than one minute of analysis for 10,000 lines of code). Even if it is based on a simple interval analysis, many features have been added to obtain the desired precision: expansion of small arrays, widening with several thresholds, loop unrolling, trace partitioning, relations between loop counters and other variables. The efficiency of the tool mainly comes from a clever representation of abstract environments based on balanced binary search trees.

Original languageEnglish (US)
Title of host publicationThe Essence of Computation: Complexity, Analysis, Transformation
Pages85-108
Number of pages24
Volume2566 LNCS
StatePublished - 2002

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume2566 LNCS
ISSN (Print)03029743
ISSN (Electronic)16113349

Fingerprint

Embedded Software
Embedded software
Safety
Real-time
Binary Search Tree
Interval Analysis
Abstract Interpretation
False Alarm
Partitioning
Experiments
Trace
Software
Line
Zero
Experiment
Design
Experience

ASJC Scopus subject areas

  • Computer Science(all)
  • Theoretical Computer Science

Cite this

Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., ... Rival, X. (2002). Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. In The Essence of Computation: Complexity, Analysis, Transformation (Vol. 2566 LNCS, pp. 85-108). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 2566 LNCS).

Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. / Blanchet, Bruno; Cousot, Patrick; Cousot, Radhia; Feret, Jerôme; Mauborgne, Laurent; Miné, Antoine; Monniaux, David; Rival, Xavier.

The Essence of Computation: Complexity, Analysis, Transformation. Vol. 2566 LNCS 2002. p. 85-108 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 2566 LNCS).

Research output: Chapter in Book/Report/Conference proceedingChapter

Blanchet, B, Cousot, P, Cousot, R, Feret, J, Mauborgne, L, Miné, A, Monniaux, D & Rival, X 2002, Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. in The Essence of Computation: Complexity, Analysis, Transformation. vol. 2566 LNCS, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 2566 LNCS, pp. 85-108.
Blanchet B, Cousot P, Cousot R, Feret J, Mauborgne L, Miné A et al. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. In The Essence of Computation: Complexity, Analysis, Transformation. Vol. 2566 LNCS. 2002. p. 85-108. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
Blanchet, Bruno ; Cousot, Patrick ; Cousot, Radhia ; Feret, Jerôme ; Mauborgne, Laurent ; Miné, Antoine ; Monniaux, David ; Rival, Xavier. / Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. The Essence of Computation: Complexity, Analysis, Transformation. Vol. 2566 LNCS 2002. pp. 85-108 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inbook{f558deeac44c43ea87b6776896133c02,
title = "Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software",
abstract = "We report on a successful preliminary experience in the design and implementation of a special-purpose Abstract Interpretation based static program analyzer for the verification of safety critical embedded real-time software. The analyzer is both precise (zero false alarm in the considered experiment) and efficient (less than one minute of analysis for 10,000 lines of code). Even if it is based on a simple interval analysis, many features have been added to obtain the desired precision: expansion of small arrays, widening with several thresholds, loop unrolling, trace partitioning, relations between loop counters and other variables. The efficiency of the tool mainly comes from a clever representation of abstract environments based on balanced binary search trees.",
author = "Bruno Blanchet and Patrick Cousot and Radhia Cousot and Jer{\^o}me Feret and Laurent Mauborgne and Antoine Min{\'e} and David Monniaux and Xavier Rival",
year = "2002",
language = "English (US)",
isbn = "9783540003267",
volume = "2566 LNCS",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
pages = "85--108",
booktitle = "The Essence of Computation: Complexity, Analysis, Transformation",

}

TY - CHAP

T1 - Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software

AU - Blanchet, Bruno

AU - Cousot, Patrick

AU - Cousot, Radhia

AU - Feret, Jerôme

AU - Mauborgne, Laurent

AU - Miné, Antoine

AU - Monniaux, David

AU - Rival, Xavier

PY - 2002

Y1 - 2002

N2 - We report on a successful preliminary experience in the design and implementation of a special-purpose Abstract Interpretation based static program analyzer for the verification of safety critical embedded real-time software. The analyzer is both precise (zero false alarm in the considered experiment) and efficient (less than one minute of analysis for 10,000 lines of code). Even if it is based on a simple interval analysis, many features have been added to obtain the desired precision: expansion of small arrays, widening with several thresholds, loop unrolling, trace partitioning, relations between loop counters and other variables. The efficiency of the tool mainly comes from a clever representation of abstract environments based on balanced binary search trees.

AB - We report on a successful preliminary experience in the design and implementation of a special-purpose Abstract Interpretation based static program analyzer for the verification of safety critical embedded real-time software. The analyzer is both precise (zero false alarm in the considered experiment) and efficient (less than one minute of analysis for 10,000 lines of code). Even if it is based on a simple interval analysis, many features have been added to obtain the desired precision: expansion of small arrays, widening with several thresholds, loop unrolling, trace partitioning, relations between loop counters and other variables. The efficiency of the tool mainly comes from a clever representation of abstract environments based on balanced binary search trees.

UR - http://www.scopus.com/inward/record.url?scp=84887962732&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84887962732&partnerID=8YFLogxK

M3 - Chapter

SN - 9783540003267

VL - 2566 LNCS

T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

SP - 85

EP - 108

BT - The Essence of Computation: Complexity, Analysis, Transformation

ER -