Results 1  10
of
11
Typed closure conversion
 In Proceedings of the 23th Symposium on Principles of Programming Languages (POPL
, 1996
"... The views and conclusions contained in this document are those of the authors and should not be interpreted as representing o cial policies, either expressed or implied, of the Advanced Research Projects Agency or the U.S. Government. Any opinions, ndings, and conclusions or recommendations expresse ..."
Abstract

Cited by 159 (21 self)
 Add to MetaCart
(Show Context)
The views and conclusions contained in this document are those of the authors and should not be interpreted as representing o cial policies, either expressed or implied, of the Advanced Research Projects Agency or the U.S. Government. Any opinions, ndings, and conclusions or recommendations expressed in this material are those of the We study the typing properties of closure conversion for simplytyped and polymorphiccalculi. Unlike most accounts of closure conversion, which only treat the untypedcalculus, we translate welltyped source programs to welltyped target programs. This allows later compiler phases to take advantage of types for representation analysis and tagfree garbage collection, and it facilitates correctness proofs. Our account of closure conversion for the simplytyped language takes advantage of a simple model of objects by mapping closures to existentials. Closure conversion for the polymorphic language requires additional type machinery, namely translucency in the style of Harper and Lillibridge's module calculus, to express the type of a closure.
MultiStage Programming: Its Theory and Applications
, 1999
"... MetaML is a statically typed functional programming language with special support for program generation. In addition to providing the standard features of contemporary programming languages such as Standard ML, MetaML provides three staging annotations. These staging annotations allow the construct ..."
Abstract

Cited by 96 (20 self)
 Add to MetaCart
MetaML is a statically typed functional programming language with special support for program generation. In addition to providing the standard features of contemporary programming languages such as Standard ML, MetaML provides three staging annotations. These staging annotations allow the construction, combination, and execution of objectprograms. Our thesis is that MetaML's three staging annotations provide a useful, theoretically sound basis for building program generators. This dissertation reports on our study of MetaML's staging constructs, their use, their implementation, and their formal semantics. Our results include an extended example of where MetaML allows us to produce efficient programs, an explanation of why implementing these constructs in traditional ways can be challenging, two formulations of MetaML's semantics, a type system for MetaML, and a proposal for extending ...
From ML to Ada: Stronglytyped Language Interoperability via Source Translation
, 1993
"... We describe a system that supports sourcelevel integration of MLlike functional language code with ANSI C or Ada83 code. The system works by translating the functional code into typecorrect, "vanilla" C or Ada; it offers simple, efficient, typesafe interoperation between new functiona ..."
Abstract

Cited by 71 (3 self)
 Add to MetaCart
We describe a system that supports sourcelevel integration of MLlike functional language code with ANSI C or Ada83 code. The system works by translating the functional code into typecorrect, "vanilla" C or Ada; it offers simple, efficient, typesafe interoperation between new functional code components and "legacy" thirdgenerationlanguage components. Our translator represents a novel synthesis of techniques including userparameterized specification of primitive types and operators; removal of polymorphism by code specialization; removal of higherorder functions using closure datatypes and interpretation; and aggressive optimization of the resulting firstorder code, which can be viewed as encoding the result of a closure analysis. Programs remain fully typed at every stage of the translation process, using only simple, standard type systems. Target code runs at speeds comparable to the output of current optimizing ML compilers, even though handicapped by a conservative garbage collector.
Polymorphic type assignment and CPS conversion
 LISP and Symbolic Computation
, 1993
"... Meyer and Wand established that the type of a term in the simply typedcalculus may be related in a straightforward manner to the type of its callbyvalue CPS transform. This typing property maybe extended to Schemelike continuationpassing primitives, from which the soundness of these extensions ..."
Abstract

Cited by 37 (10 self)
 Add to MetaCart
(Show Context)
Meyer and Wand established that the type of a term in the simply typedcalculus may be related in a straightforward manner to the type of its callbyvalue CPS transform. This typing property maybe extended to Schemelike continuationpassing primitives, from which the soundness of these extensions follows. We study the extension of these results to the DamasMilner polymorphic type assignment system under both the callbyvalue and callbyname interpretations. We obtain CPS transforms for the callbyvalue interpretation, provided that the polymorphic let is restricted to values, and for the callbyname interpretation with no restrictions. We prove that there is no callbyvalue CPS transform for the full DamasMilner language that validates the MeyerWand typing property and is equivalent to the standard callbyvalue transform up toconversion. 1
Higher Order Logic
 In Handbook of Logic in Artificial Intelligence and Logic Programming
, 1994
"... Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2 The expressive power of second order Logic : : : : : : : : : : : 3 2.1 The language of second order logic : : : : : : : : : : : : : 3 2.2 Expressing size : : : : : : : : : : : : : : : : : : : : : : : : 4 2.3 Definin ..."
Abstract

Cited by 21 (0 self)
 Add to MetaCart
Contents 1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 2 2 The expressive power of second order Logic : : : : : : : : : : : 3 2.1 The language of second order logic : : : : : : : : : : : : : 3 2.2 Expressing size : : : : : : : : : : : : : : : : : : : : : : : : 4 2.3 Defining data types : : : : : : : : : : : : : : : : : : : : : 6 2.4 Describing processes : : : : : : : : : : : : : : : : : : : : : 8 2.5 Expressing convergence using second order validity : : : : : : : : : : : : : : : : : : : : : : : : : 9 2.6 Truth definitions: the analytical hierarchy : : : : : : : : 10 2.7 Inductive definitions : : : : : : : : : : : : : : : : : : : : : 13 3 Canonical semantics of higher order logic : : : : : : : : : : : : 15 3.1 Tarskian semantics of second order logic : : : : : : : : : 15 3.2 Function and re
Combining Closure Conversion with Closure Analysis using Algebraic Types
 Boston College Computer Science
, 1997
"... Wehave developed a new approachtotyped closure conversion of higherorder monomorphic languages which also provides a useful uniform framework for closure analysis and subsequent optimization. The approach is based on representing closures as ordinary algebraic data constructors, grouped into alg ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
(Show Context)
Wehave developed a new approachtotyped closure conversion of higherorder monomorphic languages which also provides a useful uniform framework for closure analysis and subsequent optimization. The approach is based on representing closures as ordinary algebraic data constructors, grouped into algebraic datatypes according to source type; no special type system is needed. Closure applications are interpreted in the style of Reynolds #13#. Programs in our closureconverted form can also be viewed as representing the results of a closure analysis, which can be used to support many optimization strategies including partial evaluation, inlining, and stackallocation of closures. The closure conversion itself provides a #free" level of closure analysis, based on type distinctions in the user program; to our knowledge, no previous system has performed suchatypebased closure analysis. In addition, the results of more precise automated closure analyses can also be recorded in our for...
LEAP: A Language with Eval And Polymorphism
"... We describe the core of a new stronglytyped functional programming language called LEAP, a \Language with Eval And Polymorphism. " Pure LEAP is an extension of the!order polymorphiccalculus (F!) by global de nitions that allows the representation of programs and the de nition of versions of ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
(Show Context)
We describe the core of a new stronglytyped functional programming language called LEAP, a \Language with Eval And Polymorphism. " Pure LEAP is an extension of the!order polymorphiccalculus (F!) by global de nitions that allows the representation of programs and the de nition of versions of reify, reflect, and eval for all of F!. Pure LEAP is therefore highly re exive and strongly typed. We believe that Pure LEAP can be extended to a practical and e cient metalanguage in the ML tradition. At present we are experimenting with a prototype implementation of Pure LEAP. 1
Complexity and Implementation of Nominal Algorithms
"... 1 I would like to dedicate this thesis to my loving grandparents and the teachers who believed in me...Acknowledgements I want to express the deepest gratitude to my supervisor, Maribel Fernández, for all the support, the constant help and the dedication she put into teaching me how to be a good res ..."
Abstract
 Add to MetaCart
(Show Context)
1 I would like to dedicate this thesis to my loving grandparents and the teachers who believed in me...Acknowledgements I want to express the deepest gratitude to my supervisor, Maribel Fernández, for all the support, the constant help and the dedication she put into teaching me how to be a good researcher. I wish to be one day, for my students, as nice as she has been for me. I wish to thank particularly Olivier Danvy for having invited me at BRICS in Aarhus. It was a wonderful and very rewarding experience, as much on the research level as the personal level. Without him the part of this thesis about continuations would have been much lighter. I thank Mathieu Boesp ug and Zoé Drey for the great time it was searching and living with them in Aarhus. I wish the stay could have continued more, but reaching the end of the PhD, time was delimited.
Recursive Types in an Operational Setting
, 1998
"... A summary of some of the results in this paper appeared in TACS '97. ..."
Abstract
 Add to MetaCart
(Show Context)
A summary of some of the results in this paper appeared in TACS '97.