On the Syntax of Algorithmic Languages

The <italic>analytic grammar</italic> (a model which provides a rigorous description of syntactic analysis) is presented, and some of its fundamental properties are shown. Various submodels are discussed and equivalences among these are noted. An analytic grammar incorporates a set <italic>P</italic> of syntactic productions, and also a <italic>scan</italic> @@@@. At each successive “rewriting” in the analysis of a string <italic>x</italic>, @@@@ computes a subset of productions applicable to <italic>x</italic> (i.e., which may be used to “rewrite” <italic>x</italic>) from the set of productions which are potentially applicable to <italic>x</italic>. Thus each scan determines a class of grammars. It is shown that all <italic>analytic languages</italic> are recursive, and conversely, all recursive sets are analytic languages. All phrase structure grammars are analytic grammars. A simple sufficient condition is shown under which an analytic grammar provides unique analyses for all strings. Particularly relevant to syntactic analysis of <italic>algorithmic languages</italic> (i.e., languages which are used to specify computing algorithms) are the “leftmost” scans, each of which chooses a certain “leftmost” production. Conditions which provide equivalences among these scans are noted.