Abstract
The Standard ML of New Jersey compiler has been under development for five years now. We have developed a robust and complete environment for Standard ML that supports the implementation of large software systems and generates efficient code. The compiler has also served as a laboratory for developing novel implementation techniques for a sophisticated type and module system, continuation based code generation, efficient pattern matching, and concurrent programming features.
Supported in part by NSF grant CCR-9002786.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Andrew W. Appel. Runtime tags aren't necessary. Lisp and Symbolic Computation, 2:153–162, 1989.
Andrew W. Appel. Simple generational garbage collection and fast allocation. Software—Practice and Experience, 19(2):171–183, 1989.
Andrew W. Appel. A runtime system. Lisp and Symbolic Computation, 3(343–380), 1990.
Andrew W. Appel. Compiling with Continuations. Cambridge University Press, 1992.
Andrew W. Appel and Trevor Jim. Continuation-passing, closure-passing style. In Sixteenth ACM Symp. on Principles of Programming Languages, pages 293–302, 1989.
Andrew W. Appel and Trevor T. Y. Jim. Optimizing closure environment representations. Technical Report 168, Dept. of Computer Science, Princeton University, 1988.
Andrew W. Appel and David B. MacQueen. A Standard ML compiler. In Gilles Kahn, editor, Functional Programming Languages and Computer Architecture (LNCS 274), pages 301–324. Springer-Verlag, 1987.
Andrew W. Appel, James S. Mattson, and David R. Tarditi. A lexical analyzer generator for Standard ML. distributed with Standard ML of New Jersey, December 1989.
Andrew W. Appel and Zhong Shao. Callee-save registers in continuation-passing style. Technical Report CS-TR-326-91, Princeton Univ. Dept. of Computer Science, Princeton, NJ, June 1991.
David Berry. SML resources. sent to the SML mailing list by db@lfcs.ed.ac.uk, May 1991.
CAML: The reference manual (version 2.3). Projet Formel, INRIA-ENS, June 1987.
Eric C. Cooper and J. Gregory Morrisett. Adding threads to Standard ML. Technical Report CMU-CS-90-186, School of Computer Science, Carnegie Mellon University, December 1990.
N. G. deBruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation. Indag. Math., 34:381–392, 1972.
Bruce Duba, Robert Harper, and David MacQueen. Typing first-class continuations in ML. In Eighteenth Annual ACM Symp. on Principles of Prog. Languages, pages 163–173, Jan 1991.
Carl A. Gunter, Elsa L. Gunter, and David B. MacQueen. An abstract interpretation for ML equality kinds. In Theoretical Aspects of Computer Software. Springer, September 1991.
S. C. Johnson. Yacc — yet another compiler compiler. Technical Report CSTR-32, AT&T Bell Laboratories, Murray Hill, NJ, 1975.
James William O'Toole Jr. Type abstraction rules for references: A comparison of four which have achieved noteriety. Technical Report 380, MIT Lab. for Computer Science, 1990.
David Kranz. ORBIT: An optimizing compiler for Scheme. PhD thesis, Yale University, 1987.
P. J. Landin. The mechanical evaluation of expressions. Computer J., 6(4):308–320, 1964.
Xavier Leroy. The ZINC experiment: an economical implementation of the ML language. Technical Report No. 117, INRIA, February 1990.
Xavier Leroy. INRIA, personal communication, 1991.
Xavier Leroy and Pierre Weis. Polymorphic type inference and assignment. In Eighteenth Annual ACM Symp. on Principles of Prog. Languages, Jan 1991.
David B. MacQueen. The implementation of Standard ML modules. In ACM Conf. on Lisp and Functional Programming, pages 212–223, 1988.
David C. J. Matthews. Papers on Poly/ML. Technical Report T.R. No. 161, Computer Laboratory, University of Cambridge, February 1989.
Robin Milner and Mads Tofte. Commentary on Standard ML. MIT Press, Cambridge, Massachusetts, 1991.
Robin Milner, Mads Tofte, and Robert Harper. The Definition of Standard ML. MIT Press, Cambridge, Mass., 1989.
John H. Reppy. Asynchronous signals in Standard ML. Technical Report TR 90-1144, Cornell University, Dept. of Computer Science, Ithaca, NY, 1990.
John H. Reppy. Concurrent programming with events. Technical report, Cornell University, Dept. of Computer Science, Ithaca, NY, 1990.
John H. Reppy and Emden R. Gansner. The eXene library manual. Cornell Univ. Dept. of Computer Science, March 1991.
Guy L. Steele. Rabbit: a compiler for Scheme. Technical Report AI-TR-474, MIT, 1978.
David R. Tarditi, Anurag Acharya, and Peter Lee. No assembly required: Compiling Standard ML to C. Technical Report CMU-CS-90-187, Carnegie Mellon Univ., November 1990.
David R. Tarditi and Andrew W. Appel. ML-Yacc, version 2.0. distributed with Standard ML of New Jersey, April 1990.
Mads Tofte. Operational Semantics and Polymorphic Type Inference. PhD thesis, Edinburgh University, 1988. CST-52-88.
Mads Tofte. Type inference for polymorphic references. Information and Computation, 89:1–34, November 1990.
Andrew P. Tolmach and Andrew W. Appel. Debugging Standard ML without reverse engineering. In Proc. 1990 ACM Conf. on Lisp and Functional Programming, pages 1–12, June 1990.
Philip Wadler and Stephen Blott. How to make ad-hoc polymorphism less ad hoc. In Sixteenth Annual ACM Symp. on Principles of Prog. Languages, pages 60–76, Jan 1989.
Mitchell Wand. Continuation-based multiprocessing. In Conf. Record of the 1980 Lisp Conf., pages 19–28, August 1980.
Andrew K. Wright and Matthias Felleisen. A syntactic approach to type soundness. Technical Report COMP TR91-160, Rice University, April 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Appel, A.W., MacQueen, D.B. (1991). Standard ML of New Jersey. In: Maluszyński, J., Wirsing, M. (eds) Programming Language Implementation and Logic Programming. PLILP 1991. Lecture Notes in Computer Science, vol 528. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54444-5_83
Download citation
DOI: https://doi.org/10.1007/3-540-54444-5_83
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-54444-9
Online ISBN: 978-3-540-38362-8
eBook Packages: Springer Book Archive