Author_Institution :
Dept. of Comput. Sci., Univ. of Illinois, Urbana, IL, USA
Abstract :
K is a rewrite-based executable semantic framework for defining languages. The K framework is designed to allow implementing a variety of generic tools that can be used with any language defined in K, such as parsers, interpreters, symbolic execution engines, semantic debuggers, test-case generators, state-space explorers, model checkers, and even deductive program verifiers. The latter are based on matching logic for expressing static properties, and on reachability logic for expressing dynamic properties. Several large languages have been already defined or are being defined in K, including C, Java, Python, Javascript, and LLVM.
Keywords :
formal logic; program verification; reachability analysis; rewriting systems; specification languages; K framework; dynamic properties; language specification; logic matching; program verification; reachability logic; rewrite-based executable semantic framework; static properties; Computational modeling; Context; Educational institutions; Java; Semantics; Syntactics; semantics; verification; formal methods; logic;