Ako Písať Prekladač

Obsah:

Ako Písať Prekladač
Ako Písať Prekladač

Video: Ako Písať Prekladač

Video: Ako Písať Prekladač
Video: AKO MA PRELOŽIL GOOGLE PREKLADAČ? 😮 2024, Apríl
Anonim

Existuje veľa programovacích jazykov, ktoré majú svoje vlastné jedinečné vlastnosti. Ale aby program napísaný v ktoromkoľvek z nich fungoval, musíte ho vysielať. Niekedy sú programovacie jazyky vyvíjané pre ich vlastné potreby (napríklad podpora automatizácie vo veľkých aplikáciách) a potom je potrebné napísať prekladač.

Ako písať prekladač
Ako písať prekladač

Nevyhnutné

  • - prirodzená gramatika alebo BNF zdrojového jazyka;
  • - vývojové nástroje.

Inštrukcie

Krok 1

Pripravte údaje na lexikálnu analýzu textu v zdrojovom jazyku. Uveďte všetky tokeny v jazyku. Rozdeľte ich do kategórií (kľúčové slová, číselné a reťazcové literály, identifikátory, medzery, interpunkcia atď.).

Krok 2

Implementujte modul alebo lexer. Na vstupe by mal dostávať „surový“dátový tok a na výstupe by mal byť zoznam prvkov obsahujúcich tokeny a ich identifikátory typov v poradí, v akom sa vyskytujú v zdrojovom texte. Program analýzy môže byť pomerne jednoduchý. “jednoúrovňový skener. Implementácia zotavenia po chybe nemá zmysel. Neplatné znaky by sa mali považovať za chyby.

Krok 3

Pripravte údaje na analýzu. Zostavte gramatiku LL1 na základe prirodzenej gramatiky alebo BNF zdrojového jazyka. Na základe tohto typu gramatiky zostavte schému syntaktickej analýzy z hľadiska kategórií platných tokenov a sémantických konštruktov jazyka.

Krok 4

Implementujte modul alebo syntaktický analyzátor. Na vstupe by mal dostať zoznam tokenov pripravený vo fáze lexikálnej syntaktickej analýzy. Vyvíjajte algoritmy kontroly rekurzívnej syntaxe pomocou schémy, ktorú ste vytvorili v treťom kroku. V prípade potreby implementujte mechanizmy obnovenia chyby. Pridajte do algoritmov syntaktickej analýzy funkčnosť a vytvorte strom na výpočet funkcií, metód triedy. Pri správnej štruktúre algoritmov syntaktickej analýzy je možné túto funkcionalitu implementovať bez akýchkoľvek problémov. To eliminuje potrebu implementovať ho ako samostatný modul. Vytvorené dátové štruktúry by mali obsahovať zoznamy inštrukcií vo forme „plochých“sekvencií (aritmetické výrazy rozšírené do postfixovej formy vhodnej na výpočet na stroji so zásobníkmi, slučky prevedené do kombinácií sekvencií výpočtových pokynov a podmienené alebo bezpodmienečné skoky atď.).

Krok 5

V prípade potreby vytvorte optimalizačný modul. Mal by spracovať a transformovať dátové štruktúry pripravené v predchádzajúcom kroku. Optimalizačné algoritmy a metódy sú veľmi rozmanité.

Krok 6

Vyvinúť generátor kódu. Pri spracovaní štruktúr pripravených v štvrtom alebo piatom kroku by mal jednoducho transformovať sekvencie abstraktných pokynov na pokyny na vykonanie na konkrétnej platforme.

Krok 7

V prípade potreby vytvorte spojovací program (linker). Mal by tvoriť výsledný spustiteľný modul výberom umiestnenia segmentov kódu, výpočtom adries štítkov atď.

Odporúča: