Jak Psát Překladače

Obsah:

Jak Psát Překladače
Jak Psát Překladače

Video: Jak Psát Překladače

Video: Jak Psát Překladače
Video: PÍŠU SI S GOOGLE PŘEKLADAČEM!!!😱 2024, Smět
Anonim

Existuje mnoho programovacích jazyků, které mají své vlastní jedinečné vlastnosti. Ale aby program napsaný v kterémkoli z nich fungoval, musíte jej vysílat. Někdy jsou programovací jazyky vyvíjeny pro jejich vlastní potřeby (například podpora automatizace ve velkých aplikacích) a poté je nutné napsat překladač.

Jak psát překladače
Jak psát překladače

Nezbytné

  • - přirozená gramatika nebo BNF zdrojového jazyka;
  • - vývojové nástroje.

Instrukce

Krok 1

Připravte data pro lexikální analýzu textu ve zdrojovém jazyce. Seznam všech tokenů v jazyce. Rozdělte je do kategorií (klíčová slova, číselné a řetězcové literály, identifikátory, mezery, interpunkční znaménka atd.).

Krok 2

Implementujte modul nebo lexer. Na vstupu by měl přijímat „surový“datový proud a na výstupu tvořit seznam prvků obsahujících tokeny a jejich identifikátory typů v pořadí, ve kterém se vyskytují ve zdrojovém textu. Program analýzy může být poměrně jednoduchý. “jednoúrovňový skener. Implementace zotavení po chybě nedává smysl. Neplatné znaky by měly být považovány za chyby.

Krok 3

Připravte data pro analýzu. Na základě přirozené gramatiky nebo BNF zdrojového jazyka sestavte jeho LL1 gramatiku. Na základě tohoto typu gramatiky vytvořte schéma syntézy, pokud jde o kategorie platných tokenů a sémantické konstrukce jazyka.

Krok 4

Implementujte modul nebo analyzátor. Na vstupu by měl obdržet seznam tokenů připravených ve fázi lexikální analýzy. Vyvíjejte rekurzivní algoritmy pro kontrolu syntaxe pomocí schématu, které jste vytvořili v kroku tři. V případě potřeby implementujte mechanismy obnovy po chybě. Přidejte funkce do algoritmů analýzy a vytvořte strom pro výpočet funkcí, třídních metod. Se správnou strukturou algoritmů syntaktické analýzy lze tuto funkčnost implementovat bez jakýchkoli problémů. Tím se vyhnete nutnosti implementovat jej jako samostatný modul. Vytvořené datové struktury by měly obsahovat seznamy instrukcí ve formě „plochých“sekvencí (aritmetické výrazy rozšířené do postfixové formy vhodné pro výpočet na stroji se stohem, smyčky převedené na kombinace sekvencí výpočetních instrukcí a podmíněné nebo bezpodmínečné skoky atd.).

Krok 5

V případě potřeby vytvořte optimalizační modul. Mělo by zpracovat a transformovat datové struktury připravené v předchozím kroku. Optimalizační algoritmy a metody jsou velmi rozmanité.

Krok 6

Vyvinout generátor kódu. Při zpracování struktur připravených ve čtvrtém nebo pátém kroku by měl jednoduše transformovat sekvence abstraktních instrukcí do instrukcí pro provedení na konkrétní platformě.

Krok 7

V případě potřeby vytvořte pořadačový program (linker). Mělo by tvořit výsledný spustitelný modul výběrem umístění segmentů kódu, výpočtem adres štítků atd.

Doporučuje: