Results 1 -
8 of
8
Quasiquotation in Lisp
- O. Danvy, Ed., University of Aarhus, Dept. of Computer Science
, 1999
"... Quasiquotation is the technology commonly used in Lisp to write program-generating programs. In this paper I will review the history and development of this technology, and explain why it works so well in practice. ..."
Abstract
-
Cited by 36 (0 self)
- Add to MetaCart
Quasiquotation is the technology commonly used in Lisp to write program-generating programs. In this paper I will review the history and development of this technology, and explain why it works so well in practice.
Data-Purpose Algebra: Modeling Data Usage Policies
"... Data is often encumbered by restrictions on the ways in which it may be used. These restrictions on usage may be determined by statute, by contract, by custom, or by common decency, and they are used to control collection of data, diffusion of data, and the inferences that can be made over the data. ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Data is often encumbered by restrictions on the ways in which it may be used. These restrictions on usage may be determined by statute, by contract, by custom, or by common decency, and they are used to control collection of data, diffusion of data, and the inferences that can be made over the data. In this paper, we present a data-purpose algebra that can be used to model these kinds of restrictions in various different domains. We demonstrate the utility of our approach by modeling part of the Privacy Act (5 USC §552a) 1, which states that data collected about US citizens can be used only for the purposes for which it was collected. We show (i) how this part of the Privacy act can be represented as a set of restrictions on data usage, (ii) how the authorized purposes of data flowing through different government agencies can be calculated, and (iii) how these purposes can be used to determine whether the Privacy Act is being enforced appropriately. 1.
Performance Measurement Of Interpreted, Just-In-Time Compiled, Dynamically Compiled Executions
, 1999
"... ions from User-Level Libraries . . . . . . . . . . . . . . . . . . . . . . 13 2.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Describing Performance Data that Represent VM-AP Interactions . . . . . . . . . . ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
ions from User-Level Libraries . . . . . . . . . . . . . . . . . . . . . . 13 2.6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3 Describing Performance Data that Represent VM-AP Interactions . . . . . . . . . . . . . .15 3.1 Representing an Interpreted Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.1 Representing a Program Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.2 Representing the VM and AP Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.3 Representing Interacting Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Representing Constrained Parts of Program Executions . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.1 Active Resources and Constraint Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.2 Con...
Towards Compatible and Interderivable Semantic Specifications for the Scheme Programming Language, Part I: Denotational Semantics, Natural Semantics, and Abstract Machines
, 2008
"... We derive two big-step abstract machines, a natural semantics, and the valuation function of a denotational semantics based on the small-step abstract machine for Core Scheme presented by Clinger at PLDI’98. Starting from a functional implementation of this small-step abstract machine, (1) we fuse i ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
We derive two big-step abstract machines, a natural semantics, and the valuation function of a denotational semantics based on the small-step abstract machine for Core Scheme presented by Clinger at PLDI’98. Starting from a functional implementation of this small-step abstract machine, (1) we fuse its transition function with its driver loop, obtaining the functional implementation of a big-step abstract machine; (2) we adjust this big-step abstract machine so that it is in defunctionalized form, obtaining the functional implementation of a second big-step abstract machine; (3) we refunctionalize this adjusted abstract machine, obtaining the functional implementation of a natural semantics in continuation style; and (4) we closure-unconvert this natural semantics, obtaining a compositional continuation-passing evaluation function which we identify as the functional implementation of a denotational semantics in continuation style. We then compare this valuation function with that of Clinger’s original denotational semantics of Scheme.
Reflexive Interpreters
, 1978
"... The goal of achieving powerful problem solving capabilities leads to the "advice taker" form of program and the associated problem of control. This proposal outlines an approach to this problem based on the construction of problem solvers with advanced self-knowledge and introspection capabilities. ..."
Abstract
- Add to MetaCart
The goal of achieving powerful problem solving capabilities leads to the "advice taker" form of program and the associated problem of control. This proposal outlines an approach to this problem based on the construction of problem solvers with advanced self-knowledge and introspection capabilities. 1 The Problem of Control Self-reverence, self-knowledge, self-control, These three alone lead life to sovereign power. Alfred, Lord Tennyson, OEnone Know prudent cautious self-control is wisdom's root. Robert Burns, A Bard's Epitath The woman that deliberates is lost. Joseph Addison, Cato A major goal of Artificial Intelligence is to construct an "advice taker", 1 a program which can be told new knowledge and advised about how that knowledge may be useful. Many of the approaches towards this goal have proposed constructing additive formalisms for transmitting knowledge to the problem solver. 2 In spite of considerable work along these lines, formalisms for advising problem solvers ab...
Quasiquotation in Lisp
"... Abstract Quasiquotation is the technology commonly used in Lisp to write program-generating programs. In this paper I will review the history and development of this technology, and explain why it works so well in practice. 1 Introduction The subject of this paper is "quasiquotation". Quasiquotation ..."
Abstract
- Add to MetaCart
Abstract Quasiquotation is the technology commonly used in Lisp to write program-generating programs. In this paper I will review the history and development of this technology, and explain why it works so well in practice. 1 Introduction The subject of this paper is "quasiquotation". Quasiquotation is a parameterized version of ordinary quotation, where instead of specifying a value exactly, some holes are left to be filled in later. A quasiquotation is a "template". Quasiquotation appears in various Lisp dialects, including Scheme [4] and Common Lisp [13], where it is used to write syntactic extensions ("macros") and other program-generating programs.
Towards Compatible and Interderivable . . . Part I: Denotational Semantics, Natural Semantics, and Abstract Machines
, 2008
"... ..."
Data Abstraction in a Language of Multilevel Computations Based on Pattern Matching ⋆
"... Abstract. It is well-known that data abstraction badly coexists with pattern matching. Pattern matching is applicable in the domain with “transparent ” structure of symbolical data while the traditional data abstraction supposes hiding data from the user. In this paper, it is shown how it is possibl ..."
Abstract
- Add to MetaCart
Abstract. It is well-known that data abstraction badly coexists with pattern matching. Pattern matching is applicable in the domain with “transparent ” structure of symbolical data while the traditional data abstraction supposes hiding data from the user. In this paper, it is shown how it is possible to provide data abstraction at reception of all completeness of convenience of it by simple means within the framework of the system of symbolic manipulations based on pattern matching. However, the problem is not put to hide abstract data from the programmer completely. In our case data abstraction is based on possibility of obtaining of values of functions being inversed to functions-constructors that in turn is based on possibility of dynamic computation of patterns. Used way of pattern matching is based on multilevel computations. The examples of data abstraction given in this paper are based on the subsystem of algebraic computations that has been built in the system of symbolic manipulations.

