Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

On the type structure of standard ML

Published: 01 April 1993 Publication History
  • Get Citation Alerts
  • First page of PDF

    References

    [1]
    AMADIO, R., BRUCE, K., AND LONGO, G. The finitary projection model for second order lambda calculus and solutions to higher order domain equations. In Proceedings of the IEEE OEvmpostum on Logic in Computer Science, (1986), 122-130.
    [2]
    BARENDREG, H.P. The Lambda Calculus: frs Syntax and Semantics. 2nd ed. North-Holland, Amsterdam, 1984.
    [3]
    BREAZU-TANNEN, V., COQUAND, T., GUNTER, C. A., AND SCEDROV, A. Inheritance as explicit coercion. Inf. Comput. 93, I (1991), 172 221.
    [4]
    BRUCE, K., AND MEYER, A. A completeness theorem for second-order polymorphic lambda calculus. In Proceedings of the International Symposium on Semantics of Data Types (Sophia-Antipolis, France) Springer Berlin, LNCS 173, 1984, 131-144.
    [5]
    BRUCE, K. B., MEYER, A. R., AND MITCHELL, J. C. The semantics of second-order lambda calculus. Inf. Comput. 85 1 (1990), 76-134. Reprinted in Logzcal Foundations of Functional Programming, G. Huet, Ed., Addison-Wesley, Reading, Mass., 1990, 213 273.
    [6]
    CARDELLI, L. A semantics of multiple inheritance, lnf. Comput. 76 (1988), 138 164. Special issue devoted to Symposium on Semantics of Data Types (Sophia-Antipolis, France, 1984).
    [7]
    CARDELLI, L. Structural subtyping and the notion of powertype. In Proceedings of the 15th ACM Symposium Principles of Programming Languages (1988), 70-79.
    [8]
    CARDELLI, L., AND WEGNER, P. On understanding types, data abstraction, and polymorphism, ACM Comput. Surv. 17, 4 (1985), 471-522.
    [9]
    CARTWRIGHT, R. Types as intervals. In Proceedings of the 12th ACM Symposium on Prtnciples of Programming Languages (Jan. 1985), 22-36.
    [10]
    CONSTABLE, R. L., ET AL. Implementing mathematics with the Nuprl proof development system. In Graduate Texts in Mathematics Vol. 37. Prentice-Hall, Englewood Cliffs, N.J., 1986.
    [11]
    COQUAND, T. An analysis of Girard's paladox. In Proceedings of the IEEE Symposium on Logic in Computer Science (June 1986), 227 236.
    [12]
    COQUAND, T., AND HUET, G. The calculus of constructions. Inf. Comput. 76, 2/3 (1988), 95-120.
    [13]
    DAMAS, L., AND MILNER, R. Principal type schemes for functional programs. In Proceedmgs of the 9th ACM Symposium on Prtnciples of Prograramtng Languages (1982), 207 212.
    [14]
    DE BRUIJN, N. G. A survey of the project Automath. In Te H B. Curry: Essays on Combmatory Logtc, Lambda Calculus and FormaDsm. Academic Press, New York, 1980, 579 607.
    [15]
    GIRARD, J.-Y. Interpretation fonctlonelle et eliminatlon des coupures de l'arithmetique d'ordre superieur. These D'Etat, Umversite Paris VII, 1972.
    [16]
    GmARD, J-Y. Une extension de l'interpretation de Godel ~ l'analyse, et son application ~ l'~hmmation des coupures dans l'analyse et la th~orie des types. In 2nd Scandmavmn Logtc Syrnposntm, J. E. Fenstad, Ed., (North-Holland, Amsterdam, 1971), 63 92.
    [17]
    GORDON, M. J., MmN~~, R., AND WADSWORTH C. P. Edznburgh LCF. LNCS 78, Springer, Berhn, 1979
    [18]
    HARPER, R., HONSELL, F., AND PLOTKIN, G. A framework for defining logics. In Proceedings of the IEEE Sympostum on Log~c zn Computer Sctence (June 1987), 194-204. Te appear m J. ACM.
    [19]
    HARPER, R., MAcQUEEN, D. B., AND MILNER, R Standard ML Tech. Rep. ECS-LFCS-8"-2, Lab. for Foundations of Computer Science, Univ. of Edinburgh, Mat. 1986.
    [20]
    HARPER, R, MILNER, R., AND TOFTE, M. A type dlsciphne for program modules. In TAP- SOFT 87, LNCS 250, Springer, Berlin, 1987
    [21]
    H^RPER, R., MIT~HELL, J C, AND MOGGI, E. Higher-order modules and the phase distinction. In Proceedings of the 17th ACM Symposium on Pnnclples o/Programm~ng Languages (Jan. 1990), 341 354.
    [22]
    HOOK, J., ^NI) How~, D. Impredicative strong existential eqmvalent te type'type. Tech. Rep. TR 86-760, Cornell Univ. 1986
    [23]
    HOWARD, W. The formulas-as-types notion of construction. In Te H. B. Curry: Essays on Combznatorv Logzc, Lambda-Calculus and Formahsm Academic Press, 1980, 479 490.
    [24]
    HOWE, D.J. The computational behavior of Girard's paradox. In Proceedtngs of the IEEE Symposium on Logtc ~n Computer Science (June 1987), 205 214.
    [25]
    K~ELL^K~S, P. C., MAmSON, H G., AND MITCHELL, J. C. Unificatmn and ML type reconstructmn In Computattonal Log~c, Essays zn Honor of Alan Robmson. MIT Press, 1991, 444 478.
    [26]
    KFO~mV, A. J., TIURYN, J., AND URZYCZYN, P. ML typability is Dexptime-complete. In Proceedings of the 15th Colloqlurn on Trees in Algebra and Programmtng. LNCS 431, Springer, 1990, 206-220. Te appear in J ACM. under the title, "An Analyms of ML Typability.'
    [27]
    LEIVANT, D. Polymorphic type inference. In Proceedlrtgs of the lOth ACM OEymposlum on Principles of ProgrammLng Languages (1983), 88-98.
    [28]
    MACQUEEN, D.B. Modules for standard ML. Polymorphlsm 2, 2 (1985), I 35. An earlier version appeared in Proceedings of the 1984 ACM OEyrnposium on Llsp and Functtonal Programrnmg.
    [29]
    MACQUEEN, D.B. Using dependent types te express modular structure. In Procee&ngs of the 13th ACM Symposlura on Prtnctples of Programm~ng Languages (1986), 277-286
    [30]
    MACQUEEN, D., PLOTKIN. G., AND SETHI, R. An ideal model for recurmve polymorphm types. Inf Control 71, 1/2 (1986), 95-130.
    [31]
    MARTIN-L~F, P. An intuitionistic theory of types: Pred~chve part. In H. E. Rose and J. C. Shepherdson, Eds. Logtc Colloqutum, '73, Amsterdam, 1973, North-Holland, 73-118.
    [32]
    M^RTIN-L"F, P. Constructive mathematics and computer progTamming In S~xth International Congress for Logtc, Methodology, and Phdosophy of Science North-Holland, Amsterdam, 1982, 153 175
    [33]
    MARTIN-L~F, P. lntultzomstlc Type Theo~2~. Bibliopolis, Napoh, 1984.
    [34]
    MCCRACKEN, N. An investigation of a programming language with a polymorphm type structure. Ph.D. Thems, Syracuse Univ., 1979.
    [35]
    MEYER, A. R., MITC~t-LL, J. C., MOGGI, E., AND STATMAN, R. Empty types in polymorphic lambda calculus. In Proceedtngs of the 14th ACM Symposntm on Princ~ples of Programmmg Languages (Jan. 1987), 253-262. Reprinted with miner revisions in LogwaI Foundat,ons of Funcaonal Programmmg. G. Huer, Ed, Addison-Wesley, 1990, 273 284.
    [36]
    MEYER, A. R., AND REINHOLD, M.D. Type is nota type. In Proceedings of the 13th ACM Symposium on Princlples of Programming Languages (Jan. 1986), 287-295.
    [37]
    MILNER, R. A theory of type polymorphism in programming. JCSS, 17 (1978), 348-375.
    [38]
    M~LNER, R. The Standard ML core language. Polymorphism 2, 2 (1985), 1-28. An earlier version appeared in Proceedings of the 1984 ACM Symposium on Lisp and Functional Programming.
    [39]
    MILNER, l~., AND TOFTE, M. Commentary on Standard ML. MIT Press, 1991.
    [40]
    MILNER, R., TOFTE, M., AND HARPER, R. The Definition of Standard ML. MIT Press, 1990.
    [41]
    MITCHELL, J.C. A type-inference approach to reduction properties and semantics of polymorphic expressions. In ACM Conference on LISP and Functional Programmtng (Aug. 1986), 308-319. Reprinted with minor revisions in Logical Foundations of Functional Programm~ng, G. Huet, Ed., Addison-Wesley, 1990, 195-212.
    [42]
    MITCHELL, J.C. Polymorphic type inference and containment. Inf. Comput. 76, 2/3 (1988), 211 249. Reprinted in Logical Foundations of Functional Programming, G. Huer, Ed., Addison-Wesley, 1990, 153-194.
    [43]
    MITCHELL, J.C. Representation independence and data abstraction. In Proceedings of the 13th ACM Symposium on Prtnciples of Programm~ng Languoges (Jan. 1986), 263 276.
    [44]
    MITCHELL, J. C. Type systems for programming languages. In Handbook of Theorettcal Computer Science, Volume B, J. van Leeuwen, Ed., North-Holland, Amsterdam, 1990, 365-458.
    [45]
    MITCHELL, J. C., AND MEYER, A.R. Second-order logical relations. In Logics of Programs, LNCS 193, Springer, Berlin, 1985, 225 236.
    [46]
    MITCHELL, J. C., AND MOGG~, E. IG'ipke-style models for typed lambda calculus. Ann. Pure Appl. Logic 51 (1991), 99 124. Preliminary version in Proceedings of the IEEE Symposium on Logic in Computer Science (1987), 303 314.
    [47]
    M~TCHELL, J. C., AND PLOTKIN, G. D. Abstract types have existential types. ACM Trans. Program. Lang. Syst. 10, 3 (1988), 470-502. Preliminary version appeared in Proceedlngs of the 12th ACM Symposium on Princlples of Programming Languages, 1985.
    [48]
    MOGGI, E. A category-theoretic account of progTam modules. Math. Structures Comput. Scz. 1, i (1991), 103-139.
    [49]
    MOGGI, E. Computational lambda calculus and monads. In Proceedings ofthe IEEE Sympostum on Logic in Computer Science (1989), 14-23.
    [50]
    OHORI, A. A simple semantics for ML polymorphism. In Functional Programming and Computer Architecture, 1989, 281-292.
    [51]
    PLOTmN, G.D. Calt-by-name, call-by-value and the lambda calculus. Theor. Comput. Sct. 1 (1975), 125-159.
    [52]
    PLOTKIN, G.D. LCF considered as a progTamming language. Theor. Comput. Scz. 5 (1977), 223 255.
    [53]
    REYNOLDS, J.C. Towards a theory of type structure. In Paris Colloqtum on Programming, LNCS 19. Springer, Berlin, 1974, 408-425.
    [54]
    REYNOLDS, J.C. The essence of Algol. In Algorithmzc Languages, de Bakker and van Vliet, Eds. IFIP, North-Holland, Amsterdam, 1981, 345-372.
    [55]
    REYNOLD, J.C. Types, abstraction, and parametric polymorphism. In Informatzon Processing '83, North-Holland, Amsterdam, 1983, 513-523.
    [56]
    REYNOLDS, J. C. Polymorphism is not set-theoretic. In Proceedings of the Internattonal Symposium on Semantics of Data Types (Sophia-Antirolis, France), LNCS 173, Springer, Berlin, 1984, 145-156.
    [57]
    SCOTT, D. S. Relating theories of the lambda calculus. In To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism. Academic Press, 1980, 403-450.
    [58]
    SEEL~, R. A. G. Locally cartesian closed categories and type theory. Math. Proc. Camb. Phil. Soc. 95 (1984), 33-48.
    [59]
    SEELY, R. A. G. Categorical semantics for higher-order polymorphic lambda calculus. J. Symbolic Logic 52 (1987), 969-989.
    [60]
    STATiVlAN, R. Logical relations and the typed lambda calculu~. Ir~f. Control 65 (1985), 86 97.
    [61]
    STOUG}tTON, A. Fully Abstract Models of Programming Languages. Pitman, London, and WiIey, New York, 1988.
    [62]
    TROELSTRA, M. Mathemat~cal investigation of intuitiomstic arithmetic and analysis. LNM $44~ Springer, Berlin, 1973.
    [63]
    TOFTE, M. Operational semantics and polymorphic type inference. Ph.D. dissertatlon~ Edinburgh Univ, 1988. Avafiable as Edinburgh Univ. Laboratory for Foundatlons of Computer Science Tech Rep. ECS-LFCS-88-54
    [64]
    W~D, M. A types-as-sets semantics for Milner-style polymorphism. In Proceedmgs of the 11th ACM Symposium on Principles o{ Programming Lunguuges (Jan 1984)~ 158-164.

    Cited By

    View all
    • (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)On the semantic expressiveness of recursive typesProceedings of the ACM on Programming Languages10.1145/34343025:POPL(1-29)Online publication date: 4-Jan-2021
    • (2020)Robust eulerian-on-lagrangian rodsACM Transactions on Graphics10.1145/3386569.339248939:4(59:1-59:10)Online publication date: 12-Aug-2020
    • Show More Cited By

    Recommendations

    Reviews

    Pierre Weis

    A framework for a formal description of the type checking and semantics of the core of the Standard ML purely functional language and its module system is presented in this research paper. The formalism is based on an explicitly typed second-order &lgr;-calculus, named XML, which is predicative since types and type schemes are clearly separated into two distinct universes. The type reconstruction algorithm of ML is then considered as a mere translation from implicitly typed terms in ML to explicitly typed XML expressions. Given the semantics of XML, the semantics of ML programs are simply obtained from the semantics of the corresponding XML expressions. Since XML includes general sums and products, ML modules can be expressed by XML expressions: structures and signatures map to general sums, and functors map to general products. Having precisely defined the XML language and the mapping from ML to XML, the authors are able to analyze the implications of extending ML by removing the distinction between monotypes and polytypes (to treat modules as ordinary ML values). They prove that removing this universe distinction while keeping strong sums and general products in the language implies the existence of a type of all types, which implies an undecidable type checking problem and the existence of programs without explicit recursion that do not terminate. The overall idea that implicitly typed ML programs can be considered shorthand for explicitly typed &lgr;-terms has been folklore in the ML community. The authors state this idea precisely for the purely applicative core of ML. Unfortunately, they give up nontrivial features of the ML core language, namely recursiveness, side effects, and exception handling. With these features omitted, ML programs are strongly normalizing, and call-by-value and call-by-name semantics coincide, escaping from the difficulties of the translation from ML polymorphism to second-order &lgr;-terms. Unfortunately, the extension of the formalism to the full ML core language is far from evident, and the paper does not hint at how to do so. Furthermore, the “strong sums” approach used here to modelize the ML module system has not been entirely successful, and other approaches have been proposed (see Leroy [1] or Harper and Lillibridge [2]). This paper presents a nice piece of theory that formalizes the relationship between implicitly typed ML programs and their explicitly typed counterparts. The formalism is powerful enough to take into account the module system (excluding sharing specifications), and it provides a uniform framework to express the semantics of ML. The extension of the formalism to the full ML language would confirm the adequacy of the approach, but this work remains to be done.

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Programming Languages and Systems
    ACM Transactions on Programming Languages and Systems  Volume 15, Issue 2
    April 1993
    155 pages
    ISSN:0164-0925
    EISSN:1558-4593
    DOI:10.1145/169701
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 April 1993
    Published in TOPLAS Volume 15, Issue 2

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)68
    • Downloads (Last 6 weeks)17
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (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)On the semantic expressiveness of recursive typesProceedings of the ACM on Programming Languages10.1145/34343025:POPL(1-29)Online publication date: 4-Jan-2021
    • (2020)Robust eulerian-on-lagrangian rodsACM Transactions on Graphics10.1145/3386569.339248939:4(59:1-59:10)Online publication date: 12-Aug-2020
    • (2020)Robust motion in-betweeningACM Transactions on Graphics10.1145/3386569.339248039:4(60:1-60:12)Online publication date: 12-Aug-2020
    • (2020)The history of Standard MLProceedings of the ACM on Programming Languages10.1145/33863364:HOPL(1-100)Online publication date: 12-Jun-2020
    • (2020)EVL: A Typed Higher-order Functional Language for EventsElectronic Notes in Theoretical Computer Science10.1016/j.entcs.2020.08.002351(3-23)Online publication date: Sep-2020
    • (2019)Dynamic type inference for gradual Hindley–Milner typingProceedings of the ACM on Programming Languages10.1145/32903313:POPL(1-29)Online publication date: 2-Jan-2019
    • (2019)Fully abstract module compilationProceedings of the ACM on Programming Languages10.1145/32903233:POPL(1-29)Online publication date: 2-Jan-2019
    • (2018)1ML – Core and modules unitedJournal of Functional Programming10.1017/S095679681800020528Online publication date: 27-Dec-2018
    • (2017)No value restriction is needed for algebraic effects and handlersJournal of Functional Programming10.1017/S095679681600032027Online publication date: 24-Jan-2017
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media