KRust: A Formal Executable Semantics of Rust

作者: Feng Wang , Fu Song , Min Zhang , Xiaoran Zhu , Jun Zhang

DOI: 10.1109/TASE.2018.00014

关键词:

摘要: Rust is a new and promising high-level system programming language. It provides both memory safety thread through its novel mechanisms such as ownership, moves borrows. Ownership ensures that at any point there only one owner of given resource. The ownership resource can be moved or borrowed according to the lifetimes. establishes clear lifetime for each value hence does not necessarily need garbage collection. These features bring high performance, fine-grained low-level control over without collection, which differentiate from other existing prevalent languages. For formal analysis programs helping programmers learn features, semantics desired useful fundament developing related tools. In this paper, we present executable operational subset Rust, called KRust. defined in K, rewriting-based semantic framework yields automatically interpreter verification tools programs. KRust has been validated by testing with 182 tests, including 157 tests official

参考文章(18)
Daniele Filaretti, Sergio Maffeis, An Executable Formal Semantics of PHP ECOOP 2014 – Object-Oriented Programming. pp. 567- 592 ,(2014) , 10.1007/978-3-662-44202-9_23
Grigore Rosu, Mark Hills, Patrick O'Neil Meredith, A K Definition of Scheme ,(2007)
Chris Hathhorn, Chucky Ellison, Grigore Roşu, Defining the undefinedness of C programming language design and implementation. ,vol. 50, pp. 336- 345 ,(2015) , 10.1145/2737924.2737979
Nicholas D. Matsakis, Felix S. Klock, The rust language Proceedings of the 2014 ACM SIGAda annual conference on High integrity language technology - HILT '14. ,vol. 34, pp. 103- 104 ,(2014) , 10.1145/2663171.2663188
Grigore Roșu, Traian Florin Șerbănută, An overview of the K semantic framework The Journal of Logic and Algebraic Programming. ,vol. 79, pp. 397- 434 ,(2010) , 10.1016/J.JLAP.2010.03.012
Denis Bogdanas, Grigore Roşu, K-Java: A Complete Semantics of Java symposium on principles of programming languages. ,vol. 50, pp. 445- 456 ,(2015) , 10.1145/2676726.2676982
Daejun Park, Andrei Stefănescu, Grigore Roşu, KJS: a complete formal semantics of JavaScript programming language design and implementation. ,vol. 50, pp. 346- 356 ,(2015) , 10.1145/2737924.2737991
Patrick Meredith, Michael Katelman, Jose Meseguer, Grigore Rosu, A formal executable semantics of Verilog formal methods. pp. 179- 188 ,(2010) , 10.1109/MEMCOD.2010.5558634
Chucky Ellison, Grigore Rosu, An executable formal semantics of C with applications symposium on principles of programming languages. ,vol. 47, pp. 533- 544 ,(2012) , 10.1145/2103621.2103719
John Toman, Stuart Pernsteiner, Emina Torlak, Crust: A Bounded Verifier for Rust (N) automated software engineering. pp. 75- 80 ,(2015) , 10.1109/ASE.2015.77