Understanding and Evolving the ML Module System

Abstract

The ML module system stands as a high-water mark of programming language support for data abstraction. Nevertheless, it is not in a fully evolved state. It is important to come to a clear assessment of the existing design space and consolidate what is meant by "the ML module system" before embarking on such a major extension as recursive modules. In this dissertation I contribute to the understanding and evolution of the ML module system by: (1) developing a unifying account of the ML module system in which existing variants may be understood as subsystems that pick and choose different features, (2) exploring how to extend ML with recursive modules in a way that does not inhibit data abstraction, and (3) incorporating the understanding gained from (1) and (2) into the design of a new, evolved dialect of ML. I formalize the language of part (3) using the framework of Harper and Stone, in which the meanings of "external" ML programs are interpreted by translation into an "internal" type system. In my exploration of the recursive module problem, I also propose a type system for statically detecting whether or not recursive module definitions are "safe" -- that is, whether they can be evaluated without referring to one another prematurely -- thus enabling more efficient compilation of recursive modules. Future work remains, however, with regard to type inference and type system complexity, before my proposal can be feasibly incorporated into ML.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
May 01, 2005
Accession Number
ADA457064

Entities

People

  • Derek Dreyer

Organizations

  • Carnegie Mellon University

Tags

DTIC Thesaurus Topics

  • Algorithms
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Debugging
  • Detection
  • Formal Languages
  • Hash Tables
  • Language
  • Notation
  • Phase Separation
  • Programming Languages
  • Recursive Functions
  • Structural Properties
  • Test And Evaluation
  • Theses

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Software Engineering
  • Systems Analysis and Design

Technology Areas

  • AI & ML
  • AI & ML - Neural Networks
  • Space