• Documents
  • Authors
  • Tables
  • Log in
  • Sign up
  • MetaCart
  • DMCA
  • Donate

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

A type-theoretic approach to higherorder modules with sharing. (1994)

by R Harper, M Lillibridge
Venue:In POPL,
Add To MetaCart

Tools

Sorted by:
Results 1 - 10 of 267
Next 10 →

Pict: A programming language based on the pi-calculus

by Benjamin C. Pierce, David N. Turner - PROOF, LANGUAGE AND INTERACTION: ESSAYS IN HONOUR OF ROBIN MILNER , 1997
"... The π-calculus offers an attractive basis for concurrent programming. It is small, elegant, and well studied, and supports (via simple encodings) a wide range of high-level constructs including data structures, higher-order functional programming, concurrent control structures, and objects. Moreover ..."
Abstract - Cited by 279 (9 self) - Add to MetaCart
The π-calculus offers an attractive basis for concurrent programming. It is small, elegant, and well studied, and supports (via simple encodings) a wide range of high-level constructs including data structures, higher-order functional programming, concurrent control structures, and objects. Moreover, familiar type systems for the -calculus have direct counterparts in the π-calculus, yielding strong, static typing for a high-level language using the π-calculus as its core. This paper describes Pict, a strongly-typed concurrent programming language constructed in terms of an explicitly-typed-calculus core language.
(Show Context)

Citation Context

...vel language. For instance, we hope to extend Pict's treatment of existential types to account for type sharing (using techniques similar to those proposed by Leroy [Ler95] and Harper and Lillibridge =-=[HL94]-=-). Acknowledgements Robin Milner's past and present work on programming languages, concurrency, and the -calculus in particular is very strongly in the background of this project, and conversations wi...

Dynamic Software Updating

by Michael Hicks , 2001
"... ..."
Abstract - Cited by 232 (34 self) - Add to MetaCart
Abstract not found

TIL: A Type-Directed Optimizing Compiler for ML

by David Tarditi , Greg Morrisett, Perry Cheng, Chris Stone, Robert Harper, Peter Lee - IN ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION , 1995
"... We describe a new compiler for Standard ML called TIL, that is based on four technologies: intensional polymorphism, tag-free garbage collection, conventional functional language optimization, and loop optimization. We use intensional polymorphism and tag-free garbage collection to provide specializ ..."
Abstract - Cited by 227 (36 self) - Add to MetaCart
We describe a new compiler for Standard ML called TIL, that is based on four technologies: intensional polymorphism, tag-free garbage collection, conventional functional language optimization, and loop optimization. We use intensional polymorphism and tag-free garbage collection to provide specialized representations, even though SML is a polymorphic language. We use conventional functional language optimization to reduce the cost of intensional polymorphism, and loop optimization to generate good code for recursive functions. We present an example of TIL compiling an SML function to machine code, and compare the performance of TIL code against that of a widely used compiler, Standard ML of New Jersey.
(Show Context)

Citation Context

... an explicit list of imported modules and their signatures. Imported signatures may include transparent definitions of types defined in other modules; hence TIL supports a limited form of translucent =-=[22]-=- or manifest types [29]. Currently, the mapping to Lambda does not handle signatures, nested structures, or functors. In principle, however, all of these constructs are supported by TIL's intermediate...

Manifest Types, Modules, and Separate Compilation

by Xavier Leroy , 1994
"... This paper presents a variant of the SML module system that introduces a strict distinction between abstract types and manifest types (types whose definitions are part of the module specification), while retaining most of the expressive power of the SML module system. The resulting module system pro ..."
Abstract - Cited by 215 (7 self) - Add to MetaCart
This paper presents a variant of the SML module system that introduces a strict distinction between abstract types and manifest types (types whose definitions are part of the module specification), while retaining most of the expressive power of the SML module system. The resulting module system provides much better support for separate compilation.
(Show Context)

Citation Context

... way, signatures become complete module specications with respect to typing, making separate compilation feasible while retaining the expressiveness of the SML module system. (Harper and Lillibridge [=-=10]-=- have investigated similar ideas independently.) The two components of this approach|manifest types and opaque signatures|have already been proposed as extensions to the SML module system: type abbrev...

Refinement types for ML

by Tim Freeman - , 1994
"... ..."
Abstract - Cited by 206 (11 self) - Add to MetaCart
Abstract not found

Units: Cool Modules for HOT Languages

by Matthew Flatt, Matthias Felleisen , 1998
"... A module system ought to enable assembly-line programming using separate compilation and an expressive linking language. Separate compilation allows programmers to develop parts of a program independently. A linking language gives programmers precise control over the assembly of parts into a whole. ..."
Abstract - Cited by 189 (29 self) - Add to MetaCart
A module system ought to enable assembly-line programming using separate compilation and an expressive linking language. Separate compilation allows programmers to develop parts of a program independently. A linking language gives programmers precise control over the assembly of parts into a whole. This paper presents models of program units, MzScheme's module language for assembly-line programming. Units support separate compilation, independent module reuse, cyclic dependencies, hierarchical structuring, and dynamic linking. The models explain how to integrate units with untyped and typed languages such as Scheme and ML.
(Show Context)

Citation Context

...lear. In the following subsections, we briefly discuss each of these concepts. 5.1 Exposing Type Information The ML module system allows signatures that reveal some information about an exported type =-=[12, 20]-=-. The partially exposed types (or translucent types) are used for propagating type dependencies in a way that allows type sharing, but they are also useful for assigning a name to a complex type that ...

Program Fragments, Linking, and Modularization

by Luca Cardelli - IN ACM SYMP. ON PRINCIPLES OF PROGRAMMING LANGUAGES , 1997
"... Module mechanisms have received considerable theoretical attention, but the associated concepts of separate compilation and linking have not been emphasized. Anomalous module systems have emerged in functional and object-oriented programming where software components are not separately typecheck ..."
Abstract - Cited by 154 (0 self) - Add to MetaCart
Module mechanisms have received considerable theoretical attention, but the associated concepts of separate compilation and linking have not been emphasized. Anomalous module systems have emerged in functional and object-oriented programming where software components are not separately typecheckable and compilable. In this paper we provide a context where linking can be studied, and separate compilability can be formally stated and checked. We propose a framework where each module is separately compiled to a self-contained entity called a linkset ; we show that separately compiled, compatible modules can be safely linked together.
(Show Context)

Citation Context

...ions in interfaces. However, this feature has surprisingly complex interactions with the type theory of modules, and even advanced module systems like Standard ML’s did not consider it until recently =-=[11, 13]-=-. Day 3: User program compilation. A user module MUsr is written and compiled. It is checked to be compatible with IUsr and ILib. The compilation of MUsr produces a linkable image LUsr. No running pro...

Typed closure conversion

by Yasuhiko Minamide, Greg Morrisett, Robert Harper - 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 official policies, either expressed or implied, of the Advanced Research Projects Agency or the U.S. Government. Any opinions, findings, and conclusions or recommendations expr ..."
Abstract - Cited by 150 (18 self) - Add to MetaCart
The views and conclusions contained in this document are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the Advanced Research Projects Agency or the U.S. Government. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the We study the typing properties of closure conversion for simply-typed and polymorphic-calculi. Unlike most accounts of closure conversion, which only treat the untyped-calculus, we translate well-typed source programs to well-typed target programs. This allows later compiler phases to take advantage of types for representation analysis and tag-free garbage collection, and it facilitates correctness proofs. Our account of closure conversion for the simply-typed 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.
(Show Context)

Citation Context

... polymorphic case, we must use a more sophisticated type discipline in order to track critical type sharing relationships within the closure. To this end, we exploit a variant of the translucent type =-=[11] (or manifest type [-=-19]) formalism. Our "closures as objects" model provides an interesting counterpoint to the more familiar "objects as closures" proposal introduced by Reddy [28]. We prove the corr...

An Overview of the Scala Programming Language

by Martin Odersky, Stéphane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, Matthias Zenger, et al. , 2004
"... Scala provides a fusion between object-oriented and functional programming in a statically typed programming language. It is aimed at the construction of components and component systems. This paper gives an overview of the Scala language for readers who are familar with programming methods and prog ..."
Abstract - Cited by 146 (8 self) - Add to MetaCart
Scala provides a fusion between object-oriented and functional programming in a statically typed programming language. It is aimed at the construction of components and component systems. This paper gives an overview of the Scala language for readers who are familar with programming methods and programming language design.

Separate Compilation for Standard ML

by Andrew W. Appel, David B. Macqueen , 1994
"... Languages that support abstraction and modular structure, such as Standard ML, Modula, Ada, and (more or less) C++, may have deeply nested dependency hierarchies among source files. In ML the problem is particularly severe because ML's powerful parameterized module (functor) facility entails de ..."
Abstract - Cited by 142 (21 self) - Add to MetaCart
Languages that support abstraction and modular structure, such as Standard ML, Modula, Ada, and (more or less) C++, may have deeply nested dependency hierarchies among source files. In ML the problem is particularly severe because ML's powerful parameterized module (functor) facility entails dependencies among implementation modules, not just among interfaces.
Powered by: Apache Solr
  • About CiteSeerX
  • Submit and Index Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2019 The Pennsylvania State University