Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/75277.75284acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Type checking records and variants in a natural extension of ML

Published: 03 January 1989 Publication History

Abstract

Strongly typed languages with records may have inclusion rules so that records with more fields can be used instead of records with less fields. But these rules lead to a global treatment of record types as a special case. We solve this problem by giving an ordinary status to records without any ad hoc assertions, replacing inclusion rules by extra information in record types. With this encoding ML naturally extends its polymorphism to records but any other host language will also transmit its power.

References

[1]
Pierre Weis. "The CAML Reference Manual". INRIA 1987.
[2]
Guy Cousineau and G~rard Huet. "The CAML Primer". INRIA 1987.
[3]
Luca Cardelli. "A Semantics of Multiple Inheritance". In Information and Computation 1988. In Semantics of Data Types, Lecture Notes in Computer Science n. 173, Springer Verlag, 1983.
[4]
Luca Cardelli. "Amber". In Combinatots and Functional Programming Languages, Proceedings of the 13th Summer School of the LITP, Le Val D'Ajol, Vosges, France, May 1985, Lecture Notes in Computer Science n. 242, Spinger Verlag, 1986.
[5]
Luca Cardelli. "Structural Subtyping and the notion of Power Type". In Proceedings of the Fifteenth Annual Symposium on Principles Of Programming Languages, 1988.
[6]
Mario Coppo. "An Extended Polymorphic Type System for Applicative Languages", in Proceedings of MFCS '80, Lectures Notes in Computer Science n. 88, Springer Verlag, pages 194-204.
[7]
Luca Cardelli and Peter Wegner. "On understanding types, data abstraction~ and polymorphism". Computing Surveys, vol. 17(4). 198 .
[8]
Y-C. Fuh and P. Mishra. "Type inference with subtypes". In Proceedings of ESOP '88, Lecture Notes in Computer Science n. 300, Springer Verlag, pages 94- 114, 1988.
[9]
G~rard ttuet. "R~solution d'~quations dans les langages d'ordre 1, 2, ..,~". Th~se de doctorat d'~tat, Universit~ Paris 7, 1976.
[10]
Lalita A. Jategaonkar and John C. Mitchell. "ML with Extended Pattern Matching and Subtypes". In Proceedings of the 1988 Conference on LISP and Functional Programming.
[11]
A.J. Kfoury, J. Tiuryn and P. Urzyczyn. "On The Computational Power of Universally Polymorphic Recursion". In Proceedings of the Third Symposium on Logic In Computer Science, 1988.
[12]
John C. Mitchell. "Coercion and Type Inference". In Proceedings of the Eleventh Annual Symposium on Principles Of Programming Languages, 1984.
[13]
John C. Mitchell. "Polymorphic Type Inference". In Information and Computation, 1988.
[14]
Ryan S tansifer. "Type inference with Subtypes". In Proceedings of the Fifteenth Annual Symposium on Principles of Programming Languages, San Diego, California, 1988.
[15]
Mitchell Wand. "Complete type inference for simple objects". In Proceedings of the Second Symposium on Logic In Computer Science, 1987.
[16]
Mitchell Wand. "Corrigendum: Complete type inference for simple objects". In Proceedings of the Third Symposium on Logic In Computer Science, 1988.

Cited By

View all
  • (2024)Detection of Uncaught Exceptions in Functional Programs by Abstract InterpretationProgramming Languages and Systems10.1007/978-3-031-57267-8_15(391-420)Online publication date: 6-Apr-2024
  • (2023)Structural Subtyping as Parametric PolymorphismProceedings of the ACM on Programming Languages10.1145/36228367:OOPSLA2(1093-1121)Online publication date: 16-Oct-2023
  • (2023)Typing Records, Maps, and StructsProceedings of the ACM on Programming Languages10.1145/36078387:ICFP(215-258)Online publication date: 31-Aug-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '89: Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
January 1989
352 pages
ISBN:0897912942
DOI:10.1145/75277
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 03 January 1989

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

POPL89

Acceptance Rates

POPL '89 Paper Acceptance Rate 30 of 191 submissions, 16%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)127
  • Downloads (Last 6 weeks)18
Reflects downloads up to 25 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Detection of Uncaught Exceptions in Functional Programs by Abstract InterpretationProgramming Languages and Systems10.1007/978-3-031-57267-8_15(391-420)Online publication date: 6-Apr-2024
  • (2023)Structural Subtyping as Parametric PolymorphismProceedings of the ACM on Programming Languages10.1145/36228367:OOPSLA2(1093-1121)Online publication date: 16-Oct-2023
  • (2023)Typing Records, Maps, and StructsProceedings of the ACM on Programming Languages10.1145/36078387:ICFP(215-258)Online publication date: 31-Aug-2023
  • (2023)A Type System for Effect Handlers and Dynamic LabelsProgramming Languages and Systems10.1007/978-3-031-30044-8_9(225-252)Online publication date: 22-Apr-2023
  • (2023)Towards a Language for Defining Reusable Programming Language ComponentsTrends in Functional Programming10.1007/978-3-031-21314-4_2(18-38)Online publication date: 1-Jan-2023
  • (2022)Applicative Intersection TypesProgramming Languages and Systems10.1007/978-3-031-21037-2_8(155-174)Online publication date: 25-Nov-2022
  • (2021)An ML-style Record Calculus with Extensible RecordsElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.351.1351(1-17)Online publication date: 29-Dec-2021
  • (2021)Abstracting gradual typing moving forward: precise and space-efficientProceedings of the ACM on Programming Languages10.1145/34343425:POPL(1-28)Online publication date: 4-Jan-2021
  • (2021)Taming the Merge OperatorJournal of Functional Programming10.1017/S095679682100018631Online publication date: 2-Nov-2021
  • (2019)Optimizing and evaluating transient gradual typingProceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3359619.3359742(28-41)Online publication date: 20-Oct-2019
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media