GeeksforGeeks
ebben a cikkben fogjuk tanulmányozni a koncepció és felhasználása elemzési fa Compiler Design. Először nézzünk meg két kifejezést:
- elemzés: ez azt jelenti, hogy feloldjuk (egy mondatot) az összetevőire és leírjuk szintaktikai szerepüket, vagy egyszerűen csak egy karakterlánc vagy szöveg elemzésének aktusa.
- fa : a fa lehet egy széles körben használt absztrakt adattípus, amely hierarchikus faszerkezetet szimulál, gyökérértékkel és a fiatalok alfáival egy szülő csomóponttal, összekapcsolt csomópontok csoportjaként ábrázolva.
elemzési fa :
- elemzési fa a terminálok vagy nem terminálok hierarchikus ábrázolása.
- ezek a szimbólumok (terminálok vagy nem terminálok) a nyelvtan levezetését jelentik a bemeneti karakterláncok előállításához.
- az elemzés során a húr a kezdő szimbólum segítségével rugózik.
- a nyelvtan kezdő szimbólumát kell használni az elemzési fa gyökereként.
- az elemzési fa levelei terminálok.
- minden belső csomópont a nyelvtan produkcióit képviseli.
elemzési fa rajzolásának szabályai:
- minden levélcsomópontnak termináloknak kell lennie.
- minden belső csomópontnak nem termináloknak kell lennie.
- In-order traversal megadja az eredeti bemeneti karakterláncot.
példa-1:
Vegyünk egy példát a nyelvtanra (termelési szabályok).
S -> sABA -> aB -> b
a bemeneti karakterlánc “sab”, majd az elemzési fa:
példa-2:
Vegyünk egy másik példát a nyelvtanra (termelési szabályok).
S -> ABA -> c/aAB -> d/bB
a bemeneti karakterlánc “acbd”, akkor az elemzési fa :
az elemzési fa felhasználása:
- segít a szintaxis elemzésében a beviteli nyelv szintaxisának tükrözésével.
- a bemenet memórián belüli ábrázolását használja olyan struktúrával, amely megfelel a nyelvtannak.
- az elemzési fák használatának előnyei a szemantikai műveletek helyett: többször is átmegy az információn anélkül, hogy újra kellene elemeznie a bemenetet.
figyelem olvasó! Ne hagyja abba a tanulást most. Szerezd meg az összes fontos CS elméleti koncepciót az SDE interjúkhoz a CS Theory kurzussal diákbarát áron, és készen állsz az iparra.
cikk címkék: