Egy programozási nyelv szintaxisa elvileg leírható egyetlen nagy regex kifejezéssel?
Tőle tanultam annó.
"szintaktikus elemzés: környezetfüggetlen nyelvtannal (Chomsky 2)"
A reguláris kifejezések asszem Chomsky 3-asok. Ami, ha jól emlékszem, egy szűkebb halmaz. Tehát szerintem nem minden esetben lehet szintaktikus elemzőt készíteni reguláris kifejezéssel.
Egyébként nekünk kellett is csinálnunk egy kisebb nyelvhez fordító programot, ami 4 részre volt bontva. Az első volt a lexikális elemző, ehhez kellett reguláris kifejezéseket megadni.
(2. szintaktikus elemző
3. szemantikus elemző
4. kódgenerátor -> assembly-be)
A válasz röviden: Nem.
Fentebbi linken olvasható róla, hogy miért.
Ahogy leírták, nem lehetséges, mert a reguláris kifejezések kifejezőereje túl kicsi. Viszont az sem igaz, hogy a szintaktika környezetfüggetlen lenne, törekszenek rá, de azért csak lecsúszik chomsky 1-be néhány eset miatt. De a szintaktika nagy része rendszerint chomsky 2.
Ahogy a fenti linken is látszik, többnyire LALR(1) elemzővel dolgoznak, amit az nem eszik meg, arra még mindig ott van a GLR, ami gyakorlatilag egy visszalépéses keresés a lehetséges szintaxisfákezdemények között.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!