Results 1  10
of
10
The essence of etaexpansion in partial evaluation
 LISP AND SYMBOLIC COMPUTATION
, 1995
"... Selective etaexpansion is a powerful "bindingtime improvement", i.e., a sourceprogram modification that makes a partial evaluator yield better results. But like most bindingtime improvements, the exact problem it solves and the reason why have not been formalized and are only understoo ..."
Abstract

Cited by 34 (11 self)
 Add to MetaCart
Selective etaexpansion is a powerful "bindingtime improvement", i.e., a sourceprogram modification that makes a partial evaluator yield better results. But like most bindingtime improvements, the exact problem it solves and the reason why have not been formalized and are only understood by few. In this paper, we describe the problem and the effect of etaredexes in terms of monovariant bindingtime propagation: etaredexes preserve the static data ow of a source program by interfacing static higherorder values in dynamic contexts and dynamic higherorder values in static contexts. They contribute to two distinct bindingtime improvements. We present two extensions of Gomard's monovariant bindingtime analysis for the purecalculus. Our extensions annotate and etaexpandterms. The rst one etaexpands static higherorder values in dynamic contexts. The second also etaexpands dynamic higherorder values in static contexts. As a significant application, we show that our first bindingtime analysis suffices to reformulate the traditional formulation of a CPS transformation into a modern onepass CPS transformer. This bindingtime improvement is known, but it is still left unexplained in contemporary literature, e.g., about "cpsbased" partial evaluation. We also outline the counterpart of etaexpansion for partially static data structures.
The Essence of LR Parsing
 In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation
, 1995
"... Partial evaluation can turn a generalparser into a parser generator. The generated parsers surpass those produced by traditional parser generators in speed and compactness. We use an inherently functional approach to implement general LR(k) parsers and specialize them using the partial evaluator Si ..."
Abstract

Cited by 17 (5 self)
 Add to MetaCart
Partial evaluation can turn a generalparser into a parser generator. The generated parsers surpass those produced by traditional parser generators in speed and compactness. We use an inherently functional approach to implement general LR(k) parsers and specialize them using the partial evaluator Similix. The functional implementation of LR parsing allows for concise implementation of the algorithmsthemselves and requires only straightforwardchanges to achieve good specialization results. In contrast, a traditional, stackbased implementation of a general LR parser requires significant structural changes to make it amenable to satisfactory specialization. 1 Introduction We present two inherently functional implementations of general LR(k) parsers: a directstyle firstorder textbook version and one using continuationpassing style (CPS) for statetransitions. Neither requires the handling of an explicit parsing stack. These parsers, when specialized with respect to a grammar and lookah...
Fortran program specialization
 SIGPLAN Notices
, 1994
"... Abstract. We have developed and implemented a partial evaluator for a subset of Fortran 77. A partial evaluator is a tool for program transformation which takes as input a general program and a part of its input, and produces as output a specialized program. The goal is efficiency: a specialized pro ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
Abstract. We have developed and implemented a partial evaluator for a subset of Fortran 77. A partial evaluator is a tool for program transformation which takes as input a general program and a part of its input, and produces as output a specialized program. The goal is efficiency: a specialized program often runs an order of magnitude faster than the general program. The partial evaluator is based on the offline approach and uses a bindingtime analysis prior to the specialization phase. The source language includes multidimensional arrays, procedures and functions, as well as global storage. The system is presented and experimental results are given. 1
Constructor Specialization
 In Schmidt [25
"... In the section on "challenging problems" in the proceedings from the first international workshop on partial evaluation and mixed computation [BEJ88] a question is stated: "Can PE be used to generate new specialized data types, in a way analogous to generating specialized functions&qu ..."
Abstract

Cited by 16 (2 self)
 Add to MetaCart
In the section on "challenging problems" in the proceedings from the first international workshop on partial evaluation and mixed computation [BEJ88] a question is stated: "Can PE be used to generate new specialized data types, in a way analogous to generating specialized functions". Since then little has been done to address this problem. In [Lau89], new types are indeed generated, but they are all simpler versions of the types in the original program. It is, e.g. not possible to have types with more constructors than the types in the original program. I propose to alleviate this by means of constructor specialization. Constructors are specialized with respect to the static parts of their arguments, just like residual functions. I show how this is done and argue that it makes it possible to get good results from partial evaluation in cases where the traditional methods fail to produce satisfactory results. The discussion is centered around a small subset of Standard ML, but the idea a...
Generation of LR Parsers by Partial Evaluation
 ACM Transactions on Programming Languages and Systems
, 2000
"... this paper appeared in Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation, 1995 under the title "The Essence of LR Parsing." Authors' addresses: Michael Sperber, WilhelmSchickardInstitut fur Informatik, Universitat Tubingen, Sand ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
this paper appeared in Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation, 1995 under the title "The Essence of LR Parsing." Authors' addresses: Michael Sperber, WilhelmSchickardInstitut fur Informatik, Universitat Tubingen, Sand 13, D72076 Tubingen, Germany, sperber@informatik.unituebingen.de.
Distributed partial evaluation
"... Partial evaluation is an automatic program transformation that optimizes programs by specialization. We speed up the specialization process by utilizing the natural coarsegrained parallelism inherent in the partial evaluation process. We have supplemented an existing partial evaluation system for t ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Partial evaluation is an automatic program transformation that optimizes programs by specialization. We speed up the specialization process by utilizing the natural coarsegrained parallelism inherent in the partial evaluation process. We have supplemented an existing partial evaluation system for the Scheme programming language by a farmofworkers model for parallel partial evaluation in a network of loosely coupled workstations. Our implementation speeds up specialization by a factor of 2–3 on 6 processors.
Polymorphic Binding Time Analysis
, 1993
"... Abstract Binding time analysis has proved to be a valuable preanalysis for partial evaluation. Until now (almost) all binding time analyses have been monovariant, such that binding time analysis could assign only one binding time description to each function definition. This means that if a functio ..."
Abstract
 Add to MetaCart
Abstract Binding time analysis has proved to be a valuable preanalysis for partial evaluation. Until now (almost) all binding time analyses have been monovariant, such that binding time analysis could assign only one binding time description to each function definition. This means that if a function f (x) is called once with dynamic data, no reductions on x can be performed in the body of f even when f is called with static data.
Appeared in PEPM'93 Partial Evaluation of General Parsers Slightly Revised
, 1993
"... Abstract Applications of partial evaluation have so far mainly focused on generation of compilers from interpreters for programming languages. We partially evaluate a simple general LR(k) parsing algorithm. To obtain good results, we rewrite the algorithm using a number of bindingtime improvements. ..."
Abstract
 Add to MetaCart
Abstract Applications of partial evaluation have so far mainly focused on generation of compilers from interpreters for programming languages. We partially evaluate a simple general LR(k) parsing algorithm. To obtain good results, we rewrite the algorithm using a number of bindingtime improvements. The final LR(1) parser has been specialized using Similix, a partial evaluator for a higher order subset of Scheme [3]. The obtained specialized parsers are efficient and compact. Partial evaluation is responsible for the (equivalent of) the setsofitems construction, and the construction of parsing tables. This paper is an extended abstract of [14].
unknown title
"... Partial evaluation can turn a general parser into a parser generator. The generated parsers surpass those produced by traditional parser generators in speed and compactness. We use an inherently functional approach to implement general LR(k) parsers and specialize them using the partial evaluator Si ..."
Abstract
 Add to MetaCart
Partial evaluation can turn a general parser into a parser generator. The generated parsers surpass those produced by traditional parser generators in speed and compactness. We use an inherently functional approach to implement general LR(k) parsers and specialize them using the partial evaluator Similix. The functional implementation of LR parsing allows for concise implementation of the algorithms themselves and requires only straightforward changes to achieve good specialization results. In contrast, a traditional, stackbased implementation of a general LR parser requires significant structural changes to make it amenable to satisfactory specialization. 1
EtaRedexes in Partial Evaluation
"... Sourceprogram modifications can make a partial evaluator yield dramatically better results. For example, etaredexes can preserve static data flow by acting as an interface between values and contexts. ..."
Abstract
 Add to MetaCart
Sourceprogram modifications can make a partial evaluator yield dramatically better results. For example, etaredexes can preserve static data flow by acting as an interface between values and contexts.