| G. Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995. |
....the input program is well typed and each compiler transformation changes the intermediate representation and its typing in a consistent way. This approach requires using one or more typed intermediate languages. Explicitly typed intermediate languages o#er several benefits to the compiler writer [20, 19, 25, 21]. First, type information can guide program analyses and transformations. Second, some applications need accurate type information at run time thereby requiring the compiler to preserve it. Finally, typed intermediate languages are useful as a debugging aid in the compiler development process. ....
....the well typedness of the intermediate representation across program transformations. The type information is used in the later stages of the compiler to improve code generation. System F can also be seen as the basis of the typed intermediate language # ML i of the TIL compiler for Standard ML [19, 18]. The calculus # ML i is a predicative variant of System F extended with intensional polymorphism [12] The key feature is the support for dynamic type dispatch at run time. This aids in e#cient compilation of polymorphism without sacrificing separate compilation. A use of a polymorphic function ....
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
.... them in boxing coercions that are determined by the instantiated types [PJL91, Ler92, HJ94] But boxing coercions introduce new problems they imply copying and coercions that are expensive for compound data and recursive functions and that are semantically incorrect for mutable data structures[Mor95] An alternative is to use dynamic type dispatch to coerce a function to a specialized version based on an explicit type argument[Mor95, TMC 96] Compilers also use flow information to ameliorate the costs of expressive language features. A flow analysis provides a conservative approximation ....
.... they imply copying and coercions that are expensive for compound data and recursive functions and that are semantically incorrect for mutable data structures[Mor95] An alternative is to use dynamic type dispatch to coerce a function to a specialized version based on an explicit type argument[Mor95, TMC 96] Compilers also use flow information to ameliorate the costs of expressive language features. A flow analysis provides a conservative approximation of which program points (sources) can produce the values that are consumed at other program points (sinks) Traditionally, flow ....
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995. 11
....of intersection (and union) types would not achieve significantly better space complexity. 2 1 Introduction 1. 1 The Compile Time Space Costs of Typed Intermediate Languages Recent research has demonstrated the benefits of compiling with an explicitly typed intermediate language (TIL) Mor95, PJ96, TMC 96, PJM97, JS98, BKR98, TO98, FKR 99, CJW00, MWCG99, WDMT0X] One benefit is that explicit types can be used in compiler passes to guide program transformations and select e#cient data representations. Another advantage of using a TIL is that the compiler can invoke its type ....
.... the compiler to the assembly level (something we do not yet do) the resulting object code is certifiably type safe [Nec97, MWCG99] Furthermore, types that survive through the back end can be used to support run time operations such as garbage collection [Tol94] and run time type dispatch [Mor95] The benefits of using a TIL are not achieved without costs. These costs include the space needed to represent the types at compile time, the time to manipulate the types at compile time, and the added complications of transforming types along with terms. This report focuses on the compile time ....
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
....flow paths to enable multiple representations. As an instance of our framework, we provide a function representation transformation that encompasses both closure conversion and inlining. Our framework is adaptable to data other than functions. 1 Introduction Typed intermediate languages [20, 19, 23, 30] support typedirected transformations while simultaneously increasing confidence in the correctness of such transformations. In this paper, we focus on representation transformations, i.e. those that arise in data type implementations. We consider representation transformations that transform all ....
....function representation transformation that subsumes both closure conversion and inlining as special cases. We are the first to perform function transformations using multiple representations with multiple interfaces in a strongly typed language. Earlier approaches to typed closure conversion [10, 18, 19] have required all function representations to use the same application protocol. The only flowbased closure conversion work known to us that supports multiple application protocols is expressed in an untyped language [28] Our transformation can inline functions along arbitrary flow paths, ....
[Article contains additional citation context not shown here]
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
....implementation is equivalent to an aggressive implementation plus a sound bytecode verifier (perhaps one based on our rules) There have also been typed intermediate languages other than JVML. Several have been developed for ML and Haskell [TIC97] We discuss the TIL intermediate languages [Mor95, MTC 96] as representative examples. The TIL intermediate languages provide static guarantees similar to those of JVML. Although these languages have sophisticated type systems, they do not include an analogue to JVML subroutines; instead, they include constructs as high level as Java s ....
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, December 1995.
.... list must be translated back to an old version list before it is returned (since the client of the operation expects to be returned an old version list) This is related to the problems of using coercions to implement polymorphism [38] that in turn motivated work on intensional polymorphism [31, 49, 51]. 2. Second, this translation will often be unnecessary. For example, suppose a generic hash table module was instantiated with the old version type, and the table now contains several old version values. After the hot swap, the application would like to continue using this hash table for both ....
J. Gregory Morrisett. Compiling With Types. PhD thesis, Carnegie-Mellon University, 1995.
....techniques. The data also suggests that nonduplicating formulations of intersection (and union) types would not achieve signi cantly better space complexity. 1 Introduction Recent research has demonstrated the bene ts of compiling with an explicitly typed intermediate language (TIL) Mor95, PJ96, TMC 96, PJM97, JS98, BKR98, TO98, FKR 99, CJW00, MWCG99, WDMT0X] One bene t is that explicit types can be used in compiler passes to guide program transformations and select ecient data representations. Another advantage of using a TIL is that the compiler can invoke its type ....
.... through the compiler to the assembly level (something we do not yet do) the resulting object code is certi ably type safe [Nec97, MWCG99] Furthermore, types that survive through the back end can be used to support run time operations such as garbage collection [Tol94] and run time type dispatch [Mor95] The bene ts of using a TIL are not achieved without costs. These costs include the space needed to represent the types at compile time, the time to manipulate the types at compile time, and the added complications of transforming types along with terms. This report focuses on the compile time ....
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
....techniques. The data also suggests that non duplicating formulations of intersection (and union) types would not achieve signi cantly better space complexity. 1 Introduction Recent research has demonstrated the bene ts of compiling with an explicitly typed intermediate language (TIL) Mor95, PJ96, TMC 96, PJM97, JS98, BKR98, TO98, FKR 99, CJW00, MWCG99, WDMT0X] One bene t is that explicit types can be used in compiler passes to guide program transformations and select ecient data representations. Another advantage of using a TIL is Partially supported by NSF grant ....
.... through the compiler to the assembly level (something we do not yet do) the resulting object code is certi ably type safe [Nec97, MWCG99] Furthermore, types that survive through the back end can be used to support run time operations such as garbage collection [Tol94] and run time type dispatch [Mor95] The bene ts of using a TIL are not achieved without costs. These costs include the space needed to represent the types at compile time, the time to manipulate the types at compile time, and the added complications of transforming types along with terms. This report focuses on the compile time ....
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
....pointers in the memory space, making conventional tracing GC fail. 1.2 Our Approach In this paper we propose a GC scheme that can coexist with static memory management based on a linear type system. The basic idea is to exploit static type information during GC in a way similar to tag free GC [App89,Tol94,MFH95,Mor95,MH96]. It may help to review the idea of tag free GC (for languages with a monomorphic type system) rst. The intuition behind tag free GC was that types represent the shapes of values. When we begin to trace a variable in the environment, its static type tells how to trace it: if x is given type ....
....work are formalization of our GC algorithm for a language with a monomorphic linear type system and a proof of correctness of the algorithm. Our formalization also includes operational semantics that takes account of immediate reclamation of memory space for linear values; as in the previous work [MFH95,Mor95,MH96] on formalization of memory management, the operational semantics of our language makes run time mechanisms such as stacks or heap space explicit. We also prove soundness of our linear type system with respect to the operational semantics. Here, only one particular instance of monomorphic linear ....
[Article contains additional citation context not shown here]
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, December 1995.
....For example, a function type characterizes the way a function can be used, namely for mapping a value from the function s domain to the codomain. Numerous examples of exploiting the information provided by an expression s type, e.g. for program optimization, can be found in the literature [50, 66, 71]. We will focus on the following application of this principle: for a restricted class of values, one can write a type indexed function reify. For any value v in this restricted class, an instance of reify for v s type will, when applied to v , return the representation of an expression in normal ....
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, December 1995. Tech Report CMU-CS-95-226.
....cantly reduce compile time space costs. There is also preliminary evidence that the ow information encoded in CIL s type system can e ectively guide data customization. 1 Introduction Recent research has demonstrated the bene ts of compiling with an explicitly typed intermediate language (TIL) Mor95, PJ96, TMC 96, PJM97, JS98, BKR98, TO98, FKR 99, CJW00, MWCG99, WDMT0X] One bene t is that explicit types can be used in compiler passes to guide program transformations and select ecient data representations. Another advantage of using a TIL is that the compiler can invoke its type ....
....supported by EPSRC grants GR L 36963 and GR L 15685. 1 do not yet do) the resulting object code is certi ably type safe [Nec97, MWCG99] Furthermore, types that survive through the back end can be used to support run time operations such as garbage collection [Tol94] and run time type dispatch [Mor95] The bene ts of using a TIL are not achieved without costs, which include the space needed to represent the types at compile time, the time to manipulate the types at compile time, and the added complications of transforming types along with terms. This report focuses on the compile time space ....
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
....languages, their formal discussions in the previous work have not treated polymorphism. This paper aims to describe a formal framework that can directly serve both as specifications for implementing the GC scheme and as a foundation for discussing it. Following the formulations of Morrisett et al. [11, 12], we adopt a calculus based language with explicit temporary variables, heaps, stacks and environments. This language very much suits our purpose firstly because it reflects many aspects of usual execution schemes for functional languages, including sharing and cycles among heap data, and ....
....is evaluated, a variable referring to an abstraction is dereferenced. Finally, we define a program as a pair of a heap and a stack. programs) P : letrec H in C Later, we will define our operational semantics as a reduction relation over programs. 2 This language is similar to that in [11], where they have a similar motivation to ours. 3 To simplify the arguments, we allocate integers to heaps, which are usually represented in actual implementation as unboxed values. 4 We can include tuples in the same way by expressing a tuple object as hhV; hx1 ; x2 iii. However, it should be ....
[Article contains additional citation context not shown here]
G. Morrisett. Compiling with Types. PhD thesis, School of Computer Science Carnegie Mellon University, 1995.
....implementation is equivalent to an aggressive implementation plus a sound bytecode verifier (perhaps one based on our rules) There have also been typed intermediate languages other than JVML. Several have been developed for ML and Haskell [TIC97] Here we discuss the TIL intermediate languages [Mor95, MTC 96] as representative examples. The TIL intermediate languages provide static guarantees similar to those of JVML. Although these languages have sophisticated type systems, they do not include an analogue to JVML subroutines; instead, they include constructs as high level as Java s ....
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
....is represented in the types, the latter property guarantees that the ow annotations are sound with respect to the rewrite rules of the calculus. CIL is an example of a typed intermediate language (TIL) TILs have been used in several recent compilers for higher order polymorphic languages [Sha94, Mor95, PJ96, PJM97]. The key motivation for the explicit types in these languages is to transmit type information available in the early stages of the compiler to the later stages of the compiler through a series of program transformations that preserve the well typedness of the intermediate language programs. In ....
....about the instantiation sites, then a simple approach is to specialize to all of the types in the enumeration. For example, implementations of some object oriented languages specialize each method for all subclasses of the type of the method receiver [CU89a, CU89b] In dynamic type dispatch [HM95, Mor95] polymorphic functions dispatch to monomorphic code based on all possible representation types at which the function can be used; although the type dispatch in general may take place at run time, it usually can be performed at compile time, yielding code without a run time overhead for ....
G. Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
No context found.
G. Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
....its type in such a way that the typing relation is preserved. Work in this direction was initiated by Harper and Lillibridge [4, 5] and continued with the development of typed closure conversion [11, 16] and type based approaches to garbage collection [14, 15] Much of Morrisett s dissertation [13] is devoted to developing these ideas. Apart from supporting intensional type analysis, typepreserving translations make it possible for the compiler to check its own integrity by type checking the results of each major compilation phase. This greatly facilitates team development and long term ....
G. Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
....program evaluation. We can then integrate traditional polymorphic terms by extending our notion of evaluation from e i 7 e 0 i to hf g; e i i 7 hf 0 g; e 0 i i. This approach is similar to the allocation based, explicit type passing semantics for polymorphism found in the dissertation of Morrisett [1995]. Figure 20 contains the necessary adjustments to the language. Note that we have only one form of type variable. In keeping with convention with respect to polymorphism, we allow and to range over type variables in addition to t, s, and u. Types are extended with the form 8 : We add terms ....
Morrisett, G. 1995. Compiling with types. Ph.D. thesis, Carnegie Mellon University. Published as CMU Tech Report number CMU-CS-95-226.
No context found.
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
No context found.
G. Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
No context found.
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
No context found.
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
No context found.
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
No context found.
Greg Morrisett. Compiling with Types. PhD thesis, Carnegie Mellon University, 1995.
No context found.
Greg Morrisett. Compiling with Types. PhD thesis, CMU, December 1995. 41
No context found.
G. Morrisett. Compiling with Types. Ph.D. thesis, Carnegie Mellon University, 1995.
First 50 documents
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