Elemzése

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2021. december 25-én felülvizsgált verziótól ; az ellenőrzések 2 szerkesztést igényelnek .

A szintaktikai elemzés ( vagy parsing , szlengelemzés  ← angol elemzés ) a nyelvészetben és az informatikában egy természetes vagy formális nyelv lexémáinak (szavainak, jelzőinek)  lineáris sorozatának összehasonlítása a formális nyelvtannal . Az eredmény általában egy elemző fa (szintaktikai fa). Általában a lexikális elemzéssel együtt használják .  

Az elemző ( szleng  parser ← angol  parser ) egy olyan program vagy programrész, amely elemzést végez.

Az elemzés során a forrásszöveg adatstruktúrává , általában fává alakul, amely tükrözi a bemeneti szekvencia szintaktikai struktúráját, és alkalmas a további feldolgozásra.

Általános szabály, hogy a szintaktikai elemzés eredménye a mondat szintaktikai szerkezete, vagy függőségi fa formájában, vagy komponensfa formájában , vagy az első és a második reprezentációs módszer valamilyen kombinációja formájában. .

Hatókör

Minden, aminek " szintaxisa " van, alkalmas az automatikus elemzésre.

Algoritmusok típusai

Helyreállítás a hibákból

Érvénytelen bemeneti tokenekre a legegyszerűbb módja az elemzés befejezése és egy hibaüzenet megjelenítése. Azonban gyakran hasznos, ha egy elemzési kísérlet során a lehető legtöbb hibát találja meg. A leggyakoribb programozási nyelvek fordítói így viselkednek.

Így az elemző hibakezelőjének a következő feladatai vannak:

Az alábbiakban a legismertebb hibahelyreállítási stratégiákat ismertetjük.

Helyreállítás pánik módban

Ha hibát észlel, az elemző egyenként kihagyja a beviteli tokeneket, amíg meg nem találja a speciálisan meghatározott szinkronizálási tokenek egyikét . Általában az ilyen tokenek határolók, például: ; , ) vagy } . A szinkronizáló tokenek készletét az elemzett nyelv fejlesztőjének kell meghatároznia. Ezzel a helyreállítási stratégiával előfordulhat, hogy jelentős számú karakter kihagyásra kerül anélkül, hogy további hibákat keresne. Ez a helyreállítási stratégia a legkönnyebben megvalósítható.

Kifejezésszintű helyreállítás

Néha, amikor hiba történik, az elemző helyi korrekciót hajt végre a bemeneti adatfolyamon, hogy lehetővé tegye a folytatást. Például a programnyelv különböző utasításait elválasztó pontosvessző előtt az elemző bezárhatja a még be nem zárt zárójeleket. Ezt bonyolultabb megtervezni és megvalósítani, de bizonyos helyzetekben lényegesen jobban teljesít, mint a pánik felépülése. Természetesen ez a stratégia tehetetlen, ha a tényleges hiba azelőtt történt, hogy az elemző észlelte a hibát.

Bug produkciók

A leggyakoribb hibák ismerete lehetővé teszi a nyelv nyelvtanának bővítését olyan produkciókkal, amelyek hibás konstrukciókat generálnak. Amikor az ilyen produkciók elindulnak, hiba kerül naplózásra, de az elemző továbbra is normálisan fut.

Elemző fejlesztő eszközök

A fordítók fejlesztésének és felépítésének külön szakaszai automatizálhatók és számítógéppel is végrehajthatók.

Íme néhány a legismertebb elemzőfejlesztő eszközök közül [2] :

Lásd még az elemző generátorok összehasonlítását .

Lásd még

Jegyzetek

  1. Tim Jones M. Információk kinyerése az internetről a Ruby nyelv használatával. (2014. május 22.). Letöltve: 2019. december 13. Az eredetiből archiválva : 2019. december 13.
  2. Ela Kumar. természetes nyelvi feldolgozás. - IK International Pvt Ltd., 2011. - P. 100. - ISBN 978-93-80578-77-4 .

Irodalom

Linkek