EineVan-Wijngaarden-Grammatik (auch:vW-Grammatik oderW-Grammatik) ist eineZweistufengrammatik aus derCompilerprogrammierung, eine Art vonformaler Grammatik, die es möglich macht, mit einer endlichen Menge von Regeln potentiell unendliche Grammatiken zu definieren.
Adriaan van Wijngaarden erfand diese Technik und benutzte sie bei der Definition der ProgrammierspracheAlgol 68, um einige syntaktische Forderungen streng definieren zu können, die man bis dahin in natürlicher Sprache hatte formulieren müssen – z. B. dassBezeichner in ihrem Geltungsbereich nicht mehrfach deklariert sind und dass der Gebrauch der Bezeichner mit ihrer Deklaration übereinstimmt.
Eine Van-Wijngaarden-Grammatik besteht aus einer endlichen Menge vonMetaregeln, die dazu verwendet werden, aus einer endlichen Menge vonHyperregeln beliebig vieleProduktionsregeln abzuleiten. Hyperregeln beschränken die zulässigen Kontexte auf der oberen Stufe. WieAlain Colmerauer feststellte, ist diekonsistente Substitution, die im Ableitungsprozess verwendet wird, im Wesentlichen äquivalent zurUnifikation, wie sie inProlog stattfindet.
Es wurde festgestellt, dass Zweistufengrammatiken auch außerhalb ihres ursprünglichen Anwendungsfeldes von Nutzen sein können.
Anthony Fisher versuchte, einen Parser für allgemeine W-Grammatiken zu konstruieren.[1]
Es ist vorgeschlagen worden, die Methode in derErgonomie zur Beschreibung komplexer menschlicherHandlungen zu verwenden.
Vom Security-ExpertenEric Filiol wurde in einer formalen Definition vonmetamorphen Computerviren ein Vergleich zur Zweistufengrammatik und Van-Wijngaarden-Grammatik hergestellt.[2]