Tartalomjegyzék:
Meghatározás - Mit jelent Parser?
Az elemző egy fordító vagy értelmező összetevő, amely kisebb elemekre bontja az adatokat, hogy egy másik nyelvre könnyen lefordíthassák. Az elemző a bevitelt tokenek vagy program utasítások sorozata formájában végzi, és általában adatszerkezetet épít elemző fa vagy absztrakt szintaxis fa formájában.
A Techopedia magyarázza Parser
Az elemzőt általában értelmező vagy fordító alkotóelemeként használják. Az elemzés teljes folyamata három szakaszból áll:
- Lexikális elemzés: A lexikális elemzőt tokenek előállítására használják a bemeneti karakterláncokból, amelyek apró összetevőkre vannak bontva, hogy értelmes kifejezéseket képezzenek.
- Szintaktikai elemzés: Ellenőrzi, hogy a generált tokenek jelentősek-e. Ez egy kontextus nélküli nyelvtant használ, amely meghatározza az összetevők algoritmikus eljárásait. Ezek célja egy kifejezés kialakítása és a tokenok elhelyezésének konkrét sorrendjének meghatározása.
- Szemantikus elemzés: Az utolsó elemzési szakasz, amelyben az érvényesített kifejezés jelentését és következményeit meghatározzuk, és megtesszük a szükséges lépéseket.
Az elemző fő célja annak meghatározása, hogy a bemeneti adatok származnak-e a nyelvtan kezdő szimbólumából. Ha igen, akkor milyen módon lehet származtatni ezeket a bemeneti adatokat? Ezt a következőképpen érik el:
- Felülről lefelé elemzés: Elemzést végez a fa keresésével, hogy felfelé lefelé kiterjesztéssel keresse meg a bemeneti patak bal oldali legtöbb származékát. Ilyenek például az LL elemzők és a rekurzív származású elemzők.
- Alulról felfelé történő elemzés: Bemenet újraírása a kezdő szimbólumhoz. Ez a típusú elemzés más néven váltás-csökkentő elemzés. Egy példa egy LR elemző.
Az elemzőket széles körben használják a következő technológiákban:
- Java és más programozási nyelvek
- HTML és XML
- Interaktív adatnyelv és objektumdefiníciós nyelv
- Adatbázis-nyelvek, például SQL
- Modellező nyelvek, például a virtuális valóság modellezési nyelve
- Szkriptnyelv
- Protokollok, például HTTP és Internet távoli funkcióhívások
