2014
DOI: 10.4204/eptcs.152.13
|View full text |Cite
|
Sign up to set email alerts
|

Development of a Translator from LLVM to ACL2

Abstract: In our current work a library of formally verified software components is to be created, and assembled, using the Low-Level Virtual Machine (LLVM) intermediate form, into subsystems whose top-level assurance relies on the assurance of the individual components. We have thus undertaken a project to build a translator from LLVM to the applicative subset of Common Lisp accepted by the ACL2 theorem prover. Our translator produces executable ACL2 formal models, allowing us to both prove theorems about the translate… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2015
2015
2015
2015

Publication Types

Select...
2
1

Relationship

1
2

Authors

Journals

citations
Cited by 3 publications
(3 citation statements)
references
References 9 publications
0
3
0
Order By: Relevance
“…Despite type hypotheses, macros like defstructure, defaggregate, and defdata are certainly very useful. Defstructure has long been used in ACL2 developments, including recent work such as the modeling by Hardin, et al [13] of the LLVM compiler project's intermediate form in ACL2, and the formalization by van Gastel and Schmaltz [9] of the xMAS language for communication networks on multi-core processors and systems-on-chip. For many years, we used defaggregate and other std/util macros at Centaur as the basis for our VL library, microcode model [7], and other internal applications.…”
Section: Data Struture Librariesmentioning
confidence: 99%
“…Despite type hypotheses, macros like defstructure, defaggregate, and defdata are certainly very useful. Defstructure has long been used in ACL2 developments, including recent work such as the modeling by Hardin, et al [13] of the LLVM compiler project's intermediate form in ACL2, and the formalization by van Gastel and Schmaltz [9] of the xMAS language for communication networks on multi-core processors and systems-on-chip. For many years, we used defaggregate and other std/util macros at Centaur as the basis for our VL library, microcode model [7], and other internal applications.…”
Section: Data Struture Librariesmentioning
confidence: 99%
“…LLVM code for this function is produced by invoking clang as follows: clang -O1 -S -emit-llvm occurrences.c. The generated LLVM code for clang version 6.1.0 (which supports LLVM 3.6.0) is excerpted in Figure 2; this is essentially the same code as reported in [9].…”
Section: An Examplementioning
confidence: 99%
“…In previous work [9] [11], we built a translator from Low-Level Virtual Machine (LLVM) intermediate form [16] to the applicative subset of Common Lisp [15] accepted by the ACL2 theorem prover [12], and performed verification on the translated form using ACL2's automated reasoning capabilities.…”
Section: Introductionmentioning
confidence: 99%