Analizator składniowy

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Przykład analizy składniowej (parsingu) wyrażeń matematycznych

Analizator składniowy lub parser – program dokonujący analizy składniowej danych wejściowych w celu określenia ich struktury gramatycznej w związku z określoną gramatyką formalną. Nazwa analizator składniowy podkreśla analogię z analizą składniową stosowaną w gramatyce i językoznawstwie. Analizator składniowy umożliwia przetworzenie tekstu czytelnego dla człowieka w strukturę danych przydatną dla oprogramowania komputera.

Parsery wielu języków programowania bazują na gramatykach typu LALR. Najczęściej stosowane są własne standardy notacji oparte na notacji BNF.

Zastosowanie[edytuj | edytuj kod]

Najczęstszym zastosowaniem parserów jest analiza języków programowania. Mają one, zwykle, prostą gramatykę z nielicznymi wyjątkami. Jednakże gramatyki bezkontekstowe mają ograniczone zastosowanie, gdyż mogą one opisać jedynie ograniczony zestaw języków.

Ręczne pisanie parsera, szczególnie dla dużych języków, jest zajęciem dosyć żmudnym, dlatego powstały generatory parserów. Jednym z popularniejszych generatorów jest yacc, pozwalający na generowanie parserów w języku C. Jego odpowiednikiem rozprowadzanym na zasadach wolnego oprogramowania jest stworzony przez Free Software Foundation bison. Wśród przykładów generatorów parserów dla innych języków jest ocamlyacc dla języka OCaml oraz JavaCC i SableCC dla Javy.

Przykłady parserów[edytuj | edytuj kod]

Przykłady parserów używających analizy zstępującej:

  • Rekurencyjny analizator syntaktyczny
  • Parser LL (Left-to-right, Leftmost derivation)
  • X-SAIGA - eXecutable SpecificAtIons of GrAmmars. Zawiera publikacje dotyczące algorytmów analizy zstępującej.

Przykłady parserów używających analizy wstępującej:

Oprogramowanie[edytuj | edytuj kod]

Zobacz też[edytuj | edytuj kod]