33 * <!Anchor(AcarEtAl06)>
34 http://www.umut-acar.org/publications/pldi2006.pdf[An Experimental Analysis of Self-Adjusting Computation]
35 Umut Acar, Guy Blelloch, Matthias Blume, and Kanat Tangwongsan.
39 http://us.cambridge.org/titles/catalogue.asp?isbn=0521416957[Compiling with Continuations]
40 (http://www.addall.com/New/submitNew.cgi?query=0-521-41695-7&type=ISBN&location=10000&state=&dispCurr=USD[addall]).
43 Cambridge University Press, 1992.
46 http://www.cs.princeton.edu/research/techreps/TR-364-92[A Critique of Standard ML].
51 http://us.cambridge.org/titles/catalogue.asp?isbn=0521582741[Modern Compiler Implementation in ML]
52 (http://www.addall.com/New/submitNew.cgi?query=0-521-58274-1&type=ISBN&location=10000&state=&dispCurr=USD[addall]).
55 Cambridge University Press, 1998.
57 * <!Anchor(AppelJim97)>
58 http://ncstrl.cs.princeton.edu/expand.php?id=TR-556-97[Shrinking Lambda Expressions in Linear Time]
59 Andrew Appel and Trevor Jim.
62 * <!Anchor(AppelEtAl94)>
63 http://www.smlnj.org/doc/ML-Lex/manual.html[A lexical analyzer generator for Standard ML. Version 1.6.0]
64 Andrew W. Appel, James S. Mattson, and David R. Tarditi. 1994
68 * <!Anchor(BaudinetMacQueen85)>
69 http://www.classes.cs.uchicago.edu/archive/2011/spring/22620-1/papers/macqueen-baudinet85.pdf[Tree Pattern Matching for ML].
70 Marianne Baudinet, David MacQueen. 1985.
73 Describes the match compiler used in an early version of
77 * <!Anchor(BentonEtAl98)>
78 http://research.microsoft.com/en-us/um/people/nick/icfp98.pdf[Compiling Standard ML to Java Bytecodes].
79 Nick Benton, Andrew Kennedy, and George Russell.
82 * <!Anchor(BentonKennedy99)>
83 http://research.microsoft.com/en-us/um/people/nick/SMLJavaInterop.pdf[Interlanguage Working Without Tears: Blending SML with Java].
84 Nick Benton and Andrew Kennedy.
87 * <!Anchor(BentonKennedy01)>
88 http://research.microsoft.com/en-us/um/people/akenn/sml/ExceptionalSyntax.pdf[Exceptional Syntax].
89 Nick Benton and Andrew Kennedy.
92 * <!Anchor(BentonEtAl04)>
93 http://research.microsoft.com/en-us/um/people/nick/p53-Benton.pdf[Adventures in Interoperability: The SML.NET Experience].
94 Nick Benton, Andrew Kennedy, and Claudio Russo.
97 * <!Anchor(BentonEtAl04_2)>
98 http://research.microsoft.com/en-us/um/people/nick/shrinking.pdf[Shrinking Reductions in SML.NET].
99 Nick Benton, Andrew Kennedy, Sam Lindley and Claudio Russo.
103 Describes a linear-time implementation of an
104 <!Cite(AppelJim97,Appel-Jim shrinker)>, using a mutable IL, and shows
105 that it yields nice speedups in SML.NET's compile times. There are
106 also benchmarks showing that SML.NET when compiled by MLton runs
107 roughly five times faster than when compiled by SML/NJ.
110 * <!Anchor(Benton05)>
111 http://research.microsoft.com/en-us/um/people/nick/benton03.pdf[Embedded Interpreters].
116 http://www.lfcs.inf.ed.ac.uk/reports/91/ECS-LFCS-91-148/ECS-LFCS-91-148.pdf[The Edinburgh SML Library].
118 University of Edinburgh Technical Report ECS-LFCS-91-148, 1991.
120 * <!Anchor(BerryEtAl93)>
121 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.7958&rep=rep1&type=ps[A semantics for ML concurrency primitives].
122 Dave Berry, Robin Milner, and David N. Turner.
126 http://journals.cambridge.org/abstract_S0956796800000873[Lessons From the Design of a Standard ML Library].
130 * <!Anchor(Bertelsen98)>
131 http://www.petermb.dk/sml2jvm.ps.gz[Compiling SML to Java Bytecode].
133 Master's Thesis, 1998.
135 * <!Anchor(Berthomieu00)>
136 http://homepages.laas.fr/bernard/oo/ooml.html[OO Programming styles in ML].
138 LAAS Report #2000111, 2000.
141 http://people.cs.uchicago.edu/~blume/papers/nlffi-entcs.pdf[No-Longer-Foreign: Teaching an ML compiler to speak C "natively"].
145 * <!Anchor(Blume01_02)>
146 http://people.cs.uchicago.edu/~blume/pgraph/proposal.pdf[Portable library descriptions for Standard ML].
147 Matthias Blume. 2001.
150 http://www.hpl.hp.com/techreports/2002/HPL-2002-335.html[Destructors, Finalizers, and Synchronization].
155 Discusses a number of issues in the design of finalizers. Many of the
156 design choices are consistent with <:MLtonFinalizable:>.
159 == <!Anchor(CCC)>C ==
161 * <!Anchor(CejtinEtAl00)>
162 http://www.cs.purdue.edu/homes/suresh/papers/icfp99.ps.gz[Flow-directed Closure Conversion for Typed Languages].
163 Henry Cejtin, Suresh Jagannathan, and Stephen Weeks.
167 Describes MLton's closure-conversion algorithm, which translates from
168 its simply-typed higher-order intermediate language to its
169 simply-typed first-order intermediate language.
172 * <!Anchor(ChengBlelloch01)>
173 http://www.cs.cmu.edu/afs/cs/project/pscico/pscico/papers/gc01/pldi-final.pdf[A Parallel, Real-Time Garbage Collector].
174 Perry Cheng and Guy E. Blelloch.
177 * <!Anchor(Claessen00)>
178 http://users.eecs.northwestern.edu/~robby/courses/395-495-2009-fall/quick.pdf[QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs].
179 Koen Claessen and John Hughes.
182 * <!Anchor(Clinger98)>
183 http://www.cesura17.net/~will/Professional/Research/Papers/tail.pdf[Proper Tail Recursion and Space Efficiency].
187 * <!Anchor(CooperMorrisett90)>
188 http://www.eecs.harvard.edu/~greg/papers/jgmorris-mlthreads.ps[Adding Threads to Standard ML].
189 Eric C. Cooper and J. Gregory Morrisett.
190 CMU Technical Report CMU-CS-90-186, 1990.
192 * <!Anchor(CouttsEtAl07)>
193 http://metagraph.org/papers/stream_fusion.pdf[Stream Fusion: From Lists to Streams to Nothing at All].
194 Duncan Coutts, Roman Leshchinskiy, and Don Stewart.
195 Submitted for publication. April 2007.
197 == <!Anchor(DDD)>D ==
199 * <!Anchor(DamasMilner82)>
200 http://groups.csail.mit.edu/pag/6.883/readings/p207-damas.pdf[Principal Type-Schemes for Functional Programs].
201 Luis Damas and Robin Milner.
205 http://www.brics.dk/RS/98/12[Functional Unparsing].
207 BRICS Technical Report RS 98-12, 1998.
209 * <!Anchor(Deboer05)>
210 http://alleystoughton.us/eXene/dusty-thesis.pdf[Exhancements to eXene].
212 Master of Science Thesis, 2005.
215 Describes ways to improve widget concurrency, handling of input focus,
216 X resources and selections.
219 * <!Anchor(DoligezLeroy93)>
220 http://cristal.inria.fr/~doligez/publications/doligez-leroy-popl-1993.pdf[A Concurrent, Generational Garbage Collector for a Multithreaded Implementation of ML].
221 Damien Doligez and Xavier Leroy.
224 * <!Anchor(Dreyer07)>
225 http://www.mpi-sws.org/~dreyer/papers/mtc/main-long.pdf[Modular Type Classes].
226 Derek Dreyer, Robert Harper, Manuel M.T. Chakravarty, Gabriele Keller.
227 University of Chicago Technical Report TR-2007-02, 2006.
229 * <!Anchor(DreyerBlume07)>
230 http://www.mpi-sws.org/~dreyer/papers/infmod/main-long.pdf[Principal Type Schemes for Modular Programs].
231 Derek Dreyer and Matthias Blume.
234 * <!Anchor(Dubois95)>
235 ftp://ftp.inria.fr/INRIA/Projects/cristal/Francois.Rouaix/generics.dvi.Z[Extensional Polymorphism].
236 Catherin Dubois, Francois Rouaix, and Pierre Weis.
240 An extension of ML that allows the definition of ad-hoc polymorphic
241 functions by inspecting the type of their argument.
244 == <!Anchor(EEE)>E ==
246 * <!Anchor(Elsman03)>
247 http://www.elsman.com/tldi03.pdf[Garbage Collection Safety for Region-based Memory Management].
251 * <!Anchor(Elsman04)>
252 http://www.elsman.com/ITU-TR-2004-43.pdf[Type-Specialized Serialization with Sharing].
253 Martin Elsman. University of Copenhagen. IT University Technical
254 Report TR-2004-43, 2004.
256 == <!Anchor(FFF)>F ==
258 * <!Anchor(FelleisenFreidman98)>
259 http://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=4787[The Little MLer]
260 (http://www3.addall.com/New/submitNew.cgi?query=026256114X&type=ISBN[addall]).
262 Matthias Felleisen and Dan Freidman.
265 * <!Anchor(FlattFindler04)>
266 http://www.cs.utah.edu/plt/kill-safe/[Kill-Safe Synchronization Abstractions].
267 Matthew Flatt and Robert Bruce Findler.
270 * <!Anchor(FluetWeeks01)>
271 http://www.cs.rit.edu/~mtf/research/contification[Contification Using Dominators].
272 Matthew Fluet and Stephen Weeks.
276 Describes contification, a generalization of tail-recursion
277 elimination that is an optimization operating on MLton's static single
278 assignment (SSA) intermediate language.
281 * <!Anchor(FluetPucella06)>
282 http://www.cs.rit.edu/~mtf/research/phantom-subtyping/jfp06/jfp06.pdf[Phantom Types and Subtyping].
283 Matthew Fluet and Riccardo Pucella.
286 * <!Anchor(Furuse01)>
287 http://jfla.inria.fr/2001/actes/07-furuse.ps[Generic Polymorphism in ML].
292 The formalism behind G'CAML, which has an approach to ad-hoc
293 polymorphism based on <!Cite(Dubois95)>, the differences being in how
294 type checking works an an improved compilation approach for typecase
295 that does the matching at compile time, not run time.
298 == <!Anchor(GGG)>G ==
300 * <!Anchor(GansnerReppy93)>
301 http://alleystoughton.us/eXene/1993-trends.pdf[A Multi-Threaded Higher-order User Interface Toolkit].
302 Emden R. Gansner and John H. Reppy.
303 User Interface Software, 1993.
305 * <!Anchor(GansnerReppy04)>
306 http://www.cambridge.org/gb/academic/subjects/computer-science/programming-languages-and-applied-logic/standard-ml-basis-library[The Standard ML Basis Library].
307 (http://www3.addall.com/New/submitNew.cgi?query=9780521794787&type=ISBN[addall])
309 Emden R. Gansner and John H. Reppy.
310 Cambridge University Press, 2004.
313 An introduction and overview of the <:BasisLibrary:Basis Library>,
314 followed by a detailed description of each module. The module
315 descriptions are also available
316 http://www.standardml.org/Basis[online].
319 * <!Anchor(GrossmanEtAl02)>
320 http://www.cs.umd.edu/projects/cyclone/papers/cyclone-regions.pdf[Region-based Memory Management in Cyclone].
321 Dan Grossman, Greg Morrisett, Trevor Jim, Michael Hicks, Yanling
322 Wang, and James Cheney.
325 == <!Anchor(HHH)>H ==
327 * <!Anchor(HallenbergEtAl02)>
328 http://www.itu.dk/people/tofte/publ/pldi2002.pdf[Combining Region Inference and Garbage Collection].
329 Niels Hallenberg, Martin Elsman, and Mads Tofte.
332 * <!Anchor(HansenRichel99)>
333 http://www.it.dtu.dk/introSML[Introduction to Programming Using SML]
334 (http://www3.addall.com/New/submitNew.cgi?query=0201398206&type=ISBN[addall]).
336 Michael R. Hansen, Hans Rischel.
337 Addison-Wesley, 1999.
339 * <!Anchor(Harper11)>
340 http://www.cs.cmu.edu/~rwh/smlbook/book.pdf[Programming in Standard ML].
343 * <!Anchor(HarperEtAl93)>
344 http://www.cs.cmu.edu/~rwh/papers/callcc/jfp.pdf[Typing First-Class Continuations in ML].
345 Robert Harper, Bruce F. Duba, and David MacQueen.
348 * <!Anchor(HarperMitchell92)>
349 http://www.cs.cmu.edu/~rwh/papers/xml/toplas93.pdf[On the Type Structure of Standard ML].
350 Robert Harper and John C. Mitchell.
353 * <!Anchor(HauserBenson04)>
354 http://doi.ieeecomputersociety.org/10.1109/CSD.2004.1309122[On the Practicality and Desirability of Highly-concurrent, Mostly-functional Programming].
355 Carl H. Hauser and David B. Benson.
359 Describes the use of <:ConcurrentML: Concurrent ML> in implementing
360 the Ped text editor. Argues that using large numbers of threads and
361 message passing style is a practical and effective way of
362 modularizing a program.
365 * <!Anchor(HeckmanWilhelm97)>
366 http://rw4.cs.uni-sb.de/~heckmann/abstracts/neuform.html[A Functional Description of TeX's Formula Layout].
367 Reinhold Heckmann and Reinhard Wilhelm.
370 * <!Anchor(HicksEtAl03)>
371 http://wwwold.cs.umd.edu/Library/TRs/CS-TR-4514/CS-TR-4514.pdf[Safe and Flexible Memory Management in Cyclone].
372 Mike Hicks, Greg Morrisett, Dan Grossman, and Trevor Jim.
373 University of Maryland Technical Report CS-TR-4514, 2003.
376 http://www.gilith.com/research/talks/tphols2004.pdf[Compiling HOL4 to Native Code].
381 Describes a port of HOL from Moscow ML to MLton, the difficulties
382 encountered in compiling large programs, and the speedups achieved
386 == <!Anchor(III)>I ==
390 == <!Anchor(JJJ)>J ==
393 http://www.cs.kent.ac.uk/people/staff/rej/gcbook[Garbage Collection: Algorithms for Automatic Memory Management]
394 (http://www3.addall.com/New/submitNew.cgi?query=0471941484&type=ISBN[addall]).
397 John Wiley & Sons, 1999.
399 == <!Anchor(KKK)>K ==
402 http://kar.kent.ac.uk/21122/[Mistakes and Ambiguities in the Definition of Standard ML].
404 University of Edinburgh Technical Report ECS-LFCS-93-257, 1993.
407 Describes a number of problems with the
408 <!Cite(MilnerEtAl90,1990 Definition)>, many of which were fixed in the
409 <!Cite(MilnerEtAl97,1997 Definition)>.
411 Also see the http://www.cs.kent.ac.uk/~smk/errors-new.ps.Z[addenda]
415 * <!Anchor(Karvonen07)>
416 http://dl.acm.org/citation.cfm?doid=1292535.1292547[Generics for the Working ML'er].
418 <:#ML:> 2007. http://research.microsoft.com/~crusso/ml2007/slides/ml08rp-karvonen-slides.pdf[Slides] from the presentation are also available.
420 * <!Anchor(Kennedy04)>
421 http://research.microsoft.com/~akenn/fun/picklercombinators.pdf[Pickler Combinators].
425 * <!Anchor(KoserEtAl03)>
426 http://www.litech.org/~vaughan/pdf/dpcool2003.pdf[sml2java: A Source To Source Translator].
427 Justin Koser, Haakon Larsen, Jeffrey A. Vaughan.
430 == <!Anchor(LLL)>L ==
433 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.29.7130&rep=rep1&type=ps[Faster Algorithms for Finding Minimal Consistent DFAs].
436 * <!Anchor(LarsenNiss04)>
437 http://usenix.org/publications/library/proceedings/usenix04/tech/freenix/full_papers/larsen/larsen.pdf[mGTK: An SML binding of Gtk+].
438 Ken Larsen and Henning Niss.
439 USENIX Annual Technical Conference, 2004.
441 * <!Anchor(Leibig13)>
442 http://www.cs.rit.edu/~bal6053/msproject/[An LLVM Back-end for MLton].
444 MS Project Report, 2013.
447 Describes MLton's <:LLVMCodegen:>.
451 http://pauillac.inria.fr/~xleroy/bibrefs/Leroy-ZINC.html[The ZINC Experiment: an Economical Implementation of the ML Language].
453 Technical report 117, INRIA, 1990.
456 A detailed explanation of the design and implementation of a bytecode
457 compiler and interpreter for ML with a machine model aimed at
458 efficient implementation.
462 http://pauillac.inria.fr/~xleroy/bibrefs/Leroy-poly-par-nom.html[Polymorphism by Name for References and Continuations].
466 * <!Anchor(LeungGeorge99)>
467 http://www.cs.nyu.edu/leunga/my-papers/annotations.ps[MLRISC Annotations].
468 Allen Leung and Lal George. 1999.
470 == <!Anchor(MMM)>M ==
472 * <!Anchor(MarlowEtAl01)>
473 http://community.haskell.org/~simonmar/papers/async.pdf[Asynchronous Exceptions in Haskell].
474 Simon Marlow, Simon Peyton Jones, Andy Moran and John Reppy.
478 An asynchronous exception is a signal that one thread can send to
479 another, and is useful for the receiving thread to treat as an
480 exception so that it can clean up locks or other state relevant to its
484 * <!Anchor(MacQueenEtAl84)>
485 http://homepages.inf.ed.ac.uk/gdp/publications/Ideal_model.pdf[An Ideal Model for Recursive Polymorphic Types].
486 David MacQueen, Gordon Plotkin, Ravi Sethi.
489 * <!Anchor(Matthews91)>
490 http://www.lfcs.inf.ed.ac.uk/reports/91/ECS-LFCS-91-174[A Distributed Concurrent Implementation of Standard ML].
492 University of Edinburgh Technical Report ECS-LFCS-91-174, 1991.
494 * <!Anchor(Matthews95)>
495 http://www.lfcs.inf.ed.ac.uk/reports/95/ECS-LFCS-95-335[Papers on Poly/ML].
496 David C. J. Matthews.
497 University of Edinburgh Technical Report ECS-LFCS-95-335, 1995.
499 * http://www.lfcs.inf.ed.ac.uk/reports/97/ECS-LFCS-97-375[That About Wraps it Up: Using FIX to Handle Errors Without Exceptions, and Other Programming Tricks].
501 University of Edinburgh Technical Report ECS-LFCS-97-375, 1997.
503 * <!Anchor(MeierNorgaard93)>
504 A Just-In-Time Backend for Moscow ML 2.00 in SML.
505 Bjarke Meier, Kristian Nørgaard.
506 Masters Thesis, 2003.
509 A just-in-time compiler using GNU Lightning, showing a speedup of up
510 to four times over Moscow ML's usual bytecode interpreter.
512 The full report is only available in
513 http://www.itu.dk/stud/speciale/bmkn/fundanemt/download/report[Danish].
516 * <!Anchor(Milner78)>
517 http://courses.engr.illinois.edu/cs421/sp2013/project/milner-polymorphism.pdf[A Theory of Type Polymorphism in Programming].
519 Journal of Computer and System Sciences, 1978.
521 * <!Anchor(Milner82)>
522 http://homepages.inf.ed.ac.uk/dts/fps/papers/evolved.dvi.gz[How ML Evolved].
524 Polymorphism--The ML/LCF/Hope Newsletter, 1983.
526 * <!Anchor(MilnerTofte91)>
527 http://www.itu.dk/people/tofte/publ/1990sml/1990sml.html[Commentary on Standard ML]
528 (http://www3.addall.com/New/submitNew.cgi?query=0262631377&type=ISBN[addall])
530 Robin Milner and Mads Tofte.
534 Introduces and explains the notation and approach used in
535 <!Cite(MilnerEtAl90,The Definition of Standard ML)>.
538 * <!Anchor(MilnerEtAl90)>
539 http://www.itu.dk/people/tofte/publ/1990sml/1990sml.html[The Definition of Standard ML].
540 (http://www3.addall.com/New/submitNew.cgi?query=0262631326&type=ISBN[addall])
542 Robin Milner, Mads Tofte, and Robert Harper.
546 Superseded by <!Cite(MilnerEtAl97,The Definition of Standard ML (Revised))>.
547 Accompanied by the <!Cite(MilnerTofte91,Commentary on Standard ML)>.
550 * <!Anchor(MilnerEtAl97)>
551 http://mitpress.mit.edu/books/definition-standard-ml[The Definition of Standard ML (Revised)].
552 (http://www3.addall.com/New/submitNew.cgi?query=0262631814&type=ISBN[addall])
554 Robin Milner, Mads Tofte, Robert Harper, and David MacQueen.
558 A terse and formal specification of Standard ML's syntax and
559 semantics. Supersedes <!Cite(MilnerEtAl90,The Definition of Standard ML)>.
563 http://flint.cs.yale.edu/flint/publications/ml2000.html[Principles and a Preliminary Design for ML2000].
564 The ML2000 working group, 1999.
566 * <!Anchor(Morentsen99)>
567 http://daimi.au.dk/CPnets/workshop99/papers/Mortensen.pdf[Automatic Code Generation from Coloured Petri Nets for an Access Control System].
569 Workshop on Practical Use of Coloured Petri Nets and Design/CPN, 1999.
571 * <!Anchor(MorrisettTolmach93)>
572 http://web.cecs.pdx.edu/~apt/ppopp93.ps[Procs and Locks: a Portable Multiprocessing Platform for Standard ML of New Jersey].
573 J{empty}. Gregory Morrisett and Andrew Tolmach.
576 * <!Anchor(Murphy06)>
577 http://www.cs.cmu.edu/~tom7/papers/grid-ml06.pdf[ML Grid Programming with ConCert].
581 == <!Anchor(NNN)>N ==
583 * <!Anchor(Neumann99)>
584 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.25.9485&rep=rep1&type=ps[fxp - Processing Structured Documents in SML].
586 Scottish Functional Programming Workshop, 1999.
589 Describes http://atseidl2.informatik.tu-muenchen.de/~berlea/Fxp[fxp],
590 an XML parser implemented in Standard ML.
593 * <!Anchor(Neumann99Thesis)>
594 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.25.8108&rep=rep1&type=ps[Parsing and Querying XML Documents in SML].
596 Doctoral Thesis, 1999.
598 * <!Anchor(NguyenOhori06)>
599 http://www.pllab.riec.tohoku.ac.jp/~ohori/research/NguyenOhoriPPDP06.pdf[Compiling ML Polymorphism with Explicit Layout Bitmap].
600 Huu-Duc Nguyen and Atsushi Ohori.
603 == <!Anchor(OOO)>O ==
605 * <!Anchor(Okasaki99)>
606 http://www.cambridge.org/gb/academic/subjects/computer-science/programming-languages-and-applied-logic/purely-functional-data-structures[Purely Functional Data Structures].
609 Cambridge University Press, 1999.
612 http://www.pllab.riec.tohoku.ac.jp/~ohori/research/fpca89.pdf[A Simple Semantics for ML Polymorphism].
617 http://www.pllab.riec.tohoku.ac.jp/~ohori/research/toplas95.pdf[A Polymorphic Record Calculus and Its Compilation].
621 * <!Anchor(OhoriTakamizawa97)>
622 http://www.pllab.riec.tohoku.ac.jp/~ohori/research/jlsc97.pdf[An Unboxed Operational Semantics for ML Polymorphism].
623 Atsushi Ohori and Tomonobu Takamizawa.
627 http://www.pllab.riec.tohoku.ac.jp/~ohori/research/ic98.pdf[Type-Directed Specialization of Polymorphism].
631 * <!Anchor(OwensEtAl09)>
632 http://www.mpi-sws.org/~turon/re-deriv.pdf[Regular-expression derivatives reexamined].
633 Scott Owens, John Reppy, and Aaron Turon.
636 == <!Anchor(PPP)>P ==
638 * <!Anchor(Paulson96)>
639 http://www.cambridge.org/co/academic/subjects/computer-science/programming-languages-and-applied-logic/ml-working-programmer-2nd-edition[ML For the Working Programmer]
640 (http://www3.addall.com/New/submitNew.cgi?query=052156543X&type=ISBN[addall])
643 Cambridge University Press, 1996.
645 * <!Anchor(PetterssonEtAl02)>
646 http://user.it.uu.se/~kostis/Papers/flops02_22.ps.gz[The HiPE/x86 Erlang Compiler: System Description and Performance Evaluation].
647 Mikael Pettersson, Konstantinos Sagonas, and Erik Johansson.
651 Describes a native x86 Erlang compiler and a comparison of many
652 different native x86 compilers (including MLton) and their register
653 usage and call stack implementations.
657 http://rogerprice.org/#UG[User's Guide to ML-Lex and ML-Yacc]
660 * <!Anchor(Pucella98)>
661 http://arxiv.org/abs/cs.PL/0405080[Reactive Programming in Standard ML].
662 Riccardo R. Puccella. 1998.
665 == <!Anchor(QQQ)>Q ==
669 == <!Anchor(RRR)>R ==
671 * <!Anchor(Ramsey90)>
672 https://www.cs.princeton.edu/research/techreps/TR-262-90[Concurrent Programming in ML].
674 Princeton University Technical Report CS-TR-262-90, 1990.
676 * <!Anchor(Ramsey11)>
677 http://www.cs.tufts.edu/~nr/pubs/embedj-abstract.html[Embedding an Interpreted Language Using Higher-Order Functions and Types].
681 * <!Anchor(RamseyFisherGovereau05)>
682 http://www.cs.tufts.edu/~nr/pubs/els-abstract.html[An Expressive Language of Signatures].
683 Norman Ramsey, Kathleen Fisher, and Paul Govereau.
686 * <!Anchor(RedwineRamsey04)>
687 http://www.cs.tufts.edu/~nr/pubs/widen-abstract.html[Widening Integer Arithmetic].
688 Kevin Redwine and Norman Ramsey.
692 Describes a method to implement numeric types and operations (like
693 `Int31` or `Word17`) for sizes smaller than that provided by the
698 Synchronous Operations as First-Class Values.
703 http://www.cambridge.org/co/academic/subjects/computer-science/distributed-networked-and-mobile-computing/concurrent-programming-ml[Concurrent Programming in ML]
704 (http://www3.addall.com/New/submitNew.cgi?query=9780521714723&type=ISBN[addall]).
707 Cambridge University Press, 2007.
710 Describes <:ConcurrentML:>.
713 * <!Anchor(Reynolds98)>
714 https://users-cs.au.dk/hosc/local/HOSC-11-4-pp355-361.pdf[Definitional Interpreters Revisited].
718 * <!Anchor(Reynolds98_2)>
719 https://users-cs.au.dk/hosc/local/HOSC-11-4-pp363-397.pdf[Definitional Interpreters for Higher-Order Programming Languages]
723 * <!Anchor(Rossberg01)>
724 http://www.mpi-sws.org/~rossberg/papers/Rossberg%20-%20Defects%20in%20the%20Revised%20Definition%20of%20Standard%20ML%20%5B2007-01-22%20Update%5D.pdf[Defects in the Revised Definition of Standard ML].
725 Andreas Rossberg. 2001.
727 == <!Anchor(SSS)>S ==
729 * <!Anchor(Sansom91)>
730 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.1020&rep=rep1&type=ps[Dual-Mode Garbage Collection].
732 Workshop on the Parallel Implementation of Functional Languages, 1991.
734 * <!Anchor(ScottRamsey00)>
735 http://www.cs.tufts.edu/~nr/pubs/match-abstract.html[When Do Match-Compilation Heuristics Matter].
736 Kevin Scott and Norman Ramsey.
737 University of Virginia Technical Report CS-2000-13, 2000.
740 Modified SML/NJ to experimentally compare a number of
741 match-compilation heuristics and showed that choice of heuristic
742 usually does not significantly affect code size or run time.
745 * <!Anchor(Sestoft96)>
746 http://www.itu.dk/~sestoft/papers/match.ps.gz[ML Pattern Match Compilation and Partial Evaluation].
748 Partial Evaluation, 1996.
751 Describes the derivation of the match compiler used in
752 <:MoscowML:Moscow ML>.
755 * <!Anchor(ShaoAppel94)>
756 http://flint.cs.yale.edu/flint/publications/closure.html[Space-Efficient Closure Representations].
757 Zhong Shao and Andrew W. Appel.
760 * <!Anchor(Shipman02)>
761 <!Attachment(References,Shipman02.pdf,Unix System Programming with Standard ML)>.
766 Includes a description of the <:Swerve:> HTTP server written in SML.
769 * <!Anchor(Signoles03)>
770 Calcul Statique des Applications de Modules Parametres.
775 Describes a http://caml.inria.fr/cgi-bin/hump.en.cgi?contrib=382[defunctorizer]
776 for OCaml, and compares it to existing defunctorizers, including MLton.
779 * <!Anchor(SittampalamEtAl04)>
780 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.4.1349&rep=rep1&type=ps[Incremental Execution of Transformation Specifications].
781 Ganesh Sittampalam, Oege de Moor, and Ken Friis Larsen.
785 Mentions a port from Moscow ML to MLton of
786 http://www.itu.dk/research/muddy/[MuDDY], an SML wrapper around the
787 http://sourceforge.net/projects/buddy[BuDDY] BDD package.
790 * <!Anchor(SwaseyEtAl06)>
791 http://www.cs.cmu.edu/~tom7/papers/smlsc2-ml06.pdf[A Separate Compilation Extension to Standard ML].
792 David Swasey, Tom Murphy VII, Karl Crary and Robert Harper.
795 == <!Anchor(TTT)>T ==
797 * <!Anchor(TarditiAppel00)>
798 http://www.smlnj.org/doc/ML-Yacc/index.html[ML-Yacc User's Manual. Version 2.4]
799 David R. Tarditi and Andrew W. Appel. 2000.
801 * <!Anchor(TarditiEtAl90)>
802 http://research.microsoft.com/pubs/68738/loplas-sml2c.ps[No Assembly Required: Compiling Standard ML to C].
803 David Tarditi, Peter Lee, and Anurag Acharya. 1990.
805 * <!Anchor(ThorupTofte94)>
806 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.53.5372&rep=rep1&type=ps[Object-oriented programming and Standard ML].
807 Lars Thorup and Mads Tofte.
811 Type Inference for Polymorphic References.
816 http://www.itu.dk/courses/FDP/E2004/Tofte-1996-Essentials_of_SML_Modules.pdf[Essentials of Standard ML Modules].
820 http://www.itu.dk/people/tofte/publ/tips.pdf[Tips for Computer Scientists on Standard ML (Revised)].
823 * <!Anchor(TolmachAppel95)>
824 http://web.cecs.pdx.edu/~apt/jfp95.ps[A Debugger for Standard ML].
825 Andrew Tolmach and Andrew W. Appel.
828 * <!Anchor(Tolmach97)>
829 http://web.cecs.pdx.edu/~apt/tic97.ps[Combining Closure Conversion with Closure Analysis using Algebraic Types].
834 Describes a closure-conversion algorithm for a monomorphic IL. The
835 algorithm uses a unification-based flow analysis followed by
836 defunctionalization and is similar to the approach used in MLton
837 (<!Cite(CejtinEtAl00)>).
840 * <!Anchor(TolmachOliva98)>
841 http://web.cecs.pdx.edu/~apt/jfp98.ps[From ML to Ada: Strongly-typed Language Interoperability via Source Translation].
842 Andrew Tolmach and Dino Oliva.
846 Describes a compiler for RML, a core SML-like language. The compiler
847 is similar in structure to MLton, using monomorphisation,
848 defunctionalization, and optimization on a first-order IL.
851 == <!Anchor(UUU)>U ==
853 * <!Anchor(Ullman98)>
854 http://www-db.stanford.edu/~ullman/emlp.html[Elements of ML Programming]
855 (http://www3.addall.com/New/submitNew.cgi?query=0137903871&type=ISBN[addall]).
860 == <!Anchor(VVV)>V ==
864 == <!Anchor(WWW)>W ==
867 http://portal.acm.org/citation.cfm?id=800527[A Types-as-Sets Semantics for Milner-Style Polymorphism].
872 http://ncstrl.cs.princeton.edu/expand.php?id=TR-640-01[Managing Memory with Types].
877 Chapter 6 describes an implementation of a type-preserving garbage
881 * <!Anchor(WangAppel01)>
882 http://www.cs.princeton.edu/~appel/papers/typegc.pdf[Type-Preserving Garbage Collectors].
883 Daniel C. Wang and Andrew W. Appel.
887 Shows how to modify MLton to generate a strongly-typed garbage
888 collector as part of a program.
891 * <!Anchor(WangMurphy02)>
892 http://www.cs.cmu.edu/~tom7/papers/wang-murphy-recursion.pdf[Programming With Recursion Schemes].
893 Daniel C. Wang and Tom Murphy VII.
896 Describes a programming technique for data abstraction, along with
897 benchmarks of MLton and other SML compilers.
901 <!Attachment(References,060916-mlton.pdf,Whole-Program Compilation in MLton)>.
905 * <!Anchor(Wright95)>
906 http://homepages.inf.ed.ac.uk/dts/fps/papers/wright.ps.gz[Simple Imperative Polymorphism].
908 <:#LASC:>, 8(4):343-355, 1995.
911 The origin of the <:ValueRestriction:>.
914 == <!Anchor(XXX)>X ==
918 == <!Anchor(YYY)>Y ==
921 http://cs.nyu.edu/zheyang/papers/YangZ\--ICFP98.html[Encoding Types in ML-like Languages].
925 == <!Anchor(ZZZ)>Z ==
927 * <!Anchor(ZiarekEtAl06)>
928 http://www.cs.purdue.edu/homes/lziarek/icfp06.pdf[Stabilizers: A Modular Checkpointing Abstraction for Concurrent Functional Programs].
929 Lukasz Ziarek, Philip Schatz, and Suresh Jagannathan.
932 * <!Anchor(ZiarekEtAl08)>
933 http://www.cse.buffalo.edu/~lziarek/hosc.pdf[Flattening tuples in an SSA intermediate representation].
934 Lukasz Ziarek, Stephen Weeks, and Suresh Jagannathan.
940 * <!Anchor(ACSD)> ACSD = International Conference on Application of Concurrency to System Design
941 * <!Anchor(BABEL)> BABEL = Workshop on multi-language infrastructure and interoperability
942 * <!Anchor(CC)> CC = International Conference on Compiler Construction
943 * <!Anchor(DPCOOL)> DPCOOL = Workshop on Declarative Programming in the Context of OO Languages
944 * <!Anchor(ESOP)> ESOP = European Symposium on Programming
945 * <!Anchor(FLOPS)> FLOPS = Symposium on Functional and Logic Programming
946 * <!Anchor(FPCA)> FPCA = Conference on Functional Programming Languages and Computer Architecture
947 * <!Anchor(HOSC)> HOSC = Higher-Order and Symbolic Computation
948 * <!Anchor(IC)> IC = Information and Computation
949 * <!Anchor(ICCL)> ICCL = IEEE International Conference on Computer Languages
950 * <!Anchor(ICFP)> ICFP = International Conference on Functional Programming
951 * <!Anchor(IFL)> IFL = International Workshop on Implementation and Application of Functional Languages
952 * <!Anchor(IVME)> IVME = Workshop on Interpreters, Virtual Machines and Emulators
953 * <!Anchor(JFLA)> JFLA = Journees Francophones des Langages Applicatifs
954 * <!Anchor(JFP)> JFP = Journal of Functional Programming
955 * <!Anchor(LASC)> LASC = Lisp and Symbolic Computation
956 * <!Anchor(LFP)> LFP = Lisp and Functional Programming
957 * <!Anchor(ML)> ML = Workshop on ML
958 * <!Anchor(PLDI)> PLDI = Conference on Programming Language Design and Implementation
959 * <!Anchor(POPL)> POPL = Symposium on Principles of Programming Languages
960 * <!Anchor(PPDP)> PPDP = International Conference on Principles and Practice of Declarative Programming
961 * <!Anchor(PPoPP)> PPoPP = Principles and Practice of Parallel Programming
962 * <!Anchor(TCS)> TCS = IFIP International Conference on Theoretical Computer Science
963 * <!Anchor(TIC)> TIC = Types in Compilation
964 * <!Anchor(TLDI)> TLDI = Workshop on Types in Language Design and Implementation
965 * <!Anchor(TOPLAS)> TOPLAS = Transactions on Programming Languages and Systems
966 * <!Anchor(TPHOLs)> TPHOLs = International Conference on Theorem Proving in Higher Order Logics