2020
DOI: 10.4204/eptcs.320.4
|View full text |Cite
|
Sign up to set email alerts
|

From Big-Step to Small-Step Semantics and Back with Interpreter Specialisation

Abstract: We investigate representations of imperative programs as constrained Horn clauses. Starting from operational semantics transition rules, we proceed by writing interpreters as constrained Horn clause programs directly encoding the rules. We then specialise an interpreter with respect to a given source program to achieve a compilation of the source language to Horn clauses (an instance of the first Futamura projection). The process is described in detail for an interpreter for a subset of C, directly encoding th… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
11
0

Year Published

2020
2020
2023
2023

Publication Types

Select...
4
2

Relationship

2
4

Authors

Journals

citations
Cited by 10 publications
(11 citation statements)
references
References 34 publications
0
11
0
Order By: Relevance
“…As another limitation, our approach takes a multipath loop and turns it into nested single-path loops. The result of such a transformation using regular expressions is linear in the number of paths, since our approach produces one path predicate for each distinct subexpression of the regular path expression [12], and the number of distinct subexpressions in the transformed expressions is linear in the number of paths. However, transforming a given program into a multi-path loop expression of form (e 1 + .…”
Section: Discussion and Future Workmentioning
confidence: 99%
See 3 more Smart Citations
“…As another limitation, our approach takes a multipath loop and turns it into nested single-path loops. The result of such a transformation using regular expressions is linear in the number of paths, since our approach produces one path predicate for each distinct subexpression of the regular path expression [12], and the number of distinct subexpressions in the transformed expressions is linear in the number of paths. However, transforming a given program into a multi-path loop expression of form (e 1 + .…”
Section: Discussion and Future Workmentioning
confidence: 99%
“…A well known algorithm by Tarjan [33] computes a regular path expression describing all paths in the CFG from a designated entry node to an exit node. We previously developed an interpreter that is guided by a regular path expression [12], and partially evaluated it with respect to a set of linear CHCs P. Here, we outline the idea behind the interpreter, which is that given a regular expression e, each subexpression of e defines a set of subpaths, which are composed to give the overall paths. These path predicates are defined by non-linear CHCs even though the CFG is defined from a set of linear CHCs.…”
Section: Regular Path Clausesmentioning
confidence: 99%
See 2 more Smart Citations
“…Derivation of small-step CHCs from big-step CHCs, and vice versa, can also be defined Gallagher et al (2020). Big-step and small-step styles can be mixed; for example, a procedure call in the small-step style can be defined as a single step that completely executes the procedure body, such as is done in De Angelis et al (2017b).…”
Section: E De Angelis Et Almentioning
confidence: 99%