|
ABSTRACT
This paper presents the definition of a language with reflection primitives. The language is a homogeneous multi-stage language that provides the capacity of code analysis by the inclusion of a pattern matching mechanism that permits inspection of the structure of quoted expressions and their destruction into component subparts. Quoted expressions include an explicit annotation of their context which is used for dynamic inference of type, where a dynamic typing discipline based on Hinze and Cheney's approach is used for typing quoted expressions.This paper follows the approach of Sheard and Pasalic about the use of the meta-language Ωmega as a tool for language design. In this sense, it is shown how to represent the syntax, the static as well as the dynamic semantics of the proposed language in terms of Ωmega constructs.
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
|
|
| |
3
|
Zine-El-Abidine Benaissa, Daniel Briaud, Pierre Lescanne, and Jocelyne Rouyer-Degli. λν, a calculus of explicit substitutions which preserves strong normalisation. Journal of Functional Programming, 6(5):699--722, 1996.
|
| |
4
|
Cristiano Calcagno, Eugenio Moggi, and Walid Taha. ML-like inference for classifiers. In David A. Schmidt, editor, Programming Languages and Systems, 13th European Symposium on Programming, ESOP 2004, volume 2986 of Lecture Notes in Computer Science, pages 79--93. Springer, 2004.
|
 |
5
|
|
| |
6
|
N. G. de Bruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation. Indagationes Mathematicae, 34:381--392, 1972.
|
 |
7
|
|
| |
8
|
Jim Grundy, Tom Melham, and John O'Leary. A reflective functional language for hardware design and theorem proving. Technical Report PRG-RR-03-16, Programming Research Group, Oxford University Computing Laboratory, October 2003.
|
 |
9
|
|
| |
10
|
|
 |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
Emir Pasalic and Nathan Linger. Meta-programming with typed object-language representations. In Generative Programming and Component Engineering: Third International Conference, GPCE 2004, pages 136--167. Springer, 2004.
|
| |
16
|
T. Sheard, Z. Benaissa, and M. Martel. Introduction to Multistage Programming Using MetaML. Pacific Software Research Center, Oregon Graduate Institute, 2 edition, 2000.
|
| |
17
|
|
| |
18
|
Tim Sheard. Playing with type systems. Presented at GPCE 05 MetaOCaml Workshop, 2005.
|
 |
19
|
|
 |
20
|
|
| |
21
|
Tim Sheard and Emir Pasalic. Meta-programming with built-in type equality. In Workshop on Logical Frameworks and Meta-Languages (LFM'04), pages 106--124, jul 2004.
|
 |
22
|
Mark Shields , Tim Sheard , Simon Peyton Jones, Dynamic typing as staged type inference, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.289-302, January 19-21, 1998, San Diego, California, United States
[doi> 10.1145/268946.268970]
|
| |
23
|
|
 |
24
|
|
| |
25
|
Walid Taha. A gentle introduction to multi-stage programming. In Domain-Specific Program Generation, pages 30--50, 2003.
|
 |
26
|
|
| |
27
|
|
|