Related articles |
---|
Low-Rent Syntax Donald.Lindsay@MATHOM.GANDALF.CS.CMU.EDU (1990-08-09) |
Re: Low-Rent Syntax norvell@csri.toronto.edu (Theo Norvell) (1990-08-12) |
Re: Low-Rent Syntax doug@nixtdc.UUCP (1990-08-12) |
Low-Rent Syntax steve@taumet.com (Stephen D. Clamage) (1990-08-12) |
Newsgroups: | comp.compilers |
From: | doug@nixtdc.UUCP (Doug Moen) |
Keywords: | parse,design |
Organization: | Nixdorf Computer Engineering Company |
References: | <25630@cs.yale.edu> <58091@lanl.gov> <1990Jul26.024449.1777@esegue.segue.boston.ma.us> <1990Jul27.034115.8747@esegue.segue.boston.ma.us> <1990Aug09.180536.18782@esegue.segue.boston.ma.us> |
Date: | Sun, 12 Aug 90 13:54:36 GMT |
Donald.Lindsay@MATHOM.GANDALF.CS.CMU.EDU:
>The Icon language (Arizona) and the Turing language (Toronto) both
>have "low rent" syntax - that is, the ";" is only needed (as a
>separator) when one writes multiple statements on a single line. In
>all other cases, it can be omitted.
>
>Is there now a "usual" way to implement this ?
Actually, Icon and Turing are quite different in this respect.
In Icon, ";" is required as a separator in order to write multiple
statements on a single line. If you need to split a single statement over
several lines, you must be careful about where you put the line break: the
part of the statement which preceeds the newline must not look like a
valid statement.
Turing, on the other hand, doesn't rely on such kludges. Turing does not
use ";" as a statement separator or terminator, and it treats newline as
ordinary white space. Instead, the grammar is designed so that you can
always unambigously tell when one statement stops and another begins.
Some examples:
- an if statement always begins with "if", and ends with "end if".
- a procedure call statement begins with an identifier,
and ends with a ) or an identifier.
- an assignment statement begins with an identifier,
and ends with an identifier, a literal constant, or ).
Note that in Turing, you can't write an arbitrary expression as a statement,
as you can in Icon or C. If you could, then the grammar would
be highly ambiguous. For example, you would not be able to
tell if "a - b" were one statement (ie, a-b;) or two (ie, a; -b;).
[Any idea whether it's particularly easy or hard to diagnose syntax errors
in Turing programs? -John]
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.