|
ABSTRACT
Self-representation -- the ability to represent programs in their own language -- has important applications in reflective languages and many other domains of programming language design. Although approaches to designing typed program representations for sublanguages of some base language have become quite popular recently, the question whether a fully metacircular typed self-representation is possible is still open. This paper makes a big step towards this aim by defining the Fω* calculus, an extension of the higher-order polymorphic lambda calculus Fω that allows typed self-representations. While the usability of these representations for metaprogramming is still limited, we believe that our approach makes a significant step towards a new generation of reflective languages that are both safe and efficient.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
 |
2
|
Brian Aydemir , Arthur Charguéraud , Benjamin C. Pierce , Randy Pollack , Stephanie Weirich, Engineering formal metatheory, Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 07-12, 2008, San Francisco, California, USA
|
| |
3
|
|
| |
4
|
S. Berardi. Towards a mathematical analysis of the Coquand-Huet calculus of constructions and the other systems in Barendregt's cube. Technical report, Department of Computer Science, Carnegie-Mellon University and Dipartimento Matematica, Universita di Torino, 1988.
|
| |
5
|
|
| |
6
|
C. Böhm and A. Berarducci. Automatic synthesis of typed lambda-programs on term algebras. Theor. Comput. Sci., 39:135--154, 1985.
|
| |
7
|
J. Carette, O. Kiselyov, and C. Shan. Finally tagless, partially evaluated. In APLAS'07, extended version to appear in Journal of Functional Programming, pages 222--238. Springer LNCS 4807, 2007.
|
| |
8
|
T. Coquand. An analysis of Girard's paradox. In Symposium on Logic in Computer Science, pages 227--236. IEEE Computer Society Press, 1986.
|
 |
9
|
|
| |
10
|
N.G. de Bruijn. Lambda calculus notation with nameless dummies. a tool for automatic formula manipulation with application to the church-rosser theorem. Indagationes Mathematicae, 34:381--392, 1972.
|
 |
11
|
Leonidas Fegaras , Tim Sheard, Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space), Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.284-294, January 21-24, 1996, St. Petersburg Beach, Florida, United States
[doi> 10.1145/237721.237792]
|
| |
12
|
J.Y. Girard. Interprétation fonctionelle et élimination des coupures de l'arithmétique d'ordre supérieur. Thése de doctorat detat, Université de Paris VII, 1972.
|
| |
13
|
|
 |
14
|
|
| |
15
|
|
 |
16
|
Christian Hofer , Klaus Ostermann , Tillmann Rendel , Adriaan Moors, Polymorphic embedding of dsls, Proceedings of the 7th international conference on Generative programming and component engineering, October 19-23, 2008, Nashville, TN, USA
[doi> 10.1145/1449913.1449935]
|
| |
17
|
K. Läufer and M. Odersky. Self-interpretation and reflection in a statically typed language. In Proc. OOPSLA Workshop on Reflection and Metalevel Architectures. ACM, Oct. 1993.
|
 |
18
|
|
 |
19
|
|
 |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
|
 |
24
|
|
 |
25
|
|
 |
26
|
|
| |
27
|
|
| |
28
|
|
| |
29
|
J. Terlouw. Een nadere bewijstheoretische analyse van GSTT's. Technical report, Department of Computer Science, Catholic University, Nijmegen, The Netherlands, 1989.
|
| |
30
|
|
|