22 citations found. Retrieving documents...
Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Available online from http://www.informatik.unifreiburg. de/thiemann/papers/index.html, 1996.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
A Monadic Multi-stage Metalanguage - Moggi, Fagorzi (2003)   (5 citations)  (Correct)

....closed values the two semantics agree. Recapturing of extruded variable by its binder. new(x) get(l) M## new(x) get(l) #) generate x, then create l l = x, get(l) #M x.#) get content of l l = x, ret(# V x.x) #) x is bound by # V . This form of recapturing is allowed by [TD99] but not by [CMSar] No recapturing of extruded variable by another binder using the same name. new(0 V ) # M x.set(l, x) ret(x) z get(l) ret(# V x.z) M## l = 0 V , # M x.set(l, x) ret(x) #; z generate x and assign it to l l = x, ret(# V x.x) #; z first code ....

....for MMML, which does not detect statically all run time errors. In particular, we have not included the closed type constructor [# ] of MetaML for two reasons: 1. there are alternative approaches to prevent link errors incomparable with the closed type approach (e.g. the region based approach of [TD99] and the environment classifier approach of [NT03] 2. it requires dead code annotations (x)e that are instrumental to the proof of type safety. Better type systems are desirable not only for detecting errors statically, but also to provide more accurate type schema for dn, e.g. dn: ## #]## ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Available from http://www.informatik.uni-freiburg.de/thiemann/papers/index.html, 1999.


A Monadic Multi-stage Metalanguage - Moggi, Fagorzi (2002)   (5 citations)  (Correct)

....simplification and computation. Therefore, we consider a concrete example corresponding to a functional language with references. This choice is particularly appropriate for relating to previous work on imperative multi stage programming languages [CMSar] and on imperative two level languages [TD99] Types # , C is a type constructor with arity #C given by a natural number T: X ### C(#) with # = #C for the concrete example we consider two type constructors: of arity 2 for functional types (we use the usual infix notation # 1 R of arity 1 for reference ....

....[CMSar] MMML has two term constructors up and dn related to crossstage persistence e and code execution run e of MetaML. We have not included the closed type constructor [# ] of MetaML for two reasons: 1. there are alternative approaches to prevent link errors (e.g. the region based approach of [TD99] incomparable with the closed type approach 2. it requires dead code annotations (x)e that complicate the definitions of simplification or computation. 4 # l R# l: R# # c #; f i : # i m) # c: # i m)## #; #, e: # [x]e: ### x = x i m) and # = # i #: M# ....

[Article contains additional citation context not shown here]

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Available from http://www.informatik.uni-freiburg.de/thiemann/papers/index.html, 1999. 13


Macros as Multi-Stage Computations: Type-Safe, Generative.. - Ganz, Sabry, Taha   (Correct)

....a sound basis for developing type systems for macro languages. In this paper, we have not considered type safety in the presence of imperative features (references, exceptions) during expansion time. In this setting, we expect the work on imperative multi level languages to be of direct relevance [42, 5]. We have also not considered a multi level macro system primarily for the reason of simplicity. We would like to consider such an extension in future work. But there are restrictions on the system that may be a bit more challenging to alleviate. For example, we have not considered higher order ....

Thiemann, P., and Dussart, D. Partial evaluation for higher-order languages with state. Available online from http://www.informatik.uni-freiburg.de/~thiemann/papers/ index.html, 1996.


Closed Types for a Safe Imperative MetaML - Calcagno, Moggi, Sheard (2001)   (9 citations)  (Correct)

....allows open code and symbolic evaluation under lambda (but has no construct for executing code) Binding Time Analyses (BTAs) for imperative languages must also address such problems. Intuitively, a BTA takes a single stage program and produces a two stage one (Jones et al. 1993; Taha, 2000b) (Thiemann Dussart, 1996) describes an o line partial evaluator for a higherorder language with rst class references, where a two level language with regions is used to specify a BTA. This two level language allows storing dynamic values in static cells, but the type and e ect system prohibits operating on static cells ....

....to specify a BTA. This two level language allows storing dynamic values in static cells, but the type and e ect system prohibits operating on static cells within the scope of a dynamic lambda (unless these cells belong to a region local to the body of the dynamic lambda) The two level language of (Thiemann Dussart, 1996) and MiniML meta ref provide incomparable approaches to Type Safety of imperative multi level languages (for partial evaluation) the rst uses regions and e ects, the second uses closed types (and introduces a new type constructor [ Calcagno Moggi, 2000) gives a big step operational ....

Thiemann, Peter, & Dussart, Dirk. (1996). Partial evaluation for higherorder languages with state. Available online from http://www.informatik.unifreiburg.


Closed Types for a Safe Imperative MetaML - Calcagno, Moggi (2001)   (9 citations)  (Correct)

....evaluation under lambda (but has no construct for executing code) Binding Time Analyses (BTAs) for imperative languages must also address such problems. Intuitively, a BTA takes a single stage program and produces a two stage one (Jones et al. 1993; Taha, 2000b) 22 Calcagno, Moggi, Sheard (Thiemann Dussart, 1996) describes an o line partial evaluator for a higherorder language with rst class references, where a two level language with regions is used to specify a BTA. This two level language allows storing dynamic values in static cells, but the type and e ect system prohibits operating on static cells ....

....to specify a BTA. This two level language allows storing dynamic values in static cells, but the type and e ect system prohibits operating on static cells within the scope of a dynamic lambda (unless these cells belong to a region local to the body of the dynamic lambda) The two level language of (Thiemann Dussart, 1996) and MiniML meta ref provide incomparable approaches to Type Safety of imperative multi level languages (for partial evaluation) the rst uses regions and e ects, the second uses closed types (and introduces a new type constructor [ Calcagno Moggi, 2000) gives a big step operational ....

Thiemann, Peter, & Dussart, Dirk. (1996). Partial evaluation for higherorder languages with state. Available online from http://www.informatik.unifreiburg.


Macros as Multi-Stage Computations: Type-Safe, Generative.. - Ganz, Sabry, Taha (2001)   (Correct)

....a sound basis for developing type systems for macro languages. In this paper, we have not considered type safety in the presence of imperative features (references, exceptions) during expansion time. In this setting, we expect the work on imperative multi level languages to be of direct relevance [42, 5]. We have also not considered a multi level macro system primarily for the reason of simplicity. We would like to consider such an extension in future work. But there are restrictions on the system that may be a bit more challenging to alleviate. For example, we have not considered higher order ....

Thiemann, P., and Dussart, D. Partial evaluation for higher-order languages with state. Available online from http://www.informatik.uni-freiburg.de/~thiemann/papers/ index.html, 1996.


Macros as Multi-Stage Computations: Type-Safe, Generative.. - Ganz, Sabry, Taha (2001)   (Correct)

....a sound basis for developing type systems for macro languages. In this paper, we have not considered type safety in the presence of imperative features (references, exceptions) during expansion time. In this setting, we expect the work on imperative multi stage languages to be of direct relevance [49, 4]. We have also not considered a multi level macro system primarily for the reason of simplicity. We would like to consider such an extension in future work. But there are restrictions on out system that may be a bit more challenging to alleviate. For example, we have not considered higher order ....

Thiemann, P., and Dussart, D. Partial evaluation for higher-order languages with state. Available online from http://www.informatik.uni-freiburg.de/~thiemann/papers/ index.html, 1996.


A Hybrid Approach To Online And Offline Partial Evaluation - Sumii (2000)   (4 citations)  (Correct)

....standard techniques such as memoization. 7. 5 Effects Our partial evaluator let inserts every dynamic function application, so it is sound for any dynamic, monadic effect [15, 22] It would also be possible to statically reduce some effects by incorporating existing analyses for offline PE (e.g. [33]) 7.6 Inlining and Hoisting Since our analysis does not let insert linear, effect free expressions, it might duplicate some trivial computations. We hope that this is not a problem, because they can be hoisted out by post processing of the partial evaluator or optimization of the compiler ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Available at http://www.informatik.uni-freiburg.de/~thiemann/papers/mlpe.ps.gz.


Online-and-Offline Partial Evaluation: A Mixed Approach.. - Sumii, Kobayashi (2000)   (1 citation)  (Correct)

....standard techniques such as memoization. E ects: Our partial evaluator let inserts every dynamic function application, so it is sound for any dynamic, monadic effect [16] It would also be possible to statically reduce some e ects by incorporating existing analyses for o ine PE (e.g. [23]) Inlining and Hoisting: Since our analysis does not let insert linear, e ect free expressions, it might cause computation duplication. Fortunately, it does not in many cases, because they can be hoisted out by post processing of the partial evaluator or optimization of the compiler (e.g. ....

P. Thiemann and D. Dussart. Partial evaluation for higher-order languages with state. Available at http://www.informatik.uni-freiburg.de/ ~thiemann/papers/mlpe.ps.gz.


Closed Types as a Simple Approach to Safe Imperative.. - Calcagno, Moggi, Taha (2000)   (4 citations)  (Correct)

....of scope extrusion pointed out in the Introduction. Mini ML BN ref is related to Binding Time Analyses (BTAs) for imperative languages. Intuitively, a BTA takes a single stage program and produces a two stage one (often in the form of a two level program) JGS93,Tah00] Thiemann and Dussart [TD] describe an off line partial evaluator for a higher order language with first class references, where a two level language with regions is used to specify a BTA. Their two level language allows storing dynamic values in static cells, but the type and effect system prohibits operating on static ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Available online from http://www.informatik.unifreiburg. de/~thiemann/papers/index.html.


Closed Types as a Simple Approach to Safe Imperative.. - Calcagno, Moggi, Taha (2000)   (4 citations)  (Correct)

....of scope extrusion pointed out in the Introduction. Mini ML BN ref is related to Binding Time Analyses (BTAs) for imperative languages. Intuitively, a BTA takes a single stage program and produces a two stage one (often in the form of a two level program) JGS93,Tah00] Thiemann and Dussart [TD] describe an o line partial evaluator for a higher order language with rst class references, where a two level language with regions is used to specify a BTA. Their two level language allows storing dynamic values in static cells, but the type and e ect system prohibits operating on static cells ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Available online from http://www.informatik.unifreiburg. de/~thiemann/papers/index.html.


Partial Evaluation of Call-by-value lambda-calculus with.. - Asai, Masuhara, Yonezawa   (1 citation)  (Correct)

....most computation is done by assignments to local variables, and thus reducing them is essential. In functional languages, because this type of computation is realized without using assignments, we can still obtain sufficient specializations without reducing them. Recently, Dussart and Thiemann[11] developed a partial evaluator for ML with a reference type that can statically reduce local static side effects. In this respect, their partial evaluator is more powerful than ours. Because mutable data are syntactically clear in ML programs, they do not need a side effect analysis. However, ....

Dussart, D., and P. Thiemann "Partial Evaluation for HigherOrder Languages with State," Submitted for publication (1996).


Polymorphic Specialization for ML - Helsen, Thiemann (2001)   Self-citation (Thiemann)   (Correct)

....the storeless small step semantics for from this paper with an explicit store [7] This operational extension caters for ML style reference cells and could provide a basis for specialization time reductions of store operations. However, such additions are not straightforward in practice [55] and may complicate the soundness proof of the specializer considerably. 32 A Proof of Constraint Completion Existence Suppose f g t e : Then there exists a constraint completion e with region annotation c . Proof. To prove the theorem, we prove a slightly more general claim. If ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universitat Tubingen, April 1997.


Polymorphic Specialization for ML - Helsen, Thiemann (2002)   Self-citation (Thiemann)   (Correct)

....the storeless small step semantics for # from this paper with an explicit store [7] This operational extension caters for ML style reference cells and could provide a basis for specialization time reductions of store operations. However, such additions are not straightforward in practice [55] and may complicate the soundness proof of the specializer considerably. 32 A Proof of Constraint Completion Existence t e : #. Then there exists a constraint completion e with region annotation # c . Proof. To prove the theorem, we prove a slightly more general claim. If TE # e : ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universitat Tubingen, April 1997.


First-Class Polyvariant Functions and Co-Arity Raising - Thiemann   Self-citation (Thiemann)   (Correct)

....can only use a function with partially static result after its rst specialization is complete. The specializer checks if an entry in a memo table has its return value before it uses it. Otherwise, it stops with an error message. A similar phenomenon occurs in a specializer with static state [26]. Many specializers introduce memoization points at dynamic conditionals [2] to increase the chance of termination. Usually, dynamic conditionals and memoization points both return dynamic values. With co arity raising, a dynamic conditional returning only a dynamic value e ectively destroys all ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universit at Tubingen, April 1997. http://www.informatik.uni-freiburg.de/ thiemann /papers/mlpe.ps.gz.


A Generic Framework for Specialization (Abridged Version) - Thiemann   Self-citation (Thiemann)   (Correct)

....program. The inverse translation is hard wired into the specializer. Examples of this approach are Bondorf s specializer in extended continuationpassing style [4] and a specializer for call by value lambda calculus with first class references in extended continuation passing store passing style [17]. Specializer in Direct Style with Monadic Operators Here we depart from writing the specializer in a pure language and use a meta interpreter eval = eval v ffi M ffi E v ) for with the monad in question built in. On top of that we write a direct style specializer S in using the ....

....following connection (see also [38] Lemma 5. G i ffi En ) fi S i 9 7 Specialization with Mutable Store If we set T = Theta Store Code Theta Store) Store Code Theta Store (a continuation passing and store passing monad) we obtain a specializer for a language with mutable store [17]. The expansion now reads as follows (using ( for pairing and i for projection) GsJxK j x GsJx:MK j x:GsJMK GsJapply M1 M2 K j ks:GsJM1 K GsJM2 K k s GsJ (x; M)K j (x; GsJMK) GsJ (M1 ; M2 )K j (GsJM1 K; GsJM2K) GsJunit(M)K j ks:k (GsJMK; s) GsJlet x (M1 in M2 K j ks:GsJM1 ....

[Article contains additional citation context not shown here]

Dirk Dussart and Peter Thiemann. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universitat Tubingen, April 1997.


Monadic Type Systems: Pure Type Systems for Impure Settings - Barthe, Hatcliff, Thiemann (1998)   (1 citation)  Self-citation (Thiemann)   (Correct)

....thus far. Intermediate language for partial evaluation: The computational metalanguage is well suited as an evaluation order independent intermediate language for partial evaluation [27] The monadic structure guarantees the soundness of partial evaluation in the presence of computational effects [32, 48], and it facilitates the extension of type specialization to a language with first class references [14, 30] These works either take place in an untyped setting [32] or in a simply typed setting [14, 27, 30] We expect the MTS framework to contribute to the definition of sound partial evaluation ....

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universitt Tbingen, April 1997.


Two for the Price of One: Composing Partial Evaluation and.. - Sperber, Thiemann (1997)   (10 citations)  Self-citation (Thiemann)   (Correct)

....that we use is the ANF version of Consel and Danvy s [7] initial approach to improve the results of partial evaluation by CPS transformation. The original application of our specializer is specialization of ML style programs which can perform operations on references at specialization time [17]. 8.2 Partial Evaluation Holst [27] describes a system called AMIX, a partial evaluator that generates code for a stack machine directly. The motivation behind this system is similar to ours, with two notable differences: The AMIX system was written from scratch with the generation of stack code ....

Dirk Dussart and Peter Thiemann. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-96-XX, Universit at Tubingen, November 1996.


Correctness of a Region-Based Binding-Time Analysis - Thiemann (1997)   Self-citation (Thiemann)   (Correct)

....to type safety. The correctness of BTAs for functional languages has already been considered in some depth [12 14, 23, 24, 33] With the advent of offline partial evaluators for functional languages with state the correctness issue of BTA comes up again. The novelty of these partial evaluators [11] is their ability to perform operations on first class references at specialization time. This facility greatly enhances the power of partial evaluation, which now applies to programs in message passing style, unification with references, and interpreters that implement laziness using updatable ....

....and the well annotatedness which concludes the proof. In this work, we concentrate on the correctness proof for a monovariant RBTA. Neither do we cover the specification and implementation of the specializer, nor polyvariant program point specialization. These issues are discussed elsewhere [11]. 2 jEj denotes the underlying standard term of an annotated term E, i.e. E with all annotations removed. Thiemann e : x value identifier j e e application j x:e abstraction j rec f(x) e recursive function definition j new e initialization j get e dereference j set e e assignment ....

[Article contains additional citation context not shown here]

Dirk Dussart and Peter Thiemann. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universitat Tubingen, April 1997.


Sound Specialization in the Presence of Computational Effects - Lawall, Thiemann (1997)   (14 citations)  Self-citation (Thiemann)   (Correct)

....they define a well formedness criterion that can be used as a specification for a binding time analysis and prove the correctness of the binding time analysis. The calculus presented in this paper has been developed in the course of work on offline partial evaluation in the presence of state [16]. It forms the basis for a practical implementation of a partial evaluator for Scheme [8] Continuation based specialization can be an implementation for c . However, many specifications allow for additional reductions that are unsound in general. This topic is extensively discussed in Section ....

Dirk Dussart and Peter Thiemann. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-97-XX, Universit at T ubingen, April 1997.


Type Specialisation for Imperative Languages - Dussart, Hughes, Thiemann (1997)   (4 citations)  Self-citation (Dussart Thiemann)   (Correct)

.... : oe 0 n i 0 Figure 10: Typing and Specialisation Rules for Store Prompts or t:runM mlet r ( ref 1 in mlet v ( r in j (t liftv) int int , t:t 1 : int int The only other specialiser to combine first class functions with static references is due to Dussart and Thiemann [13]. It is a more conventional partial evaluator, in which dynamic expressions cannot have static arguments. Consequently it always specialises the bodies of dynamic expressions in an empty static store. Our runM essentially simulates this behaviour. Our effect delimiters runM and runM are rather ....

....a poyvariant binding time analysis to specialise programs in the C language by transforming them to a sophisticated variant of store passing style. This approach avoids the construction of new program analyses and new partial evaluation techniques for imperative programs. Dussart and Thiemann [13] have constructed an offline partial evaluator for a simply typed lambda calculus with first class references. Their system is traditional in that its monovariant binding time analysis ensures that there are no errors at specialization time. The binding time analysis is based on an effect system. ....

[Article contains additional citation context not shown here]

D. Dussart and P. Thiemann. Partial evaluation for higher-order languages with state. Berichte des Wilhelm-Schickard-Instituts WSI-96-??, Universit at Tubingen, Nov. 1996.


Semantic and Logical Properties of Stateful Programming - Calcagno (2002)   (2 citations)  (Correct)

No context found.

Peter Thiemann and Dirk Dussart. Partial evaluation for higher-order languages with state. Available online from http://www.informatik.unifreiburg. de/thiemann/papers/index.html, 1996.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC