Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Proofs and types
Computational reflection in class based object-oriented languages
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
A practical soft type system for scheme
ACM Transactions on Programming Languages and Systems (TOPLAS)
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
The Theory of Fexprs is Trivial
Lisp and Symbolic Computation
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Recursive functions of symbolic expressions and their computation by machine, Part I
Communications of the ACM
Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Types and programming languages
Types and programming languages
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
The Java Programming Language
Computational Reflection in the Calculus of Constructions and its Application to Theorem Proving
TLCA '97 Proceedings of the Third International Conference on Typed Lambda Calculi and Applications
A Syntactic Theory of Dynamic Binding
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Handbook of automated reasoning
Reflection and semantics in LISP
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Multistage programming: its theory and applications
Multistage programming: its theory and applications
Intensional polymorphism in type-erasure semantics
Journal of Functional Programming
Meta-programming through typeful code representation
Journal of Functional Programming
Staged computation with names and necessity
Journal of Functional Programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A polymorphic modal type system for lisp-like multi-staged languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
First-class nonstandard interpretations by opening closures
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Flexible and extensible notations for modeling languages
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Towards self-verification of HOL light
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Mechanized metatheory for the masses: the PoplMark challenge
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
The ∇-calculus. functional programming with higher-order encodings
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Formal verification of a c compiler front-end
FM'06 Proceedings of the 14th international conference on Formal Methods
Modular domain-specific language components in scala
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Towards typing for small-step direct reflection
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
A functional approach to generic programming using adaptive traversals
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
Existing meta-programming languages operate on encodings of programs as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective programming is supported directly, without any encoding. The language features call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional manipulation of arbitrary program terms. The language is scope safe, in the sense that variables can neither be captured nor escape their scopes. The expressiveness of the language is demonstrated by showing how to implement quotation and evaluation operations, as proposed by Wand. The language's utility for meta-programming is further demonstrated through additional representative examples. A prototype implementation is described and evaluated.