Relational compilation for performance-critical applications: extensible proof-producing translation of functional models into low-level code
Relational compilation for performance-critical applications: extensible proof-producing translation of functional models into low-level code
复制标题
性能关键型应用程序的关系编译:将功能模型转换为低级代码的可扩展证明生成
DOI:
10.1145/3519939.3523706
复制
发表时间:
2022
期刊:
影响因子:
--
通讯作者:
Chlipala, Adam
中科院分区:
文献类型:
--
作者:
Pit-Claudel, Clément;Philipoom, Jade;Jamner, Dustin;Erbsen, Andres;Chlipala, Adam
There are typically two ways to compile and run a purely functional program verified using an interactive theorem prover (ITP): automatically extracting it to a similar language (typically an unverified process, like Coq to OCaml) or manually proving it equivalent to a lower-level reimplementation (like a C program). Traditionally, only the latter produced both excellent performance and end-to-end proofs.This paper shows how to recast program extraction as a proof-search problem to automatically derive correct-by-construction, high-performance code from purely functional programs. We call this idea relational compilation — it extends recent developments with novel solutions to loop-invariant inference and genericity in kinds of side effects.Crucially, relational compilers are incomplete, and unlike traditional compilers, they generate good code not because of a fixed set of clever built-in optimizations but because they allow experts to plug in domain--specific extensions that give them complete control over the compiler's output.We demonstrate the benefits of this approach with Rupicola, a new compiler-construction toolkit designed to extract fast, verified, idiomatic low-level code from annotated functional models. Using case studies and performance benchmarks, we show that it is extensible with minimal effort and that it achieves performance on par with that of handwritten C programs.
登录
查看更多内容
DOI:
10.1145/3453483.3454032
发表时间:
2020
期刊:
Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation
影响因子:
--
作者:
Alex Reinking;Ningning Xie;L. de Moura;Daan Leijen
通讯作者:
Daan Leijen
DOI:
10.1145/1040305.1040335
发表时间:
2020
影响因子:
11.1
作者:
L. Parreaux
通讯作者:
L. Parreaux
影响因子:
--
作者:
Li, John M.;Appel, Andrew W.
通讯作者:
Appel, Andrew W.
影响因子:
--
作者:
Watanabe, Yasunari;Gopinathan, Kiran;Pîrlea, George;Polikarpova, Nadia;Sergey, Ilya
通讯作者:
Sergey, Ilya
DOI:
10.1007/3-540-61464-8_50
发表时间:
1996
期刊:
J. Symb. Comput.
影响因子:
--
作者:
M. Vittek
通讯作者:
M. Vittek