Types For Modules
dc.contributor.advisor
Sannella, Donald
en
dc.contributor.advisor
Goguen, Healfdene
en
dc.contributor.author
Russo , Claudio V
en
dc.contributor.sponsor
UK SERC
en
dc.date.accessioned
2004-03-03T09:57:04Z
dc.date.available
2004-03-03T09:57:04Z
dc.date.issued
1998-07
dc.description.abstract
The programming language Standard ML is an amalgam of two, largely orthogonal, languages. The Core language expresses details of algorithms and data structures. The Modules language expresses the modular architecture of a software system. Both languages are statically typed, with their static and dynamic semantics specified by a formal definition.
Over the past decade, Standard ML Modules has been the source of inspiration for much research into the type-theoretic foundations of modules languages. Despite these efforts, a proper type-theoretic understanding of its static semantics has remained elusive. In this thesis, we use Type Theory as a guideline to reformulate the unconventional static semantics of Modules, providing a basis for useful extensions to the Modules language.
Our starting point is a stylised presentation of the existing static semantics of Modules, parameterised by an arbitrary Core language. We claim that the type-theoretic concepts underlying Modules are type parameterisation, type quantification and subtyping. We substantiate this claim by giving a provably equivalent semantics with an alternative, more type-theoretic presentation. In particular, we show that the notion of type generativity corresponds to existential quantification over types. In contrast to previous accounts, our analysis does not involve first-order dependent types.
Our first extension generalises Modules to higher-order, allowing modules to take parameterised modules as arguments, and return them as results. We go beyond previous proposals for higher-order Modules by supporting a notion of type generativity. We give a sound and complete algorithm for type-checking higher-order Modules. Our second extension permits modules to be treated as first-class citizens of an ML-like Core language, greatly extending the range of computations on modules. Each extension arises from a natural generalisation of our type-theoretic semantics.
This thesis also addresses two pragmatic concerns. First, we propose a simple approach to the separate compilation of Modules, which is adequate in practice but has theoretical limitations. We suggest a modified syntax and semantics that alleviates these limitations. Second, we study the type inference problem posed by uniting our extensions to higher-order and first-class modules with an implicitly-typed, ML-like Core language. We present a hybrid type inference algorithm that integrates the classical algorithm for ML with the type-checking algorithm for Modules.
en
dc.format.extent
1182420 bytes
en
dc.format.extent
2347173 bytes
en
dc.format.extent
1862239 bytes
en
dc.format.mimetype
application/x-dvi
en
dc.format.mimetype
application/pdf
en
dc.format.mimetype
application/postscript
en
dc.identifier.uri
http://hdl.handle.net/1842/385
dc.language.iso
en
dc.publisher
University of Edinburgh. College of Science and Engineering. School of Informatics.
en
dc.title
Types For Modules
en
dc.type
Thesis or Dissertation
en
dc.type.qualificationlevel
Doctoral
en
dc.type.qualificationname
PhD Doctor of Philosophy
en
Files
Original bundle
1 - 3 of 3
- Name:
- ECS-LFCS-98-389.dvi
- Size:
- 1.13 MB
- Format:
- TeX dvi format
- Description:
- LaTeX DVI File
- Name:
- ECS-LFCS-98-389.pdf
- Size:
- 2.24 MB
- Format:
- Adobe Portable Document Format
- Description:
- Adobe PDF
- Name:
- ECS-LFCS-98-389.ps
- Size:
- 1.78 MB
- Format:
- Postscript Files
- Description:
- PostScript File
This item appears in the following Collection(s)

