Ich habe neulich die Arbeit Fundamental Concepts in Programming Languages von C. Strachey gelesen, in der ich etwas gelesen habe, das mir ziemlich fremd war. Direkt zitieren (mit dem von mir hervorgehobenen seltsamen Teil):
Angesichts der heutigen Situation, in der es eine allgemein bekannte Methode zur Beschreibung einer bestimmten Klasse von Grammatiken gibt (bekannt als BNF oder kontextfrei), scheint der erste Instinkt dieser Mathematiker darin zu bestehen, die Grenzen von BNF zu untersuchen - was auch immer Können Sie in BNF auch auf Kosten sehr umständlicher und künstlicher Konstruktionen ausdrücken? Dies mag eine Frage von mathematischem Interesse sein (was auch immer das bedeutet), aber es hat nur eine sehr geringe Relevanz für Programmiersprachen, bei denen es wichtiger ist, bessere Methoden zur Beschreibung der Syntax zu finden als BNF (was für ALGOL bereits unpraktisch und unangemessen ist). als es ist , die möglichen Grenzen dessen zu untersuchen, was wir bereits als unbefriedigende Technik kennen .
Gibt es einen bestimmten Grund, warum der Autor die BNF als unbefriedigende Technik zur Beschreibung von Sprachen ansieht? Könnte es sein, dass Sie die Syntax und nicht die Semantik nur mit einer einzigen BNF-Grammatik beschreiben können (Sie können sie jedoch erweitern, um die operative Semantik zu beschreiben, indem Sie sie in eine Attributgrammatik umwandeln)?