An Expressive Language of Signatures
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.
Full paper
The paper is available as
US Letter PostScript (388K) and
US Letter PDF (246K).
BibTeX Entry
@inproceedings{1086371,
author = {Norman Ramsey and Kathleen Fisher and Paul Govereau},
title = {An expressive language of signatures},
booktitle = {ICFP '05: Proceedings of the tenth ACM SIGPLAN
international conference on Functional programming},
year = 2005,
isbn = {1-59593-064-7},
pages = {27--40},
location = {Tallinn, Estonia},
doi = {http://doi.acm.org/10.1145/1086365.1086371},
publisher = {ACM Press},
address = {New York, NY, USA},
}