Metoda pierwszeństwa operatorów

Metoda pierwszeństwa operatorów (ang. operator precedence parsing) – rodzaj wstępującej analizy składniowej typu shift-reduce, mający zastosowane dla większości języków posiadających gramatykę operatorową, czyli taką, że prawa strona każdej produkcji nie zawiera dwóch sąsiadujących nieterminali. Dla takiej gramatyki, na podstawie priorytetów i łączności operatorów, można określić relacje pierwszeństwa operatorów dla wszystkich terminali. Analizator składniowy posiada stos, na którym może przechowywać terminale. Podczas działania na podstawie relacji pierwszeństwa pomiędzy wierzchołkiem stosu a kolejnym symbolem wejściowym oraz między wierzchołkiem stosu a ostatnio z niego usuniętym symbolem podejmowana jest decyzja o przesunięciu wejścia na stos, usunięcia wierzchołka stosu lub zgłoszeniu błędu. Kiedy uda się przeczytać całe wejście oraz opróżnić stos, słowo jest akceptowane.

Zaletami tej metody są: łatwość ręcznego zaimplementowania oraz możliwość modyfikacji pierwszeństwa i łączności operatorów w trakcie działania. Czasami bywa stosowany jako podparser do analizy wyrażeń, zaś całością języka zajmuje się inne, mocniejsze narzędzie.

Bibliografia[edytuj | edytuj kod]

  • Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Kompilatory : reguły, metody i narzędzia. Warszawa: WNT, 2002. ISBN 83-204-2656-1.