Results 1 -
8 of
8
Macros as multi-stage computations: Type-safe, generative, binding macros in MacroML
- in MacroML. In the International Conference on Functional Programming (ICFP ’01
, 2001
"... ..."
Improvement in a Lazy Context: An Operational Theory for Call-By-Need
- Proc. POPL'99, ACM
, 1999
"... Machine The semantics presented in this section is essentially Sestoft's \mark 1" abstract machine for laziness [Sestoft 1997]. In that paper, he proves his abstract machine 6 A. K. Moran and D. Sands h fx = Mg; x; S i ! h ; M; #x : S i (Lookup) h ; V; #x : S i ! h fx = V g; V; S i (Update) h ; ..."
Abstract
-
Cited by 31 (7 self)
- Add to MetaCart
Machine The semantics presented in this section is essentially Sestoft's \mark 1" abstract machine for laziness [Sestoft 1997]. In that paper, he proves his abstract machine 6 A. K. Moran and D. Sands h fx = Mg; x; S i ! h ; M; #x : S i (Lookup) h ; V; #x : S i ! h fx = V g; V; S i (Update) h ; M x; S i ! h ; M; x : S i (Unwind) h ; x:M; y : S i ! h ; M [ y = x ]; S i (Subst) h ; case M of alts ; S i ! h ; M; alts : S i (Case) h ; c j ~y; fc i ~x i N i g : S i ! h ; N j [ ~y = ~x j ]; S i (Branch) h ; let f~x = ~ Mg in N; S i ! h f~x = ~ Mg; N; S i ~x dom(;S) (Letrec) Fig. 1. The abstract machine semantics for call-by-need. semantics sound and complete with respect to Launchbury's natural semantics, and we will not repeat those proofs here. Transitions are over congurations consisting of a heap, containing bindings, the expression currently being evaluated, and a stack. The heap is a partial function from variables to terms, and denoted in an identical manner to a coll...
A Simply Typed Context Calculus with First-Class Environments
, 2002
"... . We introduce a simply typed -calculus " which has both contexts and environments as first-class values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechanism which t ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
. We introduce a simply typed -calculus " which has both contexts and environments as first-class values. In ", holes in contexts are represented by ordinary variables of appropriate types and hole filling is represented by the functional application together with a new abstraction mechanism which takes care of packing and unpacking of the term which is used to fill in the holes of the context. " is a conservative extension of the simply typed fi-calculus, enjoys subject reduction property, is confluent and strongly normalizing. The traditional method of defining substitution does not work for our calculus. So, we also introduce a new method of defining substitution. Although we introduce the new definition of substitution out of necessity, the new definition turns out to be conceptually simpler than the traditional definition of substitution. 1 Introduction Informally speaking, a context (in -calculus) is a -term with some holes in it. For example, writing [ ] for a hole, y: [ ] is a...
A Calculus of Lambda Calculus Contexts
- Journal of Automated Reasoning
, 2001
"... The calculus c serves as a general framework for representing contexts. Essential features are control over variable capturing and the freedom to manipulate contexts before or after hole lling, by a mechanism of delayed substitution. The context calculus c is given in the form of an extension of th ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
The calculus c serves as a general framework for representing contexts. Essential features are control over variable capturing and the freedom to manipulate contexts before or after hole lling, by a mechanism of delayed substitution. The context calculus c is given in the form of an extension of the lambda calculus. Many notions of context can be represented within the framework; a particular variation can be obtained by the choice of a pretyping, which we illustrate by three examples. 1.
Context-Oriented Programming for Pervasive Systems
, 2002
"... We envision that pervasive computing will increasingly impact on daily life. Pervasive computing is a computing paradigm incorporated in a variety of devices (computers, clothes, cars, appliances, mobile phones etc.) to support daily activities. To make computers easier to use, computing tasks m ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
We envision that pervasive computing will increasingly impact on daily life. Pervasive computing is a computing paradigm incorporated in a variety of devices (computers, clothes, cars, appliances, mobile phones etc.) to support daily activities. To make computers easier to use, computing tasks must be more sensitive to our needs and the context.
The context calculus λc (Extended Abstract)
, 1999
"... Mirna Bognar Roel de Vrijer Abstract The calculus c serves as a general framework for representing contexts. Essential features are control over variable capturing and the freedom to manipulate contexts before or after hole filling, by a mechanism of delayed substitution. The context calculus ..."
Abstract
- Add to MetaCart
Mirna Bognar Roel de Vrijer Abstract The calculus c serves as a general framework for representing contexts. Essential features are control over variable capturing and the freedom to manipulate contexts before or after hole filling, by a mechanism of delayed substitution. The context calculus c is given in the form of an extension of the lambda calculus. Many notions of context can be represented within the framework; a particular variation can be obtained by the choice of a so-called pretyping. By way of an example we treat the contexts of Hashimoto & Ohori. 1 Introduction The central notion in this paper is that of context, i.e. an expression with special places, called holes, where other expressions can be placed. For example, in the lambda calculus, (x:2)z, where 2 denotes a hole, is a context. In formal systems with bound variables, such as -calculus, a distinctive feature of placing an arbitrary expression into a hole of a context is variable capturing: some free varia...

