The joint subcommittee has been discussing the exact syntactic
relationship between the SLDL constraint language and the Design
Constraint Description Language (DCDL). The relationship is formed
from a number of different kinds of requirements:
1) We want the constraint specifications to be a subset of TCL, so
that they can fit directly into a scripting file.
2) We want the constraint specifications to be a subset of the SLDL
constraint language, so that they can also fit directly into an
SLDL facet.
3) We do not wish to impose a general requirement on the SLDL
constraint language that it match TCL syntax.
These requirements sound contradictory. However, if we agree within
SLDL to represent function and relation invocation by juxtaposition
rather than the Fortran and C-like parameter notation, we are OK for
most things. The only kicker is the mechanism by which TCL allows for
"optional named parameter association" (the specification of arguments
to the function or command that are usually omitted) using the Unix
command line convention of "-argname argument".
This is a specialized use of the "-", and it has a couple of
significant implications if we adopt it for SLDL in general:
1) It implies a necessity to separate unary (and possibly binary) uses
of the "-" command (as in -a = 0-a) with a space between the minus
sign and the argument; i.e., "-a" and "- a" are now different, with
the former being an argument name and the latter an expression.
2) It means we follow the Unix convention of allowing argument names
just about anywhere in the invocation.
Frankly, these are fairly significant syntactic restrictions, and I
(and the rest of the SLDL Constraint Language WG) are unwilling to
adopt them for the language in general. It may be possible to adopt
them in limited cases, however. To be more specific:
Some of the discussion in the SLDL committee has concerned the problem
of specifying the connection between descriptions written in two
different languages. This has led to a desired feature that one be
able to specify, within some part of SLDL (whether the constraint
language or some other part is left open for the moment) the syntax
and semantic relationships of other languages. The TCL syntax is
simply one such language, and a simple one a that (and therefore
excellent as a test case).
Unfortunately, this feature was delayed (for good reason) until SLDL
Phase II. However, since it is anticipated in some form this need not
keep us from going forward. Specifically, I propose the following
(which I believe is in keeping with the present plans and schedule):
1) We continue to develop DCDL so as to be operable within TCL, which
is a requirement.
2) We make sure the semantics of DCDL and SLDL agree. We do this by
specifying the semantics of DCDL in relation to standard SLDL
facets, using preliminary information models and later SLDL facet
definitions, as agreed.
3) The syntactic relationship is initially a fairly straightforward
transformation from the DCDL syntax into SLDL.
4) As one of the first tasks of SLDL Phase II, we will tackle the task
of specifying the exact syntactic relationship between DCDL and
the SLDL facets as the first test case of the SLDL language
definition capability. It is an excellent test case, being simple
and self-contained.
This seems to meet all the requirements of the committee; the DAC demo
is not endangered, all of the relationships are defined and working,
and the eventual goal of having DCDL be a subset of SLDL is maintained
(albeit by pushing it out to be a goal of Phase II SLDL rather than
Phase I SLDL). The transformation between DCDL and SLDL will take
care of initial tool concerns, while later tool uses will be met by
the expanded SLDL Phase II definition.
Finally, I would like to again emphasize the distinction between
describing constraints and writing scripts that check constraints. It
seems to me that we confuse these at our peril. There is a
relationship between them, of course --- we want to be able to check
the constraints that we have described --- but to confuse the two is
to confuse action with description. Essentially, the clash between
the two concepts is what we are dealing with here.
I am, of course, open to comments and questions on any of the above.
Dave Barton <*>
dlb@averstar.com )0(
http://www.averstar.com/~dlb