Results 1 
3 of
3
Improvement in a Lazy Context: An Operational Theory for CallByNeed
 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 38 (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 callbyneed. 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...
Report on the Visit to Department of Computer Sciences, Yale University
, 2000
"... Introduction Department of Computer Science at Yale University has been an integral part of the development and implementation of the Haskell programming language since its inception. They have helped to design Hugs (The Haskell Interpreter) [1] , write the Haskell Report [2] (the document defi ..."
Abstract
 Add to MetaCart
Introduction Department of Computer Science at Yale University has been an integral part of the development and implementation of the Haskell programming language since its inception. They have helped to design Hugs (The Haskell Interpreter) [1] , write the Haskell Report [2] (the document defining the language), write the tutorial on Haskell [3] , and most recently Professor Paul Hudak has published a textbook using Haskell: The Haskell School of Expression. [4] From March 5 th to May 27 th , I had a study visit to this Department, in particularly Professor Paul Hudak's Haskell research group. The purpose of this visit is to establish a research contact and to utilize that groups long and profound experience in functional languages and program transformations. 2. Department of Computer Science, Yale University There are mainly four research groups at C
Deterministic Secondorder Patterns in Program Transformation
 In International Symposium on Logicbased Program Synthesis and Transformation (LOPSTR 2003
, 2003
"... Higherorder patterns, together with higherorder matching, enable concise specification of program transformation, and have been implemented in several program transformation systems. However, higherorder matching generally generates nondeterministic matches, and the matching algorithm is so ex ..."
Abstract
 Add to MetaCart
Higherorder patterns, together with higherorder matching, enable concise specification of program transformation, and have been implemented in several program transformation systems. However, higherorder matching generally generates nondeterministic matches, and the matching algorithm is so expensive that even secondorder matching is NPcomplete. It is orthodox to impose constraint on the form of patterns so as to obtain the desirable matches satisfying certain properties such as decidability and finiteness. In the context of unification, Miller's higherorder patterns have a single most general unifier, while unification of general patterns is nondeterministic (and even undecidable). We relax the restriction of his patterns without changing determinism in the context of matching instead of unification. As a consequence, our deterministic secondorder pattern covers a wide class of useful patterns for program transformation. Our deterministic matching algorithm is as fast as the firstorder matching algorithm, almost in proportion to the size of the term.