-
Notifications
You must be signed in to change notification settings - Fork 6
/
index.html
330 lines (305 loc) · 13.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Standard ML Family GitHub Project</title>
<link href="global.css" rel="stylesheet" type="text/css">
</head>
<body BGCOLOR="ffffff">
<h1>Standard ML Family GitHub Project</h1>
This is the web page for the Standard ML Family GitHub
project (organization name: SMLFamily). This site is very much "under
construction", and it replaces the earlier
SourceForge web site for standardml.org (which now redirects to this
page). Contributions, corrections, and suggestions for additional
information are very much welcomed.
<h2>Project Description</h2>
<P>
The Standard ML Family project provides a home for online versions
of various formal definitions of Standard ML, including the
"Definition of Standard ML, Revised" (Standard ML 97).
The site also supports coordination between different
implementations of the Standard ML (SML) programming language by
maintaining common resources such as the documentation for the
<a href="Basis/index.html">Standard ML Basis Library</a>
and standard test suites. The goal is to increase compatibility
and resource sharing between Standard ML implementations.
</P>
<P>
The site includes a <a href="#History">history section</a> devoted to
the history of ML, and of Standard ML in particular. This section will
contain a collection of original source documents relating to the
design of the language.
</P>
<!--
<h2>Project Members</h2>
This section under revision.
The project members of the SourceForge project (with SourceForge login names) are:
<ul>
<li>Nick Benton (nickbenton)
<li>Dave Berry (dr_dave_berry)
<li>Matthias Blume (mblume)
<li>Henry Cejtin (henrycejtin)
<li>Allyn Dimock <dimock>
<li>Martil Elsman (mael)
<li>Lal George (lgeorge)
<li>Niels Hallenberg (faxe)
<li>Robert Harper (rharper) [Project Manager]
<li>Ken Friis Larsen (kfl)
<li>David MacQueen (macqueen) [Project Manager]
<li>Tom Murphy (tom7)
<li>Claudio Russo (cvr)
<li>Peter Sestoft (sestoft) [Project Manager]
<li>David Swasey (dswasey)
<li>Stephen Weeks (sweeks) [Project Manager]
</ul>
Contact any of the designated Project Managers to become a member of
the project, supplying your SourceForge login name. You can also ask
to be a Project Manager on the project. Being a Project Manager
grants you additional capabilities, such as maintaining the mailing
lists, adding new members, etc.
-->
<h2>Definitions of Standard ML</h2>
<p>With the permission of MIT Press, we are able to make
<a href="sml90-defn.pdf">The Definition of Standard ML</a> (SML '90)
and
<a href="sml97-defn.pdf">The Definition of Standard ML, Revised</a>
(SML '97) available for downloading as pdf files. These are
(currently) formatted for US letter page size. Printed copies
of the SML '97 definition are available from
<a href="http://mitpress.mit.edu/books/definition-standard-ml">MIT Press.</a>
</p>
<p>
The SML '90 definition is complete, including the index, but we are still
working on recreating the index for the SML '97 definition.
</p>
<!--
<p>
The source LaTeX files for the SML '90 and SML '97 definitions are
now maintained at GitHub under the organization SMLFamily. Contact
<a href="mailto:[email protected]>David MacQueen</a> if you wish to
join this organization and have access to the repositories.
</p>
-->
The sources to the two editions of The Definition are available on GitHub as follows:
<ul>
<li><a href="https://github.com/SMLFamily/sml90">The Definition of Standard ML</a><p>The original by Robin Milner, Mads Tofte, and Robert Harper.</p></li>
<li><a href="https://github.com/SMLFamily/sml97">The Definition of Standard ML, Revised</a><p>The 1997 revision by Robin Milner, Mads Tofte, Robert
Harper, and David MacQueen.</p></li>
<li><a href="https://github.com/SMLFamily/SML-The-Living-Language">SML, The Living
Language (aka Successor ML)</a>.<p>Continually evolving version
of The Definition, with corrections and extensions. Derived from the 1990 and 1997 editions.</p></li>
</ul>
The Standard ML Basis Library:
<ul>
<li><a href="Basis/index.html">Standard ML Basis Library</a>, by Emden Gansner and John Reppy.
<p>This document is also available in hard copy with additional tutorial material from
<a href="http://www.cambridge.org/us/academic/subjects/computer-science/programming-languages-and-applied-logic/standard-ml-basis-library?format=PB?format=PB">Cambridge University Press</a>.</p>
</li>
</ul>
Claudio Russo's <emph>Non-Standard ML</emph> is available on GitHub at <a
href="https://github.com/SMLFamily/nsml">Non-Standard ML</a>.
<p>
The Concrete Syntax of Standard ML:
<ul>
<li><a href="http://www.mpi-sws.org/~rossberg/sml.html">Andreas Rossberg's CFG for Standard ML concrete syntax.</a></li>
</ul>
</p>
Some valuable critiques of The Definitions:
<ul>
<li><a href="http://www.cs.ukc.ac.uk/pubs/1993/569/">Mistakes and Ambiguities
in The Definition of Standard ML</a>, by Stefan Kahrs.</li>
<li><a href="http://www.mpi-sws.org/~rossberg/sml-defects.html">Defects in the
Revised Definition of Standard ML</a>, by Andreas Rossberg.</li>
</ul>
Machine-checked meta-theory of Standard ML:
<ul>
<LI><A HREF="https://github.com/SMLFamily/ttsml">Mechanization of the
Type-Theoretic Definition of Standard ML</A>.
<P>Twelf formalization by Karl Crary and Robert Harper of the Harper-Stone <A
HREF="http://www.cs.cmu.edu/~rwh/papers/ttisml/ttisml.pdf">Type-Theoretic
Interpretation of Standard ML</A>, together with a complete verification of
type safety for Standard ML.</P>
</LI>
</ul>
Language design critiques and reviews:
<ul>
<li>
<a href="papers/Appel-critique-SML.pdf">A Critique of Standard
ML</a> by Andrew Appel, Princeton CS-TR-364-92, Nov 1992.
Also published in Journal of Functional Programming, 3,4, 1993,
pp. 391-429.</p>
</li>
<li>
<a href="papers/MacQueen-reflections.pdf">Reflections on Standard
ML</a> by David MacQueen. Published in "Functional Programming,
Concurrency, Simulation and Automated Reasoning", Peter Lauer,
Editor, Springer-Verlag LNCS Vol 693, 1994, pp. 32-46.
</li>
</ul>
Both of these design critiques are somewhat outdated because they
predate the revised Definition.
<h2>Mailing lists</h2>
The SourceForge project hosts two mailing lists relating to Standard
ML. Visit the info page for a list to subscribe.
<blockquote>
Name: sml-implementers<br>
Address: <a href="mailto:[email protected]">[email protected]</a><br>
Info: <a href="http://lists.sourceforge.net/mailman/listinfo/sml-implementers">http://lists.sourceforge.net/mailman/listinfo/sml-implementers</a><br>
Subscribers: <a href="http://lists.sourceforge.net/lists/roster/sml-implementers">
http://lists.sourceforge.net/lists/roster/sml-implementers</a><br>
<br>
Name: sml-list<br>
Address: <a href="mailto:[email protected]">[email protected]</a><br>
Info: <a href="http://lists.sourceforge.net/mailman/listinfo/sml-list">http://lists.sourceforge.net/mailman/listinfo/sml-list</a><br>
Subscribers: <a href="http://lists.sourceforge.net/lists/roster/sml-list">
http://lists.sourceforge.net/lists/roster/sml-list</a>
</blockquote>
<h2>Successor ML</h2>
<p>
Recently discussions of improvements and extensions of the Standard ML design
have resumed, under the working title "Successor ML". This project
includes a subsidiary site
<a href="successor-ml/index.html">Successor ML</a> devoted to this
ongoing work. Earlier discussions on the successor-ml.org wiki are
available there, and a new wiki has been started for future
discussions.
</p>
<h2>Implementations, Extensions, and Variations of Standard ML</h2>
<UL>
<LI>
<A HREF="http://www.smlnj.org">
<strong>Standard ML of New Jersey (SML/NJ)</strong></A>
<P>A free, open-source implementation of SML '97 that generates
native code for a broad range of platforms.</P>
</LI>
<LI>
<A HREF="http://mosml.org"><strong>Moscow ML</strong></A>.
<P>With Version 2.0, now implements SML '97 (including modules) with some
extensions.
</P>
</LI>
<LI>
<A HREF="http://www.dcs.ed.ac.uk/home/mlj/index.html"><strong>MLj</strong></A>.
<P>Implements an SML '97 subset, compiling to the JVM with extensions for working with
Java.<BR>[MLj has moved from Persimmon IT to Edinburgh.]
</P>
</LI>
<LI>
<A HREF="http://melsman.github.io/mlkit"><strong>MLKit</strong></A>.
<P>Version 3 implements SML '97, uses region analysis for memory management.</P>
</LI>
<LI>
<A HREF="http://www.smlserver.org/smltojs"><strong>SMLtoJs</strong></A>.
<P>A compiler from SML to JavaScript, based on MLKit.</P>
</LI>
<LI>
<A HREF="http://www.smlserver.org/ide"><strong>SMLonline</strong></A>.
<P>Compile and run SML programs in the browser, based on SMLtoJs.</P>
</LI>
<LI>
<A HREF="http://www.mlton.org/"><strong>MLton</strong></A>.
<P>A whole-program optimizing SML Compiler. (SML '97)</P>
</LI>
<LI>
<A HREF="http://www.polyml.org"><strong>Poly/ML</strong></A>,
<A HREF="mailto:[email protected]">Dave Matthew's Standard ML Compiler</A>.
<P>Formerly a product of Abstract, Inc., Poly/ML is now is now available as a free, open source implementation.
Version 4 implements SML '97.
</P>
</LI>
<LI>
<A HREF="http://www.cs.bham.ac.uk/research/poplog/freepoplog.html">
<strong>Poplog Standard ML</strong></A>.
<P>Now available as free software (SML '90).</P>
</LI>
<LI>
<A HREF="https://github.com/RobertHarper/TILT-Compiler.git"><strong>TILT</strong></A>.
<P>A certifying compiler for Standard ML based on typed intermediate languages.</P>
</LI>
<LI>
<A HREF="https://github.com/Ravenbrook/mlworks"><strong>MLWorks</strong></A>
<P>Formerly a product of Harlequin, Ltd, ML Works is now a freely available, open-source system owned by Ravenbrook.</P>
</LI>
<LI>
<A HREF="http://www.mpi-sws.org/~rossberg/hamlet/"><strong>HaMLet</strong></A>
<P>A faithful interpreter for SML'97, written entirely in SML, as a direct translation of the formal language definition.</P>
</LI>
<LI>
<A HREF="https://cakeml.org/"><strong>CakeML</strong></A>
<P>CakeML is a dialect of ML designed to be both easy to program in and easy to reason about formally in proof assistants for higher-order logic.</P>
</LI>
<LI>
<A HREF="http://www.pllab.riec.tohoku.ac.jp/smlsharp/"><strong>SML#</strong></A>
<P>SML# is a new programming language in the Standard ML family being developed at RIEC (Research Institute of Electrical
Communication), Tohoku University . Its design goal is to provide practically important extensions while maintaining
the compatibility of the Definition of Standard ML.</P>
</LI>
<LI>
<A HREF="http://www.ps.uni-saarland.de/alice/"><strong>Alice ML</strong></a>
<P>An extension of SML with rich support for concurrent and distributed programming, e.g., futures, threads, higher-order marshalling (including code), and type-safe dynamic module import & export.</P>
</LI>
<LI>
<A HREF="http://manticore.cs.uchicago.edu"><strong>Manticore</strong></A>
<P>Manticore is a high-level parallel programming language aimed at general-purpose applications running on multi-core
processors. Manticore supports parallelism at multiple levels: explicit concurrency and coarse-grain parallelism via
CML-style constructs and fine-grain parallelism via various light-weight notations, such as parallel tuple expressions
and NESL/Nepal-style parallel array comprehensions.
</P>
</LI>
</UL>
<h2>Standard ML smackage repository</h2>
<p>
The <a href="https://github.com/standardml/smackage">Standard ML
Smackage</a> repository is a resource of community contributed code.
</p>
<h2><a name="History">Standard ML History</h2>
<p>
The <a href="history/index.html">Standard ML History</a> pages are the
beginnings of a collection of documents related to the history of the
development of Standard ML. This subsite is in the early stages of
development, and contributions or suggestions are welcome.
</p>
<h2>Close Cousins of the SML Family</h2>
<UL>
<LI>
<A HREF="http://ocaml.org"><strong>OCaml</strong></A>
<P>OCaml is an industrial strength programming language supporting functional,
imperative and object-oriented styles. It is a close relative of the SML
family that is enjoying considerable adoption in industry, and inspiring new
dialects in the ML family, such as F#.
</P>
</LI>
<LI>
<A HREF="http://fsharp.org"><strong>F#</strong></A>
<P>F# is a mature, open source, cross-platform, functional-first programming
language which empowers users and organizations to tackle complex computing
problems with simple, maintainable and robust code. Originally derived from
O'Caml, F# is a full-scale industrial-strength language in the ML family that
is now open source.
</P>
</LI>
<LI>
<A HREF="http://mth.github.io/yeti/"><strong>Yeti</strong></A>
<P>
Yeti is ML style functional programming language, that runs on the JVM.
</P>
</LI>
</UL>
<h2>Other relevant links</h2>
<UL>
<LI>
<a href="http://existentialtype.wordpress.com">Existential Type</a>,
Bob Harper's Blog on topics including SML, type theory, logic, proof.
</LI>
<LI>
<A HREF="http://www.smlserver.org"><strong>SMLserver</strong></A>:
Serve the web with Standard ML.
</LI>
</UL>
<br>
<hr>
<address><a href="mailto:[email protected]">Dave MacQueen</a></address>
<!-- Created: Fri May 30 14:47:10 EST 2014 -->
<!-- hhmts start -->Last modified: Mon Sep 7 17:22:16 PDT 2015 <!-- hhmts end -->
</body>
</html>