Hostname: page-component-8448b6f56d-c47g7 Total loading time: 0 Render date: 2024-04-23T15:05:36.564Z Has data issue: false hasContentIssue false

A syntactic theory of type generativity and sharing

Published online by Cambridge University Press:  07 November 2008

Xavier Leroy
Affiliation:
INRIA Rocquencourt, B.P. 105, 78153 Le Chesnay, France
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

This paper presents a purely syntactic account of type generativity and sharing – two key mechanisms in the SML module system – and shows its equivalence with the traditional stamp-based description of these mechanisms. This syntactic description recasts the SML module system in a more abstract, type-theoretic framework.

Type
Articles
Copyright
Copyright © Cambridge University Press 1996

References

Aponte, M.-V. (1993) Extending record typing to type parametric modules with sharing. 20th symposium Principles of Programming Languages, pp. 465478. ACM Press.CrossRefGoogle Scholar
Cardelli, L. (1989)Typeful programming. In Neuhold, E. J. and Paul, M., editors, Formal Description of Programming Concepts, pp. 431507. Springer-Verlag.Google Scholar
Cardelli, L. and Leroy, X. (1990) Abstract types and the dot notation. In Broy, M. and Jones, C. B., editors, aProceedings IFIP TC2 Working Conference on Programming Concepts and Methods, pp. 479504. North-Holland. (Also available as research report 56, DEC Systems Research Center.)Google Scholar
Cardelli, L. and MacQueen, D. B. (1988) Persistence and type abstraction. In Atkinson, M. P., Buneman, P. and Morrison, R., editors, Data Types and Persistence. Springer-Verlag.Google Scholar
Cardelli, L. and Wegner, P. (1985) On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4): 471522.CrossRefGoogle Scholar
Gran, G. (1995) An error in rule 55 of the definition of Standard ML. Personal communication, 06.Google Scholar
Harper, R. and Lillibridge, M. (1994) A type-theoretic approach to higher-order modules with sharing. 21st symposium Principles of Programming Languages, pp. 123137. ACM Press.CrossRefGoogle Scholar
Harper, R., Milner, R. and Tofte, M. (1987) A type discipline for program modules. In TAPSOFT 87: Lecture Notes in Computer Science 250, pp. 308319. Springer-Verlag.CrossRefGoogle Scholar
Harper, R. and Mitchell, J. C. (1993) On the type structure of Standard ML. ACM Trans. Programming Languages and Systems, 15(2): 211252.CrossRefGoogle Scholar
Harper, R., Mitchell, J. C. and Moggi, E. (1990). Higher-order modules and the phase distinction. 17th symposium Principles of Programming Languages, pp. 341354. ACM Press.CrossRefGoogle Scholar
Leroy, X. (1994) Manifest types, modules, and separate compilation. 21st symposium Principles of Programming Languages, pp. 109122. ACM Press.CrossRefGoogle Scholar
Leroy, X. (1995) Applicative functors and fully transparent higher-order modules. 22nd symposium Principles of Programming Languages, pp. 142153. ACM Press.CrossRefGoogle Scholar
Liskov, B. and Guttag, J. (1986) Abstraction and Specification in Program Development. MIT Press.Google Scholar
MacQueen, D. B. (1984) Modules for Standard ML. In Lisp and Functional Programming 1984, pp. 198207. ACM Press.Google Scholar
MacQueen, D. B. (1986) Using dependent types to express modular structure. 13th symposium Principles of Programming Languages, pp. 277286. ACM Press.CrossRefGoogle Scholar
MacQueen, D. B. and Tofte, M. (1994) A semantics for higher-order functors. In Sannella, D., editor, Programming Languages and Systems – ESOP '94: Lecture Notes in Computer Science 788, pp. 409423. Springer-Verlag.CrossRefGoogle Scholar
Milner, R. and Tofte, M. (1991) Commentary on Standard ML. MIT Press.Google Scholar
Milner, R., Tofte, M. and Harper, R. (1990) The definition of Standard ML. MIT Press.Google Scholar
Mitchell, J. C. and Plotkin, G. D. (1988) Abstract types have existential type. ACM Trans. Programming Languages and Systems, 10(3): 470502.CrossRefGoogle Scholar
Russo, C. (1995) Generativity of names in the static semantics of Standard ML. Personal communication, 02.Google Scholar
Sabry, A. and Felleisen, M. (1992) Reasoning about programs in continuation-passing style. In Lisp and Functional Programming 1992, pp. 288298.CrossRefGoogle Scholar
Tofte, M. (1988) Operational semantics and polymorphic type inference. PhD thesis CST-52-88, University of Edinburgh.Google Scholar
Tofte, M. (1992) Principal signatures for higher-order program modules. 19th symposium Principles of Programming Languages, pp. 189199. ACM Press.CrossRefGoogle Scholar
Wirth, N. (1983) Programming in Modula-2. Springer-Verlag.CrossRefGoogle Scholar
Submit a response

Discussions

No Discussions have been published for this article.