langage formel (suite)
Une séquence de mots v dans V* est une phrase de la grammaire si et seulement si σ v et v dans T* (itéré du vocabulaire terminal) : le langage engendré par la grammaire G est L(G) = {v|v dans T* et σ v}. Un langage L est à structure de phrase s’il existe une grammaire G telle que L = L(G).
Chomsky* a défini trois sous-classes progressivement plus restreintes parmi les grammaires à structure de phrase.
• Une grammaire est sensible au contexte si chaque production x : : = v satisfait la relation des longueurs l(x) ≤ l(v), dans laquelle L est le nombre de lettres d’un mot d’automate, c’est-à-dire le nombre de mots d’une phrase de langage.
• Une grammaire est libre du contexte si chaque production satisfait l(x) = 1. Elle peut être formalisée par un automate à pile.
• Une grammaire est régulière si chaque production est soit du type x : : = t, soit du type x : : = αt avec t dans T et x ou α dans X = V — T peut être formalisée par un automate fini.
Exemple. Soit la grammaire
G = {0, 1, σ}, P, σ, {0, 1},
dans laquelle la variable métalinguistique unique est {σ} = X et les productions ont au nombre de deux :
σ : : = 1σ011,
σ : : = 01.
Le langage correspondant peut alors être représenté comme l’ensemble de séquences suivant :
où tn indique la séquence obtenue par concaténation de n copies de t.
Quelques arbres de génération et leurs descriptions structurales dans L(G) permettent de vérifier que toute séquence n’appartient pas au langage :
Les principaux systèmes formels élaborés ou utilisés pour l’étude des langages sont la machine de Turing, le système de Post, les algorithmes de Markov, le calcul Lambda, le système de Semi-Thué, la notation polonaise, la forme normale de Backus, les automates à piles, la théorie des catégories, etc. L’exemple le plus représentatif et le plus fructueux d’emploi d’une grammaire formelle pour la définition d’un langage de programmation est celui d’ALGOL, où une grammaire à structure de phrase a permis dès 1960 de spécifier la plupart des règles syntaxiques.
M. D.
➙ Automates (théorie des) / Générative (grammaire) / Langage informatique / Modèle.
F. de Saussure, Cours de linguistique générale (Payot, 1916 ; nouv. éd., 1969). / H. B. Curry et R. Feys, Combinatory Logic, vol. I (Amsterdam, 1958 ; 2e éd., 1968). / N. Chomsky et G. A. Miller, « Introduction to the Formal Analysis of Natural Languages », dans Handbook of Mathematical Psychology, sous la dir. de R. D. Luce, vol. II (New York, 1963 ; trad. fr. l’Analyse formelle des langues naturelles, Gauthier-Villars et Mouton, 1968). / R. Martin, Logique contemporaine et formalisation (P. U. F., 1964). / J. Porte, Recherches sur la théorie générale des systèmes formels et sur les systèmes connectifs (Gauthier-Villars et Nauwelaerts, Louvain, 1965). / M. Gross et A. Lentin, Notions sur les grammaires formelles (Gauthier-Villars, 1967). / A. Culioli, C. Fuchs et M. Pêcheux, Considérations théoriques à propos du traitement formel du langage (Dunod, 1970). / B. A. Galler et A. J. Perlis, A View of Programming Languages (Reading, Mass., 1970).