Results 1 -
3 of
3
Reflection in logic, functional and object-oriented programming: a Short Comparative Study
- In IJCAI '95 Workshop on Reflection and Metalevel Architectures and their Applications in AI
, 1995
"... Reflection is a wide-ranging concept that has been studied independently in many different areas of science in general, and computer science in particular. Even in the sub-area of programming languages, it has been applied to different paradigms, especially the logic, functional and objectoriented o ..."
Abstract
-
Cited by 31 (1 self)
- Add to MetaCart
Reflection is a wide-ranging concept that has been studied independently in many different areas of science in general, and computer science in particular. Even in the sub-area of programming languages, it has been applied to different paradigms, especially the logic, functional and objectoriented ones. Partly because of different past influences, but also because researchers in these communities scarcely talk to each others, concepts have evolved separately, sometimes to the point where it is hard for people in one community to recognize similarities in the work of others, not to speak about cross-fertilization among them. In this paper, we propose a synthesis covering mainly the application of computation reflection to programming languages. We compare the different approaches and try to identify similar concepts hidden behind different names or constructs. We also point out the different emphasis that has been given to different concepts in each of them. We do not claim neither comp...
A Staging Calculus and its Application to the Verification of Translators
, 1993
"... We develop a calculus in which the computation steps required to execute a computer program can be separated into discrete stages. The calculus, denoted 2 , is embedded within the pure untyped -calculus. The main result of the paper is a characterization of sucient conditions for conuence for terms ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We develop a calculus in which the computation steps required to execute a computer program can be separated into discrete stages. The calculus, denoted 2 , is embedded within the pure untyped -calculus. The main result of the paper is a characterization of sucient conditions for conuence for terms in the calculus. The condition can be taken as a correctness criterion for translators that perform reductions in one stage leaving residual redexes over for subsequent computation stages. As an application of the theory, we verify the correctness of a macro expansion algorithm. The expansion algorithm is of some interest in its own right since it solves the problem of desired variable capture using only the familiar capture avoiding substitutions. 1 Introduction The -calculus is widely used as a metalanguage for programming language semantics because most of the complexities of real programming languages can be modeled by relatively simple and well-understood aspects of the calculus. ...
M-LISP: Its Natural Semantics and Equational Logic (Extended Abtract)
, 1991
"... The LISP evaluator is a virtual machine analog of the stored-program computer on which it executes -- it has universal power and dynamically constructed representations of programs can be converted by the eval operator into executable programs. In this paper we study the natural operational semantic ..."
Abstract
- Add to MetaCart
The LISP evaluator is a virtual machine analog of the stored-program computer on which it executes -- it has universal power and dynamically constructed representations of programs can be converted by the eval operator into executable programs. In this paper we study the natural operational semantics and equational logic of a dialect of pure LISP and an extension which includes the eval operator and fexprs (i.e., non-strict functions whose arguments are passed by-representation). We begin by defining a natural operational semantics for the pure subset of M-LISP, a simple, representation-independent hybrid of McCarthy's original M-expression LISP and Scheme. We then establish the connection between the semantics and its equational logic in the usual way and prove that the logic is sound and consistent. With this as our setting we define the axioms and inference ...

