An expressive language of signatures

  • Authors:
  • Norman Ramsey;Kathleen Fisher;Paul Govereau

  • Affiliations:
  • Division of Engineering and Applied Sciences, Harvard University;AT&T Labs Research;Division of Engineering and Applied Sciences, Harvard University

  • Venue:
  • Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Current languages allow a programmer to describe an interface only by enumerating its parts, possibly including other interfaces wholesale. Such languages cannot express relationships between interfaces, yet when independently developed software components are combined into a larger system, significant relationships arise.To address this shortcoming, we define, as a conservative extension of ML, a language for manipulating interfaces. Our language includes operations for adding, renaming, and removing components; for changing the type associated with a value; for making manifest types abstract and vice versa; and for combining interfaces. These operations can express useful relationships among interfaces. We have defined a formal semantics in which an interface denotes a group of four sets; we show how these sets determine a subtyping relation, and we sketch the elaboration of an interface into its denotation.