- 
![[WWW]](moin-www.png) Compiling with Continuations  ( Compiling with Continuations  (![[WWW]](moin-www.png) addall).  ISBN 0521416957.  Andrew W. Appel.  Cambridge University Press, 1992. addall).  ISBN 0521416957.  Andrew W. Appel.  Cambridge University Press, 1992.
- 
Shrinking Lambda Expressions in Linear Time. Andrew Appel and Trevor Jim. JFP, 7(5):515-540, 1997. 
- 
![[WWW]](moin-www.png) Modern Compiler Implementation in ML  ( Modern Compiler Implementation in ML  (![[WWW]](moin-www.png) addall).  ISBN 0521582741  Andrew W. Appel.  Cambridge University Press, 1998. addall).  ISBN 0521582741  Andrew W. Appel.  Cambridge University Press, 1998.
- 
![[WWW]](moin-www.png) Tree Pattern Matching for ML.  Marianne Baudinet, David MacQueen.  1985. Tree Pattern Matching for ML.  Marianne Baudinet, David MacQueen.  1985.
- 
![[WWW]](moin-www.png) Compiling Standard ML to Java Bytecodes.  Nick Benton, Andrew Kennedy, and George Russell.  ICFP 1998. Compiling Standard ML to Java Bytecodes.  Nick Benton, Andrew Kennedy, and George Russell.  ICFP 1998.
- 
![[WWW]](moin-www.png) Interlanguage Working Without Tears: Blending SML with Java.  Nick Benton and Andrew Kennedy.  ICFP 1999. Interlanguage Working Without Tears: Blending SML with Java.  Nick Benton and Andrew Kennedy.  ICFP 1999.
- 
![[WWW]](moin-www.png) Exceptional Syntax.  Nick Benton and Andrew Kennedy.  JFP, 11(4):395-410, 2001. Exceptional Syntax.  Nick Benton and Andrew Kennedy.  JFP, 11(4):395-410, 2001.
- 
![[WWW]](moin-www.png) Embedded Interpreters.  Nick Benton.  JFP, 2005. Embedded Interpreters.  Nick Benton.  JFP, 2005.
- 
![[WWW]](moin-www.png) Adventures in Interoperability: The SML.NET Experience.  Nick Benton, Andrew Kennedy, and Claudio Russo.  PPDP 2004. Adventures in Interoperability: The SML.NET Experience.  Nick Benton, Andrew Kennedy, and Claudio Russo.  PPDP 2004.
- 
![[WWW]](moin-www.png) OO Programming styles in ML.  Bernard Berthomieu.  LAAS Report #2000111, 2000. OO Programming styles in ML.  Bernard Berthomieu.  LAAS Report #2000111, 2000.
- 
![[WWW]](moin-www.png) No-Longer-Foreign: Teaching an ML compiler to speak C "natively".  Matthias Blume.  BABEL 2001. No-Longer-Foreign: Teaching an ML compiler to speak C "natively".  Matthias Blume.  BABEL 2001.
- 
![[WWW]](moin-www.png) Destructors, Finalizers, and Synchronization.  Hans Boehm.  POPL 2003. Destructors, Finalizers, and Synchronization.  Hans Boehm.  POPL 2003.
- 
   Describes the match compiler used in an early version of    SML/NJ.  
            
- 
  Discusses a number of issues in the design of finalizers.  Many   of the design choices are consistent with MLtonFinalizable. 
        
- 
![[WWW]](moin-www.png) Flow-directed Closure Conversion for Typed Languages.  Henry Cejtin, Suresh Jagannathan, and Stephen Weeks.  ESOP 2000. Flow-directed Closure Conversion for Typed Languages.  Henry Cejtin, Suresh Jagannathan, and Stephen Weeks.  ESOP 2000.
- 
  Describes MLton's closure-conversion algorithm, which translates   from its simply-typed higher-order intermediate language to its   simply-typed first-order intermediate language. 
        
- 
![[WWW]](moin-www.png) Functional Unparsing.  Olivier Danvy.  BRICS Technical Report RS 98-12, 1998. Functional Unparsing.  Olivier Danvy.  BRICS Technical Report RS 98-12, 1998.
- 
![[FTP]](moin-ftp.png) Extensional Polymorphism.  Catherin Dubois, Francois Rouaix, and Pierre Weis.  POPL 1995. Extensional Polymorphism.  Catherin Dubois, Francois Rouaix, and Pierre Weis.  POPL 1995.
- 
  An extension of ML that allows the definition of ad-hoc   polymorphic functions by inspecting the type of their argument. 
        
- 
![[WWW]](moin-www.png) Garbage Collection Safety for Region-based Memory Management.  Martin Elsman.   TLDI 2003. Garbage Collection Safety for Region-based Memory Management.  Martin Elsman.   TLDI 2003.
- 
![[WWW]](moin-www.png) Type-Specialized Serialization with Sharing  Martin Elsman.  University of Copenhagen. IT University Technical  Report TR-2004-43, 2004. Type-Specialized Serialization with Sharing  Martin Elsman.  University of Copenhagen. IT University Technical  Report TR-2004-43, 2004.
- 
![[WWW]](moin-www.png) The Little MLer  ( The Little MLer  (![[WWW]](moin-www.png) addall).  ISBN 026256114X.  Matthias Felleisen and Dan Freidman.  The MIT Press, 1998. addall).  ISBN 026256114X.  Matthias Felleisen and Dan Freidman.  The MIT Press, 1998.
- 
![[WWW]](moin-www.png) Kill-Safe Synchronization Abstractions.  Matthew Flatt and Robert Bruce Findler.  PLDI 2004. Kill-Safe Synchronization Abstractions.  Matthew Flatt and Robert Bruce Findler.  PLDI 2004.
- 
![[WWW]](moin-www.png) Contification Using Dominators.  Matthew Fluet and Stephen Weeks.  ICFP 2001. Contification Using Dominators.  Matthew Fluet and Stephen Weeks.  ICFP 2001.
- 
![[WWW]](moin-www.png) Phantom Types and Subtyping.  Matthew Fluet and Riccardo Pucella.  TCS 2002. Phantom Types and Subtyping.  Matthew Fluet and Riccardo Pucella.  TCS 2002.
- 
![[WWW]](moin-www.png) Generic Polymorphism in ML.  J. Furuse.  JFLA 2001. Generic Polymorphism in ML.  J. Furuse.  JFLA 2001.
- 
  Describes contification, a generalization of tail-recursion   elimination that is an optimization operating on MLton's static   single assignment (SSA) intermediate language. 
        
- 
  The formalism behind G'CAML, which has an approach to ad-hoc   polymorphism based on Dubois94, the differences being in   how type checking works an an improved compilation approach for   typecase that does the matching at compile time, not run time. 
        
- 
![[WWW]](moin-www.png) The Standard ML Basis Library.  ( The Standard ML Basis Library.  (![[WWW]](moin-www.png) addall)  ISBN 0521794781.  Emden R. Gansner and John H. Reppy.  Cambridge University Press, 2004. addall)  ISBN 0521794781.  Emden R. Gansner and John H. Reppy.  Cambridge University Press, 2004.
- 
![[WWW]](moin-www.png) Region-based Memory Management in Cyclone.  Dan Grossman, Greg Morrisett, Trevor Jim, Michael Hicks, Yanling  Wang, and James Cheney.   PLDI 2002. Region-based Memory Management in Cyclone.  Dan Grossman, Greg Morrisett, Trevor Jim, Michael Hicks, Yanling  Wang, and James Cheney.   PLDI 2002.
- 
  An introduction and overview of the Basis Library,    followed by a detailed description of each module.  The module   descriptions are also available 
![[WWW]](moin-www.png) online.
online. 
        - 
![[WWW]](moin-www.png) Combining Region Inference and Garbage Collection.  Niels Hallenberg, Martin Elsman, and Mads Tofte.   PLDI 2002. Combining Region Inference and Garbage Collection.  Niels Hallenberg, Martin Elsman, and Mads Tofte.   PLDI 2002.
- 
![[WWW]](moin-www.png) Introduction to Programming using SML  ( Introduction to Programming using SML  (![[WWW]](moin-www.png) addall).  ISBN 0201398206.  Michael R. Hansen, Hans Rischel.  Addison-Wesley, 1999. addall).  ISBN 0201398206.  Michael R. Hansen, Hans Rischel.  Addison-Wesley, 1999.
- 
![[WWW]](moin-www.png) Safe and Flexible Memory Management in Cyclone.  Mike Hicks, Greg Morrisett, Dan Grossman, and Trevor Jim.    University of Maryland Technical Report CS-TR-4514, 2003. Safe and Flexible Memory Management in Cyclone.  Mike Hicks, Greg Morrisett, Dan Grossman, and Trevor Jim.    University of Maryland Technical Report CS-TR-4514, 2003.
- 
![[WWW]](moin-www.png) Garbage Collection: Algorithms for Automatic Memory Management  ( Garbage Collection: Algorithms for Automatic Memory Management  (![[WWW]](moin-www.png) addall).  ISBN 0471941484.  Richard Jones.  John Wiley & Sons, 1999. addall).  ISBN 0471941484.  Richard Jones.  John Wiley & Sons, 1999.
- 
![[WWW]](moin-www.png) Mistakes and ambiguities in the definition of Standard ML.  Stefan Kahrs.  University of Edinburgh LFCS Report ECS-LFCS-93-257, 1993. Mistakes and ambiguities in the definition of Standard ML.  Stefan Kahrs.  University of Edinburgh LFCS Report ECS-LFCS-93-257, 1993.There are also the ![[WWW]](moin-www.png) addenda  published in 1996. addenda  published in 1996.
- 
![[WWW]](moin-www.png) Pickler Combinators.  Andrew Kennedy.  JFP, 14(6): 727-739, 2004. Pickler Combinators.  Andrew Kennedy.  JFP, 14(6): 727-739, 2004.
- 
  Describes a number of problems with the    1990 Definition, many of which were fixed   in the 1997 Definition. 
        
- 
![[WWW]](moin-www.png) Faster Algorithms for Finding Minimal Consistent DFAs.  Kevin Lang. 1999. Faster Algorithms for Finding Minimal Consistent DFAs.  Kevin Lang. 1999.
- 
![[WWW]](moin-www.png) mGTK: An SML binding of Gtk+.  Ken Larsen and Henning Niss.  USENIX Annual Technical Conference, 2004. mGTK: An SML binding of Gtk+.  Ken Larsen and Henning Niss.  USENIX Annual Technical Conference, 2004.
- 
![[WWW]](moin-www.png) The ZINC experiment: an economical implementation of the ML language.  Xavier Leroy.  Technical report 117, INRIA, 1990. The ZINC experiment: an economical implementation of the ML language.  Xavier Leroy.  Technical report 117, INRIA, 1990.
- 
![[WWW]](moin-www.png) Polymorphism by name for references and continuations.  Xavier Leroy.  POPL 1993. Polymorphism by name for references and continuations.  Xavier Leroy.  POPL 1993.
- 
![[WWW]](moin-www.png) MLRISC Annotations.  Allen Leung and Lal George. 1998. MLRISC Annotations.  Allen Leung and Lal George. 1998.
- 
   A detailed explanation of the design and implementation of a    bytecode compiler and interpreter for ML with a machine model aimed    at efficient implementation. 
            
- 
![[WWW]](moin-www.png) Asynchronous exceptions in Haskell.  Simon Marlow, Simon Peyton Jones, Andy Moran and John Reppy.  PLDI 2001. Asynchronous exceptions in Haskell.  Simon Marlow, Simon Peyton Jones, Andy Moran and John Reppy.  PLDI 2001.
- 
![[WWW]](moin-www.png) A Just-In-Time backend for Moscow ML 2.00 in SML.  Bjarke Meier, Kristian Nørgaard.  Masters Thesis, 2003. A Just-In-Time backend for Moscow ML 2.00 in SML.  Bjarke Meier, Kristian Nørgaard.  Masters Thesis, 2003.
- 
![[WWW]](moin-www.png) How ML Evolved.  Robin Milner.  Polymorphism--The ML/LCF/Hope Newsletter, 1983. How ML Evolved.  Robin Milner.  Polymorphism--The ML/LCF/Hope Newsletter, 1983.
- 
![[WWW]](moin-www.png) Commentary on Standard ML ( Commentary on Standard ML (![[WWW]](moin-www.png) online pdf).  ( online pdf).  (![[WWW]](moin-www.png) addall)  ISBN 0262631327.  Robin Milner and Mads Tofte.  The MIT Press, 1990. addall)  ISBN 0262631327.  Robin Milner and Mads Tofte.  The MIT Press, 1990.
- 
![[WWW]](moin-www.png) The Definition of Standard ML.  ( The Definition of Standard ML.  (![[WWW]](moin-www.png) addall)  ISBN 0262631326.  Robin Milner, Mads Tofte, and Robert Harper.  The MIT Press, 1990. addall)  ISBN 0262631326.  Robin Milner, Mads Tofte, and Robert Harper.  The MIT Press, 1990.
- 
![[WWW]](moin-www.png) The Definition of Standard ML (Revised).  ( The Definition of Standard ML (Revised).  (![[WWW]](moin-www.png) addall)  ISBN 0262631814.  Robin Milner, Mads Tofte, Robert Harper, and David MacQueen.  The MIT Press, 1997. addall)  ISBN 0262631814.  Robin Milner, Mads Tofte, Robert Harper, and David MacQueen.  The MIT Press, 1997.
- 
![[WWW]](moin-www.png) Automatic Code Generation from Coloured Petri Nets for an Access Control System.  Kjeld H. Mortensen.  Workshop on Practical Use of Coloured Petri Nets and Design/CPN, 1999. Automatic Code Generation from Coloured Petri Nets for an Access Control System.  Kjeld H. Mortensen.  Workshop on Practical Use of Coloured Petri Nets and Design/CPN, 1999.
- 
  An asynchronous exception is a signal that one thread can send to   another, and is useful for the receiving thread to treat as an   exception so that it can clean up locks or other state relevant to   its current context.   
There are a couple of earlier versions of this paper floating around, from August and November 2000. Make sure and get the official version from May 2001 (linked above).
- 
   A just-in-time compiler using GNU Lightning, showing a speedup of    up to four times over Moscow ML's usual bytecode interpreter.     
The full report is only available in Danish.
- 
  Introduces and explains the notation and approach used in   The Definition of Standard ML. 
        
- 
  Superseded by The Definition of Standard ML (Revised).   Accompanied by the Commentary on Standard ML. 
        
- 
  A terse and formal specification of Standard ML's syntax and   semantics.  Supersedes an older version. 
        
- 
![[WWW]](moin-www.png) fxp - Processing Structured Documents in SML.  Andreas Neumann.  Scottish Functional Programming Workshop, 1999. fxp - Processing Structured Documents in SML.  Andreas Neumann.  Scottish Functional Programming Workshop, 1999.
- 
![[WWW]](moin-www.png) Parsing and Querying XML Documents in SML.  Andreas Neumann.  Doctoral Thesis, 1999. Parsing and Querying XML Documents in SML.  Andreas Neumann.  Doctoral Thesis, 1999.
- 
   Describes 
![[WWW]](moin-www.png) fxp, an    XML parser implemented in Standard ML.
fxp, an    XML parser implemented in Standard ML. 
            - 
![[WWW]](moin-www.png) Purely Functional Data Structures.  ISBN 0521663504.  Chris Okasaki.  Cambridge University Press, 1999. Purely Functional Data Structures.  ISBN 0521663504.  Chris Okasaki.  Cambridge University Press, 1999.
- 
![[WWW]](moin-www.png) ML For the Working Programmer  ( ML For the Working Programmer  (![[WWW]](moin-www.png) addall)  ISBN 052156543X.  Larry C. Paulson.  Cambridge University Press, 1996. addall)  ISBN 052156543X.  Larry C. Paulson.  Cambridge University Press, 1996.
- 
![[WWW]](moin-www.png) The HiPE/x86 Erlang Compiler: System Description and Performance Evaluation.  Mikael Pettersson, Konstantinos Sagonas, and Erik Johansson.  FLOPS 2002. The HiPE/x86 Erlang Compiler: System Description and Performance Evaluation.  Mikael Pettersson, Konstantinos Sagonas, and Erik Johansson.  FLOPS 2002.
- 
  Describes a native x86 Erlang compiler and a comparison of many   different native x86 compilers (including MLton) and their register   usage and call stack implementations. 
        
- 
![[WWW]](moin-www.png) Embedding an Interpreted Language Using Higher-Order Functions and Types.  Norman Ramsey.  IVME 2003. Embedding an Interpreted Language Using Higher-Order Functions and Types.  Norman Ramsey.  IVME 2003.
- 
![[WWW]](moin-www.png) Widening Integer Arithmetic.  Kevin Redwine and Norman Ramsey.  CC 2004. Widening Integer Arithmetic.  Kevin Redwine and Norman Ramsey.  CC 2004.
- 
![[WWW]](moin-www.png) Concurrent Programming in ML  ( Concurrent Programming in ML  (![[WWW]](moin-www.png) addall).  ISBN 0521480892.  John Reppy.  Cambridge University Press, 1999. addall).  ISBN 0521480892.  John Reppy.  Cambridge University Press, 1999.
- 
![[WWW]](moin-www.png) Defects in the Revised Definition of Standard ML.  Andreas Rossberg. 2001. Defects in the Revised Definition of Standard ML.  Andreas Rossberg. 2001.
- 
  Describes a method to implement numeric types and operations (like   Int31 or Word17) for sizes smaller than that provided by   the processor.  
        
- 
  Covers ConcurrentML. 
        
- 
![[WWW]](moin-www.png) Dual-Mode Garbage Collection.  Patrick M. Sansom.  Workshop on the Parallel Implementation of Functional Languages, 1991. Dual-Mode Garbage Collection.  Patrick M. Sansom.  Workshop on the Parallel Implementation of Functional Languages, 1991.
- 
![[WWW]](moin-www.png) When Do Match-Compilation Heuristics Matter.  Kevin Scott and Norman Ramsey.  University of Virginia Technical Report CS-2000-13. When Do Match-Compilation Heuristics Matter.  Kevin Scott and Norman Ramsey.  University of Virginia Technical Report CS-2000-13.
- 
![[WWW]](moin-www.png) ML pattern match compilation and partial evaluation.  Peter Sestoft.  Partial Evaluation, 1996. ML pattern match compilation and partial evaluation.  Peter Sestoft.  Partial Evaluation, 1996.
- 
Anthony L. Shipman. ![[WWW]](moin-www.png) Unix System Programming with Standard ML, 2002. Unix System Programming with Standard ML, 2002.
- 
![[WWW]](moin-www.png) Calcul statique des applications de modules parametres.  Julien Signoles.  JFLA 2003. Calcul statique des applications de modules parametres.  Julien Signoles.  JFLA 2003.
- 
  Modified SML/NJ to experimentally compare a number of   match-compilation heuristics and showed that choice of heuristic   usually does not significantly affect code size or run time. 
        
- 
  Describes the derivation of the match compiler used in   Moscow ML. 
        
- 
  Describes a defunctorizer for OCaml, and compares it to existing   defunctorizers, including MLton. 
        
- 
![[WWW]](moin-www.png) Object-oriented programming and Standard ML.  Lars Thorup and Mads Tofte.    Workshop on ML and its applications, 1994. Object-oriented programming and Standard ML.  Lars Thorup and Mads Tofte.    Workshop on ML and its applications, 1994.
- 
Type Inference for Polymorphic References. Mads Tofte. Information and Computation, 89(1_References), 1990. 
- 
![[WWW]](moin-www.png) Elements of ML Programming  ( Elements of ML Programming  (![[WWW]](moin-www.png) addall).  ISBN 0137903871.  Jeffrey D. Ullman.  Prentice-Hall, 1998. addall).  ISBN 0137903871.  Jeffrey D. Ullman.  Prentice-Hall, 1998.
- 
![[WWW]](moin-www.png) Managing Memory with Types.  Daniel C. Wang.  PhD Thesis. Managing Memory with Types.  Daniel C. Wang.  PhD Thesis.
- 
![[WWW]](moin-www.png) Type-Preserving Garbage Collectors.  Daniel C. Wang and Andrew W. Appel.  POPL 2001. Type-Preserving Garbage Collectors.  Daniel C. Wang and Andrew W. Appel.  POPL 2001.
- 
![[WWW]](moin-www.png) Programming With Recursion Schemes.  Daniel C. Wang and Tom Murphy VII. Programming With Recursion Schemes.  Daniel C. Wang and Tom Murphy VII.
- 
![[WWW]](moin-www.png) Recursion Schemes as Abstract Interfaces.  Daniel C. Wang and Tom Murphy.  JFP. Recursion Schemes as Abstract Interfaces.  Daniel C. Wang and Tom Murphy.  JFP.
- 
![[WWW]](moin-www.png) Simple Imperative Polymorphism.  Andrew Wright.  LASC, 8(4):343-355, 1995. Simple Imperative Polymorphism.  Andrew Wright.  LASC, 8(4):343-355, 1995.
- 
  Chapter 6 describes an implementation of a type-preserving garbage   collector for MLton. 
        
- 
  Shows how to modify MLton to generate a strongly typed garbage   collector as part of a program. 
        
- 
  Describes a programming technique for data abstraction, along with   benchmarks of MLton and other SML compilers. 
        
- 
   The origin of the ValueRestriction. 
            
Abbreviations
- 
BABEL = Workshop on multi-language infrastructure and interoperability. 
- 
IVME = Workshop on Interpreters, Virtual Machines and Emulators. 
- 
PLDI = Conference on Programming Language Design and Implementation 
- 
PPDP = International Conference on Principles and Practice of Declarative Programming 
- 
TCS = IFIP International Conference on Theoretical Computer Science 
- 
TLDI = Workshop on Types in Language Design and Implementation