Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages 2017
DOI: 10.1145/3009837.3009853
|View full text |Cite
|
Sign up to set email alerts
|

Typed self-evaluation via intensional type functions

Abstract: Many popular languages have a self-interpreter, that is, an interpreter for the language written in itself. So far, work on polymorphically-typed self-interpreters has concentrated on self-recognizers that merely recover a program from its representation. A larger and until now unsolved challenge is to implement a polymorphicallytyped self-evaluator that evaluates the represented program and produces a representation of the result. We present F µi ω , the first λcalculus that supports a polymorphically-typed s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
5
0

Year Published

2017
2017
2019
2019

Publication Types

Select...
3
1
1

Relationship

1
4

Authors

Journals

citations
Cited by 8 publications
(5 citation statements)
references
References 31 publications
0
5
0
Order By: Relevance
“…Most closely related to this work is our previous work [Brown and Palsberg 2017] that defined typed self-representations and three typed self-evaluators. Each of those self-evaluators implements a particular evaluation strategy for the calculus itself.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Most closely related to this work is our previous work [Brown and Palsberg 2017] that defined typed self-representations and three typed self-evaluators. Each of those self-evaluators implements a particular evaluation strategy for the calculus itself.…”
Section: Related Workmentioning
confidence: 99%
“…It is type-safe and type checking is decidable. For more details, we refer the interested reader to Brown and Palsberg [Brown and Palsberg 2017].…”
Section: Typed Self-applicable Partial Evaluation For Fmentioning
confidence: 99%
“…It is well-known that we cannot encode the Y combinator in the polymorphic lambda calculus, but that we can encode it if we have recursive types [14,Section 20.3]. 6 We need the following types:…”
Section: Recursive Term Bindingsmentioning
confidence: 99%
“…There are other implementations of System F ω with recursive types. Brown and Palsberg [6] use isorecursive types, and includes an indexed fixpoint operator as well as a typecase operator. However, the index for the fixpoint must be of kind * , whereas ours may be of any kind.…”
Section: Encoding Recursive Datatypesmentioning
confidence: 99%
“…Nevertheless these representations were only partially typed. The finally tagless approach to embedded representations [29] kicked off a series of papers on typed selfrepresentation [4,5,18,19,20,21,81,107] which eventually succeeded at providing elegant solutions.…”
Section: Reasoning In the Lambda Calculus About Syntaxmentioning
confidence: 99%