Abstract | ||
---|---|---|
The ''right'' way of writing and structuring compilers is well-known. The situation is a bit less clear for static analysis tools. It seems to us that a static analysis tool is ideally decomposed into three building blocks: (1) a front-end, which parses programs, generates semantic equations, and supervises the analysis process; (2) a fixpoint equation solver, which takes equations and solves them; (3) and an abstract domain, on which equations are interpreted. The expected advantages of such a modular structure is the ability of sharing development efforts between analyzers for different languages, using common solvers and abstract domains. However putting in practice such ideal concepts is not so easy, and some static analyzers merge for instance the blocks (1) and (2). We show how we instantiated these principles with three different static analyzers (addressing resp. imperative sequential programs, imperative concurrent programs, and synchronous dataflow programs), a generic fixpoint solver (Fixpoint), and two different abstract domains. We discussed our experience on the advantages and the limits of this approach compared to related work. |
Year | DOI | Venue |
---|---|---|
2010 | 10.1016/j.entcs.2010.09.016 | Electr. Notes Theor. Comput. Sci. |
Keywords | Field | DocType |
fixpoint equation solver,static analyzer,static analysis tool,static analysis,generic fixpoint solver,abstract domain,different abstract domain,imperative concurrent program,abstract interpretation tools,different static analyzer,abstract interpretation,software engineering,different language,analysis process,static analysis tools,front end | Static program analysis,Programming language,Computer science,Abstract interpretation,Static analysis,Compiler,Theoretical computer science,Dataflow,Fixed point,Solver,Structuring | Journal |
Volume | Issue | ISSN |
267 | 2 | Electronic Notes in Theoretical Computer Science |
Citations | PageRank | References |
5 | 0.42 | 23 |
Authors | ||
1 |
Name | Order | Citations | PageRank |
---|---|---|---|
Bertrand Jeannet | 1 | 641 | 29.06 |