Hogyan Kell Fordítót írni

Tartalomjegyzék:

Hogyan Kell Fordítót írni
Hogyan Kell Fordítót írni

Videó: Hogyan Kell Fordítót írni

Videó: Hogyan Kell Fordítót írni
Videó: Hogyan kell kitölteni az új Tippmix szelvényt? 2024, Lehet
Anonim

Sok olyan programozási nyelv létezik, amelyeknek megvan a maguk egyedi jellemzői. De ahhoz, hogy valamelyikükbe írt műsor működjön, azt sugároznia kell. Előfordul, hogy a programozási nyelveket saját igényeik szerint fejlesztik (például nagy alkalmazások automatizálásának támogatása), majd szükségessé válik egy fordító megírása.

Hogyan kell fordítót írni
Hogyan kell fordítót írni

Szükséges

  • - a nyelv nyelvének természetes nyelvtana vagy BNF-je;
  • - fejlesztő eszközök.

Utasítás

1. lépés

Készítse elő az adatokat a szöveg lexikai elemzéséhez a forrásnyelven. Sorolja fel az összes tokent a nyelven. Bontja őket kategóriákra (kulcsszavak, numerikus és karakterláncok, azonosítók, szóköz, írásjelek stb.).

2. lépés

Végezzen el egy modult vagy lexert. A bemenetnél kapnia kell egy "nyers" adatfolyamot, és a kimeneten össze kell állítania az elemek listáját, amely tokeneket és azok típusazonosítóit tartalmazza abban a sorrendben, amelyben a forrásszövegben előfordulnak. Az elemző program meglehetősen egyszerű lehet " egyszintű "szkenner. A hiba helyreállításának nincs értelme. Az érvénytelen karaktereket hibaként kell kezelni.

3. lépés

Készítse elő az adatokat az elemzéshez. A forrásnyelv természetes nyelvtana vagy BNF alapján állítsa össze az LL1 nyelvtanát. Az ilyen típusú nyelvtan alapján készítsen elemzési sémát az érvényes tokenek és szemantikai konstrukciók kategóriái alapján.

4. lépés

Végezzen el egy modult vagy elemzőt. A bemenetnél meg kell kapnia a lexikai elemzés szakaszában készített tokenek listáját. Fejlesszen ki rekurzív szintaxis-ellenőrző algoritmusokat a harmadik lépésben létrehozott séma segítségével. Ha szükséges, valósítson meg hibajavító mechanizmusokat. Adjon hozzá funkcionalitást az elemzési algoritmusokhoz, hogy felépítsen egy fát a függvények, osztálymódszerek kiszámításához. Az elemző algoritmusok megfelelő felépítésével ez a funkció problémamentesen megvalósítható. Ezzel elkerülhető, hogy külön modulként kell megvalósítani. A létrehozott adatstruktúráknak tartalmazniuk kell az utasítások listáját "lapos" szekvenciák formájában (postfix formátumra kibővített aritmetikai kifejezések, amelyek alkalmasak veremgépen történő számításra, hurkok, amelyeket számítási utasítások és feltételes vagy feltétel nélküli ugrások kombinációira alakítanak át stb.).

5. lépés

Hozzon létre egy optimalizálási modult, ha szükséges. Feldolgoznia és átalakítania kell az előző lépésben előkészített adatstruktúrákat. Az optimalizálási algoritmusok és módszerek nagyon változatosak.

6. lépés

Fejlesszen ki egy kódgenerátort. A negyedik vagy ötödik lépésben előkészített struktúrák feldolgozásakor egyszerűen absztrakt utasítások sorozatát kell átalakítania egy adott platformon végrehajtási utasításokká.

7. lépés

Hozzon létre egy kötőprogramot (linkert), ha szükséges. A kapott futtatható modult kell alkotnia a kódszegmensek helyének megválasztásával, a címkék címeinek kiszámításával stb.

Ajánlott: