L' autre jour, je lisais le document intitulé Fundamental Concepts in Programming Languages de C. Strachey , dans lequel j'ai lu quelque chose qui m'était assez étrange. Citant directement (avec la partie étrange surlignée par moi):
Face à la situation telle qu'elle existe aujourd'hui, où il existe une méthode généralement connue pour décrire une certaine classe de grammaires (connue sous le nom de BNF ou sans contexte), le premier instinct de ces mathématiciens semble être d' étudier les limites du BNF - ce que pouvez-vous exprimer en BNF même au prix de constructions très lourdes et artificielles? Cela peut être une question d'un certain intérêt mathématique (quoi que cela signifie), mais cela a très peu de pertinence pour les langages de programmation où il est plus important de découvrir de meilleures méthodes de description de la syntaxe que BNF (qui est déjà à la fois gênant et inadéquat pour ALGOL) que d' examiner les limites possibles de ce que nous savons déjà être une technique insatisfaisante .
Y a-t-il une raison particulière pour laquelle l'auteur considère le BNF comme une technique peu satisfaisante pour décrire les langues? Serait-ce parce que vous ne pouvez décrire la syntaxe et non la sémantique qu'avec une seule grammaire BNF (cependant, vous pouvez l'étendre pour décrire la sémantique opérationnelle en la transformant en grammaire attributaire)?