Affiliation:
1. IIT Kanpur, India
2. University of Wisconsin-Madison, USA
Abstract
This paper addresses the problem of creating abstract transformers automatically. The method we present automates the construction of static analyzers in a fashion similar to the way
yacc
automates the construction of parsers. Our method treats the problem as a program-synthesis problem. The user provides specifications of (i) the concrete semantics of a given operation
op
, (ii) the abstract domain
A
to be used by the analyzer, and (iii) the semantics of a domain-specific language
L
in which the abstract transformer is to be expressed. As output, our method creates an abstract transformer for
op
in abstract domain
A
, expressed in
L
(an “
L
-transformer for
op
over
A
”). Moreover, the abstract transformer obtained is a most-precise
L
-transformer for
op
over
A
; that is, there is no other
L
-transformer for
op
over
A
that is strictly more precise.
We implemented our method in a tool called AMURTH. We used AMURTH to create sets of replacement abstract transformers for those used in two existing analyzers, and obtained essentially identical performance. However, when we compared the existing transformers with the transformers obtained using AMURTH, we discovered that four of the existing transformers were unsound, which demonstrates the risk of using manually created transformers.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Synthesizing Specifications;Proceedings of the ACM on Programming Languages;2023-10-16
2. An Integrated Program Analysis Framework for Graduate Courses in Programming Languages and Software Engineering;2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE);2023-09-11
3. A Theorem Proving Approach to Programming Language Semantics;2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET);2023-05
4. Program Synthesis for Artifacts beyond Programs;Companion Proceedings of the 2022 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity;2022-11-29