KRust: A formal executable semantics of rust

  • Feng Wang
  • , Fu Song
  • , Min Zhang
  • , Xiaoran Zhu
  • , Jun Zhang

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

27 Scopus citations

Abstract

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.

Original languageEnglish
Title of host publicationProceedings - 2018 12th International Symposium on Theoretical Aspects of Software Engineering, TASE 2018
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages44-51
Number of pages8
ISBN (Electronic)9781538673058
DOIs
StatePublished - 4 Dec 2018
Event12th International Symposium on Theoretical Aspects of Software Engineering, TASE 2018 - Guangzhou, China
Duration: 29 Aug 201831 Aug 2018

Publication series

NameProceedings - 2018 12th International Symposium on Theoretical Aspects of Software Engineering, TASE 2018
Volume2018-January

Conference

Conference12th International Symposium on Theoretical Aspects of Software Engineering, TASE 2018
Country/TerritoryChina
CityGuangzhou
Period29/08/1831/08/18

Keywords

  • Formal operational semantics
  • K framework
  • Rust programming language

Fingerprint

Dive into the research topics of 'KRust: A formal executable semantics of rust'. Together they form a unique fingerprint.

Cite this