MAF: A Framework for Modular Static Analysis of Higher-Order Languages
Autor: | Coen De Roover, Jens Van der Plas, Noah Van Es, Quentin Stiévenart |
---|---|
Přispěvatelé: | Software Languages Lab, Informatics and Applied Informatics, Faculty of Sciences and Bioengineering Sciences |
Rok vydání: | 2020 |
Předmět: |
Scheme (programming language)
Computer science business.industry Scala Distributed computing media_common.quotation_subject 020207 software engineering Static program analysis 02 engineering and technology Modular design Static analysis Interdependence Component (UML) Scalability 0202 electrical engineering electronic engineering information engineering 020201 artificial intelligence & image processing business computer media_common computer.programming_language |
Zdroj: | SCAM |
DOI: | 10.1109/scam51674.2020.00009 |
Popis: | A modular static analysis decomposes a program's analysis into analyses of its parts, or components. An inter-component analysis instructs an intra-component analysis to analyse each component independently of the others. Additional analyses are scheduled for newly discovered components, and for dependent components that need to account for newly discovered component information. Modular static analyses are scalable, can be tuned to a high precision, and support the analysis of programs that are highly dynamic, featuring e.g., higher-order functions or dynamically allocated processes. In this paper, we present the engineering aspects of MAF, a static analysis framework for implementing modular analyses for higher-order languages. For any such modular analysis, the framework provides a reusable inter-component analysis and it suffices to implement its intra-component analysis. The intra-component analysis can be composed from several interdependent and reusable Scala traits. This design facilitates changing the analysed language, as well as the analysis precision with minimal effort. We illustrate the use of MAF through its instantiation for several different analyses of Scheme programs. |
Databáze: | OpenAIRE |
Externí odkaz: |