skip to main content
article
Free Access

Projective ML

Published:01 January 1992Publication History
Skip Abstract Section

Abstract

We propose a projective lambda calculus as the basis for operations on records. Projections operate on elevations, that is, records with defaults. This calculus extends lambda calculus while keeping its essential properties. We build projective ML from this calculus by adding the ML Let typing rule to the simply typed projective calculus. We show that projective ML possesses the subject reduction property, which means that well-typed programs can be reduced safely. Elevations are practical data structures that can be compiled efficiently. Moreover, standard records are difinable in terms of projections.

References

  1. Car84 Luca Cardelli. A semantics of multiple inheritance. In Semantics of Data Types, volume 173 of Lecture Notes in Computer Science, pages 51-68. Springer Verlag, 1984. Also in Information and Computation, 1988. Google ScholarGoogle ScholarCross RefCross Ref
  2. Car91 Luca Cardelli. Extensible records in a pure calculus of subtyping. Private Communication, 1991.Google ScholarGoogle Scholar
  3. CG92 M. Coppo and P. Giannini. A complete type inference algorithm for simple intersection types. In Proceedings of European Symposium On Programming, volume 582 of Lecture Notes in Computer Science. Springer Verlag, 1992.Google ScholarGoogle ScholarCross RefCross Ref
  4. CM89 Luca Cardelli and John C. Mitchell. Operations on records, in Fifth International Conference on Mathematical Foundations of Programming Semantics, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cop80 Mario Coppo. An extended polymorphic type system for applicative languages. In MFCS '80, volume 88 of Lecture Notes in Computer Science, pages 194-204. Springer Verlag, 1980. Google ScholarGoogle Scholar
  6. HP90a Robert W. Harper and Benjamin C. Pierce. Extensible records without subsumption. Technical Report CMU-CS-90-102, Carnegie Mellon University, Pittsburg, PensyIvania, February 1990.Google ScholarGoogle Scholar
  7. HP90b Robert W. Harper and Benjamin C. Pierce. A record calculus based on symmetric concatenation. Technical Report CMU-CS-90- 157~ Carnegie Mellon University, Pittsburg, Pensylvania, February 1990.Google ScholarGoogle Scholar
  8. JM88 Lalita A. Jategaonkar and John C. Mitchell. ML with extended pattern matching and subtypes. In Proceed,ngs of the 1988 Conference on LISP and Functional Programming, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Kir86 Claude Kirchner. Computing unification algorithms. In Proceeding of the first symposium on Logic In Computer Science, pages 206-216, Boston (USA), 1986.Google ScholarGoogle Scholar
  10. KJ90 Claude Kirchner and Jean-Pierre Jouannaud. Solving equations in abstract algebras: a rule-based survey of unification. Research Report 561, Universit~ de Paris Sud, Orsay, France, April 1990.Google ScholarGoogle Scholar
  11. KK89 Claude Kirchner and Franqois Klay. Syntactic theories and unification. CRIN k iNRIA Loraine, Nancy (France), 1989.Google ScholarGoogle Scholar
  12. Ler90 Xavier Leroy. The ZINC experiment: an economical implementation of the ML language. Technical Report 117, INRIA-Rocquencourt, 1990.Google ScholarGoogle Scholar
  13. MM82 Alberto Martelli and Ugo Montanari. An efficient unification algorithm. ACM Transactions on Programming Languages and Systems, 4(2):258-282, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. OB88 Atsushi Ohori and Peter Buneman. Type inference in a database langage. In A CM Conference on LISP and Functzonal Programmzng, pages 174-183, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Oho90 Atsushi Ohori. Extending ML poIymorphism to record structure. Technical report, University of Glasgow, 1990.Google ScholarGoogle Scholar
  16. Pie91 Benjamin C. Pierce. Programming with intersection types, union types, and polymorphism. Technical Report CMU-CS-91-106, Carnegie Mellon University, Pittsburg, Pensylvania, February 1991.Google ScholarGoogle Scholar
  17. Rém89 Didier R~my. Records and variants as a natural extension of ML. In Sixteenth Annual Symposium on Principles Of Programming Languages, 1989.Google ScholarGoogle Scholar
  18. Rém90 Didier R~my. Alg~brcs Touffues. Application au Typage Polymorphe des Obyccts Enreg. zstrcmcnts dans los Langages Fonctionncls. Thse de doctorat, Universit~ dc Paris 7, 1990.Google ScholarGoogle Scholar
  19. Rém91 Didier R~my. Type inference for records in a natural extension of ML. Technical Report 1431, Inria-Rocquencourt, May 1991. Also in {R~rn90}, chapter 4.Google ScholarGoogle Scholar
  20. Rém92a Didier R~my. Efficient representation of extensible records. In Proceedings of the 1992 ML workshop, 1992.Google ScholarGoogle Scholar
  21. Rém92b Didier R~my. Projective ML. Technical report, BP 105, F-78 153 Le Cha.qnay Codex, BP 105, F-78 153 Le Chesnay Cedex, 1992. To appear.Google ScholarGoogle Scholar
  22. Rém92c Didier Rdmy. Syntactic theories and the algebra of record terms. Technical report, BP 105, F-78 153 Le Chesnay Cedex, BP 105, F- 78 153 Le Chesnay Cedex, 1992. To appear. Also in {R~m90}, chapter 2.Google ScholarGoogle Scholar
  23. Rém92d Didier R~my. Typing record concatenation for free. In Nineteenth Annual Symposium on Principles Of Programming Languages, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Wan87 Mitchell Wand. Complete type inference for simple objects. In Second Symposium on Logic in Computer Science, 1987.Google ScholarGoogle Scholar
  25. Wan89 Mitchell Wand. Type inference for record concatenation and multiple inheritance. In Fourth Annual Symposium on Logic In Computer Science, pages 92-97, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Projective ML

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM SIGPLAN Lisp Pointers
            ACM SIGPLAN Lisp Pointers  Volume V, Issue 1
            Jan. 1992
            357 pages
            ISSN:1045-3563
            DOI:10.1145/141478
            Issue’s Table of Contents
            • cover image ACM Conferences
              LFP '92: Proceedings of the 1992 ACM conference on LISP and functional programming
              January 1992
              365 pages
              ISBN:0897914813
              DOI:10.1145/141471

            Copyright © 1992 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 January 1992

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader