2014
DOI: 10.1007/978-3-319-12904-4_5
|View full text |Cite
|
Sign up to set email alerts
|

Language Definitions as Rewrite Theories

Abstract: K is a formal framework for defining the operational semantics of programming languages. It includes software tools for compiling K language definitions to Maude rewrite theories, for executing programs in the defined languages based on the Maude rewriting engine, and for analyzing programs by adapting various Maude analysis tools. A recent extension to the K tool suite is an automatic transformation of language definitions that enables the symbolic execution of programs, i.e., the execution of programs with s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
6
0

Year Published

2015
2015
2016
2016

Publication Types

Select...
3
2

Relationship

3
2

Authors

Journals

citations
Cited by 5 publications
(6 citation statements)
references
References 11 publications
(21 reference statements)
0
6
0
Order By: Relevance
“…In [22] it is shown how rl specifications can be encoded as rwl theories. Here, we take an alternative approach, which consists in using rl as a property language for rwl.…”
Section: Discussionmentioning
confidence: 99%
“…In [22] it is shown how rl specifications can be encoded as rwl theories. Here, we take an alternative approach, which consists in using rl as a property language for rwl.…”
Section: Discussionmentioning
confidence: 99%
“…For instance, checking the program int x; x = read(); x = x + 1; against ♦ Ltl odd (x) and the symbolic input a returns a counterexample because the prover cannot deduce that one of a or a + Int 1 satises odd (x), which holds whenever the value of the program variable x given as argument is odd. Another issue with the LTL model-checking is given by the fact that the K tool usually implements only an approximation of the language denition, see [4] for a detailed discussion on this aspect. This approximation is propagated to the symbolic version and therefore the results of an LTL model-checking must be interpreted with respect this approximation.…”
Section: Imp With I/o Operationsmentioning
confidence: 99%
“…In this case it behaves like the concrete semantics. The theoretical relationships between K language denitions int n, s; n = read(); s = 0; while (n > 0) { s = s + n; n = n -1; } print("Sum = ", s, "\n"); [4].…”
Section: Symbolic Execution Within the K Frameworkmentioning
confidence: 99%
See 1 more Smart Citation
“…These formulas, called patterns, specify those concrete configurations that match the pattern algebraic structure and satisfy its constraints. Since patterns allow logical variables and constraints over them, by using patterns, K rewriting becomes symbolic execution with the semantic rules of the language [3]. The SMT solver Z3 [19] is used in K for checking the satisfiability of the path constraints.…”
Section: Introductionmentioning
confidence: 99%