skip to main content
10.1145/1159876.1159883acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

A separate compilation extension to standard ML

Published:16 September 2006Publication History

ABSTRACT

We present an extension to Standard ML, called SMLSC, to support separate compilation. The system gives meaning to individual program fragments, called units. Units may depend on one another in a way specified by the programmer. A dependency may be mediated by an interface (the type of a unit); if so, the units can be compiled separately. Otherwise, they must be compiled in sequence. We also propose a methodology for programming in SMLSC that reflects code development practice and avoids syntactic repetition of interfaces. The language is given a formal semantics, and we argue that this semantics is implementable in a variety of compilers.

References

  1. Rolf Adams, Walter Tichy, and Annette Weinert. The cost of selective recompilation and environment processing. ACM Transactions on Software Engineering and Methodology, 3(1):3--28, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Matthias Blume. Dependency analysis for Standard ML. ACM Transactions on Programming Languages and Systems, 21(4):790--812, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Matthias Blume. CM: The SML/NJ compilation and library manager (for SML/NJ version 110.40 and later) user manual, 2002. http://www.smlnj.org/doc/CM/new.pdf.Google ScholarGoogle Scholar
  4. Matthias Blume and Andrew W. Appel. Hierarchical modularity. ACM Transactions on Programming Languages and Systems, 21(4):813--847, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Luca Cardelli. Program fragments, linking, and modularization. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 266--277. ACM Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Henry Cejtin, Matthew Fluet, Suresh Jagannathan, and Stephen Weeks. Formal specification of the ML Basis system, January 2005. http://mlton.org/MLBasis.Google ScholarGoogle Scholar
  7. Martin Elsman. Program Modules, Separate Compilation, and Intermodule Optimisation. PhD thesis, Department of Computer Science, University of Copenhagen, January 1999.Google ScholarGoogle Scholar
  8. Neal Glew and Greg Morrisett. Type-safe linking and modular assembly language. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 250--261. ACM Press, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Robert Harper, Peter Lee, Frank Pfenning, and Eugene Rollins. Incremental recompilation for Standard ML of New Jersey. Technical Report CMU-CS-94-116, School of Computer Science, Carnegie Mellon University, February 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Robert Harper and Mark Lillibridge. A type-theoretic approach to higher-order modules with sharing. In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 123--137. ACM Press, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Robert Harper and Benjamin C. Pierce. Design considerations for ML-style module systems. In Benjamin C. Pierce, editor, Advanced Topics in Types and Programming Languages, chapter 8, pages 293--346. MIT Press, 2005.Google ScholarGoogle Scholar
  12. Robert Harper and Christopher Stone. An interpretation of Standard ML in type theory. Technical Report CMU-CS-97-147, School of Computer Science, Carnegie Mellon University, June 1997.Google ScholarGoogle Scholar
  13. Robert Harper and Christopher Stone. A type-theoretic interpretation of Standard ML. In Gordon Plotkin, Colin Stirling, and Mads Tofte, editors, Proof, Language, and Interaction: Essays in Honour of Robin Milner. MIT Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Trevor Jim. What are principal typings and what are they good for? In Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM Press, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Xavier Leroy, Damien Doligez, Jacques Garrigue, Didier Rémy, and Jérôme Vouillon. The Objective Caml system release 3.09: Documentation and user's manual, 2005. http://caml.inria.fr/pub/docs/manual-ocaml/index.html.Google ScholarGoogle Scholar
  16. Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. The Definition of Standard ML (Revised). MIT Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. MLKit web site. http://www.itu.dk/research/mlkit/index.php/Main_Page.Google ScholarGoogle Scholar
  18. MLton web site. http://mlton.org/.Google ScholarGoogle Scholar
  19. Greg Morrisett, David Walker, Karl Crary, and Neal Glew. From system F to typed assembly language. ACM Transactions on Programming Languages and Systems, 21(3):527--568, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Sergei Romanenko, Claudio Russo, and Peter Sestoft. Moscow ML owner's manual version 2.00, June 2000. http://www.dina.kvl.dk/~sestoft/mosml/manual.pdf.Google ScholarGoogle Scholar
  21. David Swasey, Tom Murphy, VII, Karl Crary, and Robert Harper. A separate compilation extension to Standard ML (extended technical report). Technical Report CMU-CS-06-133, School of Computer Science, Carnegie Mellon University, 2006.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. A separate compilation extension to standard 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
      • Published in

        cover image ACM Conferences
        ML '06: Proceedings of the 2006 workshop on ML
        September 2006
        102 pages
        ISBN:1595934839
        DOI:10.1145/1159876

        Copyright © 2006 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: 16 September 2006

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        Overall Acceptance Rate6of11submissions,55%

        Upcoming Conference

        ICFP '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader