[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[CoFI] CASL Concrete Syntax (comments)



Dear members,

Some personal ideas about the look and feel of the concrete syntax:

- I do not like the notation for constants but will live with it if it is
  important for higher-order.

- I do not like the "predicate" notation, too verbose even for me :-)

- I still prefer using "f:S*S->S" for naming operators in case of
  ambiguity over (f: S*S-> S). As a user I feel simpler to have a
  special (lexical) notation for saying "here I need to name an object
  more precisely, but nothing special is involved", rather than using
  parentheses for function applications, grouping and naming... Note
  that with (f: S*S -> S), it is only when we reach the arrow that we
  know what is involved since (f:S * S) can also be valid input. I
  understand that if we later want to add string literals we probably
  want to use "..." for that purpose. Any other idea ?

  I think this question may occur again when dealing with structuring stuff
  (describing morphisms)

- We need abbreviations (for headers and operation attributes),
  singular forms of keywords

- I prefer using \/, /\ =>, <=> over their verbose forms, except for the
  negation (I assume being sometimes un-coherent). I do not like
  having both if and implies (personal taste).

- In "constructs" we use commas, where in declarations we use * in the domain.
  Couldn't we find something more uniform...

- I regret "in" now being a keyword...

- I would add "{" and "}" in the list of SIGNS, but with the restriction that
  they must always be well balanced (This restriction is needed for subsort
  declaration S = { x:A . P(x) } to work when the syntax of P uses { and }.

  Note that this cannot be extended to "[" and "]" since these symbols are
  currently being used for compound identifiers. In arbitrary terms we would
  not always be sure to know in any every case which meaning was intended.

- We still need experiments with the precedence levels and I hope to find
  examples in other people's mail. We should ask them to write those examples
  with as few parentheses as possible to see what people understand. This is
  why I've done that in the examples I sent, even if I would have added
  additional parentheses for readability.

frederic