Ir daudzas programmēšanas valodas, kurām ir savas unikālās īpašības. Bet, lai kādā no tām rakstītā programma darbotos, tā jāpārraida. Dažreiz programmēšanas valodas tiek izstrādātas viņu pašu vajadzībām (piemēram, automatizācijas atbalstam lielās lietojumprogrammās), un tad ir nepieciešams rakstīt tulku.
Nepieciešams
- - pirmvalodas dabiskā gramatika vai BNF;
- - izstrādes rīki.
Instrukcijas
1. solis
Sagatavojiet datus teksta leksiskai analīzei avota valodā. Uzskaitiet visus marķierus valodā. Sadaliet tos kategorijās (atslēgvārdi, ciparu un virkņu literāļi, identifikatori, atstarpes, pieturzīmes utt.).
2. solis
Ieviesiet moduli vai leksiku. Ievades laikā tam jāsaņem "neapstrādāta" datu straume, un izvadē jāveido saraksts ar elementiem, kas satur marķierus un to tipa identifikatorus secībā, kādā tie rodas avota tekstā. Parsēšanas programma var būt diezgan vienkārša " vienlīmeņa "skeneris. Kļūdu atkopšanas ieviešanai nav jēgas. Nederīgas rakstzīmes jāuzskata par kļūdām.
3. solis
Sagatavojiet datus parsēšanai. Balstoties uz avota valodas dabisko gramatiku vai BNF, sastādiet tās LL1 gramatiku. Pamatojoties uz šāda veida gramatiku, sastādiet parsēšanas shēmu attiecībā uz derīgo marķieru kategorijām un valodas semantiskajiem konstruktiem.
4. solis
Ieviesiet moduli vai parsētāju. Pēc ievades tam jāsaņem žetonu saraksts, kas sagatavots leksiskās parsēšanas stadijā. Izstrādājiet rekursīvos sintakses pārbaudes algoritmus, izmantojot shēmu, kuru izveidojāt trešajā solī. Ja nepieciešams, ieviesiet kļūdu atkopšanas mehānismus. Pievienojiet parsēšanas algoritmiem funkcionalitāti, lai izveidotu koku funkciju, klases metožu aprēķināšanai. Ar pareizu parsēšanas algoritmu struktūru šo funkcionalitāti var ieviest bez problēmām. Tas ļauj izvairīties no nepieciešamības to ieviest kā atsevišķu moduli. Izveidotajās datu struktūrās jāietver instrukciju saraksti "plakanu" secību veidā (aritmētiskās izteiksmes, kas paplašinātas postfix formā, kas piemērota skaitļošanai kaudzes mašīnā, cilpas, kas pārveidotas par skaitļošanas instrukciju secību kombinācijām un nosacītiem vai beznosacījuma lēcieniem utt.).
5. solis
Ja nepieciešams, izveidojiet optimizācijas moduli. Tam vajadzētu apstrādāt un pārveidot iepriekšējā posmā sagatavotās datu struktūras. Optimizācijas algoritmi un metodes ir ļoti dažādas.
6. solis
Izstrādājiet kodu ģeneratoru. Apstrādājot ceturtajā vai piektajā posmā sagatavotās struktūras, tam vienkārši jāpārveido abstraktu instrukciju secības instrukcijās izpildei noteiktā platformā.
7. solis
Ja nepieciešams, izveidojiet saistvielu programmu (saiti). Tam vajadzētu veidot iegūto izpildāmo moduli, izvēloties koda segmentu atrašanās vietu, aprēķinot etiķešu adreses utt.