Constructing self-referential systems, such as Brian Smith's 3-Lisp language, is actually more straightforward than you think. Anyone can build an infinite tower of processors (where each processor implements the processor at the next level below) by employing some common sense and one simple trick. In particular, it is not necessary to re-design quotation, take a stand on the relative merits of evaluation vs. normalization, or treat continuations as meta-level objects. This paper presents a simple programming language interpreter that illustrates how this can be done. By keeping its expression evaluator entirely separate from the mechanisms that implement its infinite tower, this interpreter avoids many troublesome aspects...
the motivation behind the work in interactive programming environments is to increase both our produ...
Abstract. A partial evaluator, given a program and a known “static” part of its input data, outputs ...
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of...
Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as...
Procedurally reflective programming languages enable user programs to semantically extend the langua...
ABSTRACT. In this paper we would like to present a very short self-interpreter, based on a simplisti...
AbstractThis paper is concerned with the theoretical issues surrounding the specification of self-ap...
Introduction Self-reference occurs frequently in theoretical investigations of formal systems. In Pr...
A frequent programming pattern for small tasks, especially expressions, is to repeatedly evaluate th...
Abstract —Those programming languages that contain self-interpreters have the added power of reflect...
A supercompiler is a program which can perform a deep transformation of programs using a principle w...
Read-eval-print-loops (REPLs) allow programmers to test out snippets of code, explore APIs, or even ...
We examine the effects of various language design decisions on theprogramming styles available to ...
Partial evaluation, or program specialization, is used when a variable is known to often hold one pa...
Abstract. The Self system attempts to integrate intellectual and non-intellectual aspects of program...
the motivation behind the work in interactive programming environments is to increase both our produ...
Abstract. A partial evaluator, given a program and a known “static” part of its input data, outputs ...
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of...
Given a tower of interpreters, i.e., a sequence of multiple interpreters interpreting one another as...
Procedurally reflective programming languages enable user programs to semantically extend the langua...
ABSTRACT. In this paper we would like to present a very short self-interpreter, based on a simplisti...
AbstractThis paper is concerned with the theoretical issues surrounding the specification of self-ap...
Introduction Self-reference occurs frequently in theoretical investigations of formal systems. In Pr...
A frequent programming pattern for small tasks, especially expressions, is to repeatedly evaluate th...
Abstract —Those programming languages that contain self-interpreters have the added power of reflect...
A supercompiler is a program which can perform a deep transformation of programs using a principle w...
Read-eval-print-loops (REPLs) allow programmers to test out snippets of code, explore APIs, or even ...
We examine the effects of various language design decisions on theprogramming styles available to ...
Partial evaluation, or program specialization, is used when a variable is known to often hold one pa...
Abstract. The Self system attempts to integrate intellectual and non-intellectual aspects of program...
the motivation behind the work in interactive programming environments is to increase both our produ...
Abstract. A partial evaluator, given a program and a known “static” part of its input data, outputs ...
Abstract. SELF is an object-oriented language for exploratory programming based on a small number of...