[SCL] Representing constraints that go beyond EBNF
John F. Sowa
sowa at bestweb.net
Mon Nov 17 21:43:11 CST 2003
Murray,
I'm glad that we agree on many of the most important issues.
What you tell me about those people makes me feel better
about them, and if we find ourselves working with them
at some point, I would be happy to do so.
In any case, the main point I wanted to make is that we can
adopt the practice of defining a language in itself. That
is done in the ISO standard for Z, which uses Z to define Z.
Following are the steps:
1. EBNF, by itself, cannot state the context-sensitive
constraints that associate bound variables with their
defining points (i.e., quantifiers or declarations).
2. EBNF can be defined as a concrete syntax for a subset of
FOL (or SCL). I recommend that we include a section in
the proposed standard that defines ISO EBNF as a concrete
syntax for a subset of SCL. (This would be a normative
section that would also serve as an illustration of how
SCL can be used to define the semantics of a language.)
3. Those parts of the syntax and semantics that need greater
expressive power than EBNF can be stated in any of the
concrete languages defined in the document (KIF, CGIF,
or traditional infix notation for predicate calculus).
4. Therefore, we can use two concrete languages for defining
the syntax and semantics of SCL: EBNF for the context-free
constraints on SCL syntax, and KIF for the model-theoretic
semantics and for the context-sensitive constraints on the
syntax.
5. The combination of KIF and EBNF would constitute a complete
formal definition of SCL in SCL conformant languages.
Instead of using KIF as the defining language, we could use any
other concrete notation, such as traditional infix notation. That
would have the advantage of using two already well established
languages: EBNF and traditional predicate calculus.
In fact, we could make the Z people feel happy by defining Z as an
SCL conformant language, and then using Z as the supplement to EBNF.
That would have the advantage of (1) bringing Z into the SCL fold and
(2) honoring the ISO slogan of "Buiding standards on other standards."
John
PS: The criticism "don't know logic" isn't the only one I throw around.
I have also run into many people designing languages who don't have
a clue about the difference between a regular grammar, a context-free
grammar, or a context-sensitive grammar. That doesn't make them
stupid, but it often leads them to design kludges.
More information about the SCL
mailing list