skip to main content
10.1145/322609.322821acmconferencesArticle/Chapter ViewAbstractPublication PagescscConference Proceedingsconference-collections
Article
Free Access

Conjunctional type assignment in programming languages

Authors Info & Claims
Published:01 February 1988Publication History

ABSTRACT

The aim of this work is to widen ML-type polymorphism to a more comprehensive form. Polymorphic type systems as proposed by Milner and implemented in the programming language Standard ML offer rich types, unobtrusive compile time type checking, and type safety in functional languages. However, straightforward application of such a type system to languages can inhibit seriously the characteristic polymorphic nature of an argument occurring twice or more in a function definition. We describe the problems and present a formal type discipline for polymorphic expressions in the context of a simple programming language, and a compile time type-checking algorithm R which enforces the discipline. The algorithm, which is sound and (we believe) complete, introduces a new operator 2229 for handling conjunction types. We also suggest an idea about a unification algorithm for handling type expressions with or without 2229-operators [gho87b].

References

  1. bar85.Barendregt, It. "A Filter Lambda Model And The Completeness Of Type Assignment," The Journal of Symbolic Logic 48(4), December (1985).Google ScholarGoogle Scholar
  2. car83.Cardelli, L. "ML Under Unix," Polymorphism- The ML/LCF/Hope Newsletter 1(3), Department of Computer Science, University of Edinburgh, December (1983).Google ScholarGoogle Scholar
  3. car85.Cardelli, L. "Basic Polymorphic Type Checking," Polymorphism ~ The ML/LCF/Hope Newsletter iI(1), Department of Computer Science, University of Edinburgh, January (1985).Google ScholarGoogle Scholar
  4. cop80.Coppo, M. "An Extended Polymorphic Type System :For Applicative Languages," Lecture Notes in Computer Science 88, Rydzyna, Poland, September (1980). Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. cop83.Coppo, M. "On the Semantics of Polymorphism," Acta {nformatica 20 (1983).Google ScholarGoogle Scholar
  6. dam85.Damns, L. M. M. "Type Assignment in Programming Languages," Ph.D. Thesis, Department of Computer Science, CST-33-85, University of Edinburgh, April (1985).Google ScholarGoogle Scholar
  7. gho86.Ghosh-Roy, R., et al. "Conjunction Types," summary only, Department of Computational Science, University of St Andrews, December (1986).Google ScholarGoogle Scholar
  8. gho87a.Ghosh-Roy, R. "Conjunctional Polymorphlsm," Proceedings of the Tenth Australian Computer Science Conference, Geelong, Australia, February (1987).Google ScholarGoogle Scholar
  9. gho87b.Ghosh-Roy, R. "The Unification Algorithm for Conjunction Polymorphism." Personal communications with Professor Rocca (1987).Google ScholarGoogle Scholar
  10. gor79.Gordon, M. J. C., et al. "Edinburgh LCF," Lecture Notes in Computer Science 78, Springer- Verlag, Berlin (1979).Google ScholarGoogle Scholar
  11. jen87.Jeasen, F. "Type Assignment ia A Polymorphic Type Discipline," Technical Report, Institute of Electronic Systems, Department of Mathematics and Computer Science, Aalborg University Centre, Denmark (1987).Google ScholarGoogle Scholar
  12. lei83.Leivant, D. "Polymorphic Type Inference," Proceedlngs of the Tenth Annual Symposium on Principles of Programming Languages, Austin, Texas, January (1983). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. mil77.Milner, R. "A Theory of Type Polymorphism in Programming," University of Edinburgh, Department of Computer Science, Internal Report CSR-Google ScholarGoogle Scholar
  14. rob65.Robinson, J.A. "A Machine Oriented Logic Based on The Resolution Principle," Journal o{ The Association/'or Computing Machinery 12 (1965). Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. tur79.Turner, D. A. "A New Implementation Technique for Applicative Languages," Software--Practice and Experience 9, January (1979).Google ScholarGoogle Scholar

Index Terms

  1. Conjunctional type assignment in programming languages

            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
            • Published in

              cover image ACM Conferences
              CSC '88: Proceedings of the 1988 ACM sixteenth annual conference on Computer science
              February 1988
              770 pages
              ISBN:0897912608
              DOI:10.1145/322609

              Copyright © 1988 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 February 1988

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader