<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
The opinions regarding whether or not having semicolons seem to be
quite entrenched. That's why I'm raising a compromise proposal for
getting the risk of being rejected by both sides. ;-)<br>
<br>
When searching for a formal language which is very successful in a
non-European culture, we can easily find Ruby. As CTM is necessarily a
formal language, we may be able to copy some syntax-features from Ruby.
One of them is the equivalence of semicolons and newlines.<br>
<br>
This means:<br>
<blockquote>
<pre><pre><a class="moz-txt-link-freetext" href="http://psi.example.org/beatles/paul">http://psi.example.org/beatles/paul</a>
isa person;
has-shoesize(45);
is-member-of(the-beatles);
homepage <a class="moz-txt-link-rfc2396E" href="http://www.paulmccartney.com/"><http://www.paulmccartney.com/></a>;
.
</pre></pre>
</blockquote>
is equivalent to<br>
<blockquote>
<pre><pre><a class="moz-txt-link-freetext" href="http://psi.example.org/beatles/paul">http://psi.example.org/beatles/paul</a>
isa person
has-shoesize(45)
is-member-of(the-beatles)
homepage <a class="moz-txt-link-rfc2396E" href="http://www.paulmccartney.com/"><http://www.paulmccartney.com/></a>
.
</pre></pre>
</blockquote>
is equivalent to<br>
<blockquote>
<pre><pre><a class="moz-txt-link-freetext" href="http://psi.example.org/beatles/paul">http://psi.example.org/beatles/paul</a>;
isa person
has-shoesize(45)
is-member-of(the-beatles)
homepage <a class="moz-txt-link-rfc2396E" href="http://www.paulmccartney.com/"><http://www.paulmccartney.com/></a>
.
</pre></pre>
</blockquote>
is equivalent to<br>
<blockquote>
<pre><pre><a class="moz-txt-link-freetext" href="http://psi.example.org/beatles/paul">http://psi.example.org/beatles/paul</a>; isa person; has-shoesize(45); is-member-of(the-beatles); homepage <a class="moz-txt-link-rfc2396E" href="http://www.paulmccartney.com/"><http://www.paulmccartney.com/></a> .
</pre></pre>
</blockquote>
is equivalent to<br>
<blockquote>
<pre><pre><a class="moz-txt-link-freetext" href="http://psi.example.org/beatles/paul">http://psi.example.org/beatles/paul</a> isa person; has-shoesize(45); is-member-of(the-beatles); homepage <a class="moz-txt-link-rfc2396E" href="http://www.paulmccartney.com/"><http://www.paulmccartney.com/></a> .
</pre></pre>
</blockquote>
<br>
So, if we have multiple statements on one line, semicolons are
mandatory, while, if they are neatly packed on one statement per line,
semicolons are not mandatory. Although I do not feel very good when
making whitespace meaningful, it may still be a better approach,
because of course, whitespace is meaningful for humans.<br>
<br>
And actually, I find all these examples quite readable (from a Germanic
POV, though). Maybe we should allow the final dot to not need
whitespace before the dot (maybe this is already the case).<br>
<br>
<br>
<br>
Some formal languages have peculiarities due to
semicolon-newline-equivalence, an example from
<a class="moz-txt-link-freetext" href="http://docs.codehaus.org/display/GroovyJSR/Optional+semicolon">http://docs.codehaus.org/display/GroovyJSR/Optional+semicolon</a> :<br>
<blockquote>
<pre class="code-groovy">y = a +
b
</pre>
</blockquote>
Here, the parser sees that, due to the '+', the second operand ("b") is
missing. Thus, it does not treat the newline after "y = a +" as
end-of-statement.<br>
<blockquote>
<pre class="code-groovy">y = a
+ b</pre>
</blockquote>
Here, the parser does not see anyhting missing after the "y = a", thus
it treats "y = a" as a separate statement, while "+ b" is treated as
the next statement.<br>
<br>
<br>
It may very well be that CTM does not have such peculiarities (or if it
does, these can be satisfactorily rectified). If this is the case,
equivalence of semicolons and newlines may be a way to go.<br>
<br>
<br>
ciao,<br>
Xuân.<br>
<br>
</body>
</html>