Results 1 
6 of
6
Programmable Applications: Interpreter Meets Interface
 SIGCHI Bulletin
, 1995
"... Current fashion in "userfriendly" softw overreliance on direct manipulation inte: (and thus trhly userfriendly), applicatk faes and domainenriched languages th This paper discusses some of the desigqr ation of such programmable applications,5 "SchemePaint," a graphics ap ..."
Abstract

Cited by 30 (4 self)
 Add to MetaCart
Current fashion in "userfriendly" softw overreliance on direct manipulation inte: (and thus trhly userfriendly), applicatk faes and domainenriched languages th This paper discusses some of the desigqr ation of such programmable applications,5 "SchemePaint," a graphics application t interface with an interpreter for (a "gral; Copyright ) Massachusetts Institu This report describes research done at the Artificial Int Institute of Technology. Support for the laboratory's in part by the Advanced Research Projects Agency of It Naval Research contract N0001489J3202 and by the number MIP9001651.
Partial Evaluation of Callbyvalue lambdacalculus with Sideeffects
 ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation (PEPM '97
"... We present a framework of an online partial evaluator for a callby value calculus with destructive updates of data structures. It properly and correctly specializes expressions that contain sideeffects, while preserving pointer equality, which is an important property for programs using updates. O ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
We present a framework of an online partial evaluator for a callby value calculus with destructive updates of data structures. It properly and correctly specializes expressions that contain sideeffects, while preserving pointer equality, which is an important property for programs using updates. Our partial evaluator uses a sideeffect analysis to extract immutable data structures and then performs an online specialization using preactions. Once mutable and immutable data structures are separated, partial evaluation is done in sucha way that accessesto immutable ones are performed at specialization time, while accessesto mutable ones are residualized. For the correct residualization of sideeffecting operations, preactions are used to solve various issues, including code elimination, code duplication, and execution order preservation. The preaction mechanism also enablesus to reduceexpressionsthat were residualized when the conventional letexpression approach of Similix was used. Th...
Can Partial Evaluation Improve the Performance of Ray Tracing?
 Natural Science Report, Vol.53, No.1
, 2002
"... This short paper reports our experience on using runtime partial evaluation to improve the performance of ray tracing. By exploiting constant information on objects and light during the ray tracing process, we can produce a specialized ray tracer which runs up to two times faster than the unspeciali ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
This short paper reports our experience on using runtime partial evaluation to improve the performance of ray tracing. By exploiting constant information on objects and light during the ray tracing process, we can produce a specialized ray tracer which runs up to two times faster than the unspecialized version. Thanks to the integration of a partial evaluator into an interpreter, specialization is achieved simply by inserting a pe command. Although the implementation is still prototypical, the experimental results show that partial evaluation does have a role in ray tracing.
Combinatory Logic and λCalculus for Classical Logic
, 2000
"... Since Griffin's work in 1990, classical logic has been an attractive target for extracting computational contents. However, the classical principle used in Griffin's type system is the doublenegationelimination rule, which prevents one to analyze the intuitionistic part and the purely cl ..."
Abstract
 Add to MetaCart
Since Griffin's work in 1990, classical logic has been an attractive target for extracting computational contents. However, the classical principle used in Griffin's type system is the doublenegationelimination rule, which prevents one to analyze the intuitionistic part and the purely classical part separately. By formulating a calculus with J (for the elimination rule of falsehood) and P (for Peirce formula which is concerned with purely classical reasoning) combinators, we can separate these two parts. This paper studies the λPJ calculus with P and J combinators and the λC calculus with C combinator (for the doublenegationelimination rule). We also propose two λcalculi which correspond to PJ and C. We give four classes of reduction rules for each calculus, and systematically study their relationship by simulating reduction rules in one calculus by the corresponding one in the other. It is shown that, by restricting the type of P, simulation succeeds for several choices of reducti...
Multiway Streams in Scheme
, 1989
"... We present a mechanism for the maintenance of streams based on the Scheme facility of callwithcurrentcontinuation or call/cc. The mechanism supports stream sharing and has overhead cost which is independent of toplevel program parameters if call/cc is implemented in heapbased systems. It is ..."
Abstract
 Add to MetaCart
We present a mechanism for the maintenance of streams based on the Scheme facility of callwithcurrentcontinuation or call/cc. The mechanism supports stream sharing and has overhead cost which is independent of toplevel program parameters if call/cc is implemented in heapbased systems. It is shown how the control structure of call/cc can save programming effort in cases where multiple procedures output to the same stream in irregular order. 1 Introduction In Scheme, a stream is typically implemented as a twoelement cell: one element contains the value of the stream head and the other element contains a procedure which computes the remaining stream tokens. Stream tokens can be grabbed one at a time because, in Scheme, the body of a procedure is not evaluated until the procedure is invoked. This implementation works well for single streams but may have efficiency problems in stream networks. Consider, for example, the very simple network that results from splitting a stream ...