Line 6: |
Line 6: |
| * http://stderr.org/pipermail/inquiry/2003-March/000114.html | | * http://stderr.org/pipermail/inquiry/2003-March/000114.html |
| * http://stderr.org/pipermail/inquiry/2005-February/002360.html | | * http://stderr.org/pipermail/inquiry/2005-February/002360.html |
− |
| |
− | ==Alternative Versions==
| |
− |
| |
− | A notation in the style of <math>S :> T\!</math> is now introduced, to be read among many others in this manifold of ways:
| |
− |
| |
− | {| align="center" cellpadding="4" width="90%"
| |
− | |-
| |
− | | <math>S\ \operatorname{covers}\ T</math>
| |
− | |-
| |
− | | <math>S\ \operatorname{governs}\ T</math>
| |
− | |-
| |
− | | <math>S\ \operatorname{rules}\ T</math>
| |
− | |-
| |
− | | <math>S\ \operatorname{subsumes}\ T</math>
| |
− | |-
| |
− | | <math>S\ \operatorname{types~over}\ T</math>
| |
− | |}
| |
− |
| |
− | The form <math>S :> T\!</math> is here recruited for polymorphic employment in at least the following types of roles:
| |
− |
| |
− | # To signify that an individually named or quoted string <math>T\!</math> is being typed as a sentence <math>S\!</math> of the language of interest <math>\mathfrak{L}.</math>
| |
− | # To express the fact or to make the assertion that each member of a specified set of strings <math>T \subseteq \mathfrak{A}^*</math> also belongs to the syntactic category <math>S,\!</math> the one that qualifies a string as being a sentence in the relevant formal language <math>\mathfrak{L}.</math>
| |
− | # To specify the intension or to signify the intention that every string that fits the conditions of the abstract type <math>T\!</math> must also fall under the grammatical heading of a sentence, as indicated by the type <math>S,\!</math> all within the target language <math>\mathfrak{L}.</math>
| |
− |
| |
− | In these types of situation the letter <math>S,\!</math> that signifies the type of a sentence in the language of interest, is called the ''initial symbol'' or the ''sentence symbol'' of a candidate formal grammar for the language, while any number of letters like <math>T,\!</math> signifying other types of strings that are necessary to a reasonable account or a rational reconstruction of the sentences that belong to the language, are collectively referred to as ''intermediate symbols''.
| |
− |
| |
− | Combining the singleton set <math>\{ S \}\!</math> whose sole member is the initial symbol with the set <math>\mathfrak{Q}</math> that assembles together all of the intermediate symbols results in the set <math>\{ S \} \cup \mathfrak{Q}</math> of ''non-terminal symbols''. Completing the package, the alphabet <math>\mathfrak{A}</math> of the language is also known as the set of ''terminal symbols''. In this discussion, I will adopt the convention that <math>\mathfrak{Q}</math> is the set of ''intermediate symbols'', but I will often use <math>q\!</math> as a typical variable that ranges over all of the non-terminal symbols, <math>q \in \{ S \} \cup \mathfrak{Q}.</math> Finally, it is convenient to refer to all of the symbols in <math>\{ S \} \cup \mathfrak{Q} \cup \mathfrak{A}</math> as the ''augmented alphabet'' of the prospective grammar for the language, and accordingly to describe the strings in <math>( \{ S \} \cup \mathfrak{Q} \cup \mathfrak{A} )^*</math> as the ''augmented strings'', in effect, expressing the forms that are superimposed on a language by one of its conceivable grammars. In certain settings it becomes desirable to separate the augmented strings that contain the symbol <math>S\!</math> from all other sorts of augmented strings. In these situations, the strings in the disjoint union <math>\{ S \} \cup (\mathfrak{Q} \cup \mathfrak{A} )^*</math> are known as the ''sentential forms'' of the associated grammar.
| |
− |
| |
− | In forming a grammar for a language statements of the form <math>W :> W',\!</math>
| |
− | where <math>W\!</math> and <math>W'\!</math> are augmented strings or sentential forms of specified types that depend on the style of the grammar that is being sought, are variously known as ''characterizations'', ''covering rules'', ''productions'', ''rewrite rules'', ''subsumptions'', ''transformations'', or ''typing rules''. These are collected together into a set <math>\mathfrak{K}</math> that serves to complete the definition of the formal grammar in question.
| |
− |
| |
− | Correlative with the use of this notation, an expression of the form <math>T <: S,\!</math> read to say that <math>T\!</math> is covered by <math>S,\!</math> can be interpreted to say that <math>T\!</math> is of the type <math>S.\!</math> Depending on the context, this can be taken in either one of two ways:
| |
− |
| |
− | # Treating <math>T\!</math> as a string variable, it means that the individual string <math>T\!</math> is typed as <math>S.\!</math>
| |
− | # Treating <math>T\!</math> as a type name, it means that any instance of the type <math>T\!</math> also falls under the type <math>S.\!</math>
| |
− |
| |
− | In accordance with these interpretations, an expression of the form <math>t <: T\!</math> can be read in all of the ways that one typically reads an expression of the form <math>t : T.\!</math>
| |
− |
| |
− | There are several abuses of notation that commonly tolerated in the use of covering relations. The worst offense is that of allowing symbols to stand equivocally either for individual strings or else for their types. There is a measure of consistency to this practice, considering the fact that perfectly individual entities are rarely if ever grasped by means of signs and finite expressions, which entails that every appearance of an apparent token is only a type of more particular tokens, and meaning in the end that there is never any recourse but to the sort of discerning interpretation that can decide just how each sign is intended. In view of all this, I continue to permit expressions like <math>t <: T\!</math> and <math>T <: S,\!</math> where any of the symbols <math>t, T, S\!</math> can be taken to signify either the tokens or the subtypes of their covering types.
| |