File: LanguageChanges

package info (click to toggle)
mlton 20130715-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 60,900 kB
  • ctags: 69,386
  • sloc: xml: 34,418; ansic: 17,399; lisp: 2,879; makefile: 1,605; sh: 1,254; pascal: 256; python: 143; asm: 97
file content (119 lines) | stat: -rw-r--r-- 3,758 bytes parent folder | download
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="generator" content="AsciiDoc 8.6.8">
<title>LanguageChanges</title>
<link rel="stylesheet" href="./asciidoc.css" type="text/css">
<link rel="stylesheet" href="./pygments.css" type="text/css">


<script type="text/javascript" src="./asciidoc.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
asciidoc.install();
/*]]>*/
</script>
<link rel="stylesheet" href="./mlton.css" type="text/css"/>
</head>
<body class="article">
<div id="banner">
<div id="banner-home">
<a href="./Home">MLton 20130715</a>
</div>
</div>
<div id="header">
<h1>LanguageChanges</h1>
</div>
<div id="content">
<div id="preamble">
<div class="sectionbody">
<div class="paragraph"><p>We are sometimes asked to modify MLton to change the language it
compiles.  In short, we are very conservative about making such
changes.  There are a number of reasons for this.</p></div>
<div class="ulist"><ul>
<li>
<p>
<a href="DefinitionOfStandardML">The Definition of Standard ML</a> is an
extremely high standard of specification.  The value of the Definition
would be significantly diluted by changes that are not specified at an
equally high level, and the dilution increases with the complexity of
the language change and its interaction with other language features.
</p>
</li>
<li>
<p>
The SML community is small and there are a number of
<a href="StandardMLImplementations">SML implementations</a>.  Without an
agreed-upon standard, it becomes very difficult to port programs
between compilers, and the community would be balkanized.
</p>
</li>
<li>
<p>
Our main goal is to enable programmers to be as effective as
possible with MLton/SML.  There are a number of improvements other
than language changes that we could spend our time on that would
provide more benefit to programmers.
</p>
</li>
<li>
<p>
The more the language that MLton compiles changes over time, the
more difficult it is to use MLton as a stable platform for serious
program development.
</p>
</li>
</ul></div>
<div class="paragraph"><p>Despite these drawbacks, we have extended SML in a couple of cases.</p></div>
<div class="ulist"><ul>
<li>
<p>
<a href="ForeignFunctionInterface"> Foreign function interface</a>
</p>
</li>
<li>
<p>
<a href="MLBasis"> ML Basis system</a>
</p>
</li>
</ul></div>
<div class="paragraph"><p>We allow these language extensions because they provide functionality
that is impossible to achieve without them.  The Definition does not
define a foreign function interface.  So, we must either extend the
language or greatly restrict the class of programs that can be
written.  Similarly, the Definition does not provide a mechanism for
namespace control at the module level, making it impossible to deliver
packaged libraries and have a hope of users using them without name
clashes.  The ML Basis system addresses this problem.  We have also
provided a formal specification of the ML Basis system at the level of
the Definition.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_also_see">Also see</h2>
<div class="sectionbody">
<div class="ulist"><ul>
<li>
<p>
<a href="http://www.mlton.org/pipermail/mlton/2004-August/016165.html">http://www.mlton.org/pipermail/mlton/2004-August/016165.html</a>
</p>
</li>
<li>
<p>
<a href="http://www.mlton.org/pipermail/mlton-user/2004-December/000320.html">http://www.mlton.org/pipermail/mlton-user/2004-December/000320.html</a>
</p>
</li>
</ul></div>
</div>
</div>
</div>
<div id="footnotes"><hr></div>
<div id="footer">
<div id="footer-text">
</div>
<div id="footer-badges">
</div>
</div>
</body>
</html>