TY - GEN
T1 - KRust
T2 - 12th International Symposium on Theoretical Aspects of Software Engineering, TASE 2018
AU - Wang, Feng
AU - Song, Fu
AU - Zhang, Min
AU - Zhu, Xiaoran
AU - Zhang, Jun
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/12/4
Y1 - 2018/12/4
N2 - Rust is a new and promising high-level system programming language. It provides both memory safety and thread safety through its novel mechanisms such as ownership, moves and borrows. Ownership system ensures that at any point there is only one owner of any given resource. The ownership of a resource can be moved or borrowed according to the lifetimes. The ownership system establishes a clear lifetime for each value and hence Rust does not necessarily need garbage collection. These novel features bring Rust high performance, fine-grained low-level control over memory without garbage collection, which differentiate Rust from other existing prevalent languages. For formal analysis of Rust programs and helping programmers learn its new mechanisms and features, a formal semantics of Rust is desired and useful as a fundament for developing related tools. In this paper, we present a formal executable operational semantics of a subset of Rust, called KRust. The semantics is defined in K, a rewriting-based executable semantic framework for programming languages. The executable semantics yields automatically a formal interpreter and verification tools for Rust programs.
AB - Rust is a new and promising high-level system programming language. It provides both memory safety and thread safety through its novel mechanisms such as ownership, moves and borrows. Ownership system ensures that at any point there is only one owner of any given resource. The ownership of a resource can be moved or borrowed according to the lifetimes. The ownership system establishes a clear lifetime for each value and hence Rust does not necessarily need garbage collection. These novel features bring Rust high performance, fine-grained low-level control over memory without garbage collection, which differentiate Rust from other existing prevalent languages. For formal analysis of Rust programs and helping programmers learn its new mechanisms and features, a formal semantics of Rust is desired and useful as a fundament for developing related tools. In this paper, we present a formal executable operational semantics of a subset of Rust, called KRust. The semantics is defined in K, a rewriting-based executable semantic framework for programming languages. The executable semantics yields automatically a formal interpreter and verification tools for Rust programs.
KW - Formal operational semantics
KW - K framework
KW - Rust programming language
UR - https://www.scopus.com/pages/publications/85062336640
U2 - 10.1109/TASE.2018.00014
DO - 10.1109/TASE.2018.00014
M3 - 会议稿件
AN - SCOPUS:85062336640
T3 - Proceedings - 2018 12th International Symposium on Theoretical Aspects of Software Engineering, TASE 2018
SP - 44
EP - 51
BT - Proceedings - 2018 12th International Symposium on Theoretical Aspects of Software Engineering, TASE 2018
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 29 August 2018 through 31 August 2018
ER -