Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming 2011
DOI: 10.1145/2034773.2034808
|View full text |Cite
|
Sign up to set email alerts
|

Typed self-interpretation by pattern matching

Abstract: Self-interpreters can be roughly divided into two sorts: self-recognisers that recover the input program from a canonical representation, and self-enactors that execute the input program. Major progress for statically-typed languages was achieved in 2009 by Rendel, Ostermann, and Hofer who presented the first typed selfrecogniser that allows representations of different terms to have different types. A key feature of their type system is a type:type rule that renders the kind system of their language inconsist… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1

Citation Types

0
1
0

Year Published

2012
2012
2015
2015

Publication Types

Select...
4
2

Relationship

1
5

Authors

Journals

citations
Cited by 12 publications
(1 citation statement)
references
References 28 publications
0
1
0
Order By: Relevance
“…SF-calculus is structure complete, in the sense that it can pattern match over normal forms of terms (those having no redexes) and distinguish between any two different terms in normal form. In particular, for any two such terms t 1 and t 2 , there is a term e such that we have e t 1 → * S and e t 2 → * F. Adding System F types to SF-calculus (and giving names to some other combinators), the resulting calculus can encode and type an interpreter for its own language [12]. Thus it presents a promising theoretical foundation for reasoning about programs that transform other programs, for example by means of partial evaluation.…”
Section: Expressivity Of Sf-calculusmentioning
confidence: 99%
“…SF-calculus is structure complete, in the sense that it can pattern match over normal forms of terms (those having no redexes) and distinguish between any two different terms in normal form. In particular, for any two such terms t 1 and t 2 , there is a term e such that we have e t 1 → * S and e t 2 → * F. Adding System F types to SF-calculus (and giving names to some other combinators), the resulting calculus can encode and type an interpreter for its own language [12]. Thus it presents a promising theoretical foundation for reasoning about programs that transform other programs, for example by means of partial evaluation.…”
Section: Expressivity Of Sf-calculusmentioning
confidence: 99%