Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
Theoretical Computer Science
Improving abstract interpretations by systematic lifting to the powerset
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimal domains for disjunctive abstract interpretation
Science of Computer Programming - Special issue on the 6th European symposium on programming
Making abstract interpretations complete
Journal of the ACM (JACM)
An axiomatic basis for computer programming
Communications of the ACM
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Systematic design of program analysis frameworks
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Asserting the Precision of Floating-Point Computations: A Simple Abstract Interpreter
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
Modular Static Program Analysis
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Verifying Invariants Using theorem Proving
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
A static analyzer for large safety-critical software
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A class of polynomially solvable range constraints for interval analysis without widenings
Theoretical Computer Science - Tools and algorithms for the construction and analysis of systems (TACAS 2004)
Field-sensitive value analysis of embedded C programs with union types and pointer arithmetics
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Higher-Order and Symbolic Computation
Varieties of Static Analyzers: A Comparison with ASTREE
TASE '07 Proceedings of the First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering
The trace partitioning abstract domain
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Combination of abstractions in the ASTRÉE static analyzer
ASIAN'06 Proceedings of the 11th Asian computing science conference on Advances in computer science: secure software and related issues
Automatically refining abstract interpretations
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
The parallel implementation of the astrée static analyzer
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
The arithmetic-geometric progression abstract domain
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Trace partitioning in abstract interpretation based static analyzers
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Symbolic methods to enhance the precision of numerical abstract domains
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
Widening operators for weakly-relational numeric abstractions
SAS'05 Proceedings of the 12th international conference on Static Analysis
A Survey of Automated Techniques for Formal Software Verification
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Fixpoint-guided abstraction refinements
SAS'07 Proceedings of the 14th international conference on Static Analysis
Astrée: from research to industry
SAS'07 Proceedings of the 14th international conference on Static Analysis
Experimental assessment of Astrée on safety-critical avionics software
SAFECOMP'07 Proceedings of the 26th international conference on Computer Safety, Reliability, and Security
Some Experience on the Software Engineering of Abstract Interpretation Tools
Electronic Notes in Theoretical Computer Science (ENTCS)
Range and Set Abstraction using SAT
Electronic Notes in Theoretical Computer Science (ENTCS)
Quadtrees as an Abstract Domain
Electronic Notes in Theoretical Computer Science (ENTCS)
Precise interprocedural analysis in the presence of pointers to the stack
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Widening with thresholds for programs with complex control graphs
ATVA'11 Proceedings of the 9th international conference on Automated technology for verification and analysis
Design and implementation of sparse global analyses for C-like languages
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Probabilistic abstract interpretation
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
Formal verification by abstract interpretation
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
TreeKs: A Functor to Make Numerical Abstract Domains Scalable
Electronic Notes in Theoretical Computer Science (ENTCS)
Speed and precision in range analysis
SBLP'12 Proceedings of the 16th Brazilian conference on Programming Languages
Sub-polyhedral scheduling using (unit-)two-variable-per-inequality polyhedra
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstract interpretation of microcontroller code: Intervals meet congruences
Science of Computer Programming
Precise range analysis on large industry code
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Abstract acceleration of general linear loops
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Bias-variance tradeoffs in program analysis
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Runtime verification of microcontroller binary code
Science of Computer Programming
Hi-index | 0.00 |
Astrée was the first static analyzer able to prove automatically the total absence of runtime errors of actual industrial programs of hundreds of thousand lines. What makes Astrée such an innovative tool is its scalability, while retaining the required precision, when it is used to analyze a specific class of programs: that of reactive control-command software. In this paper, we discuss the important choice of algorithms and data-structures we made to achieve this goal. However, what really made this task possible was the ability to also take semantic decisions, without compromising soundness, thanks to the abstract interpretation framework. We discuss the way the precision of the semantics was tuned in Astrée in order to scale up, the differences with some more academic approaches and some of the dead-ends we explored. In particular, we show a development process which was not specific to the particular usage Astrée was built for, hoping that it might prove helpful in building other scalable static analyzers.