Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Pochopenie komponentov
* predný koniec (kompilátor): Táto časť kompilátora číta zdrojový kód v špecifickom programovacom jazyku a prekladá ho do strednej reprezentácie (IR). Budete potrebovať jeden predný koniec pre každý programovací jazyk, ktorý chcete podporiť.
* Intermediate Language (IR): Toto je bežný jazyk, ktorý slúži ako most medzi prednými koncami a zadnými koncami. Je navrhnutý tak, aby bol strojovo nezávislý.
* zadný koniec (kompilátor): Táto časť kompilátora berie IR a vygeneruje strojový kód pre konkrétny cieľový stroj. Pre každú architektúru stroja, ktorú chcete podporiť, budete potrebovať jeden zadný koniec.
Výpočet
* predné konce: Potrebujete jeden predný koniec pre každý jazyk: m predné konce
* zadné konce: Potrebujete jeden zadný koniec pre každý stroj: n zadné konce
Celkom: Potrebujete m + n kompilátory (predné konce a zadné konce).
Príklad
Povedzme, že máte:
* m =3 Programovacie jazyky (C ++, Python, Java)
* n =2 architektúry strojov (x86 a rameno)
Potrebovali by ste:
* 3 predné konce (jeden pre každý jazyk)
* 2 Zadné konce (jeden pre každú architektúru)
* Celkom:5 kompilátory
Výhody medziproduktu
Použitie stredného jazyka ponúka niekoľko výhod:
* Opätovné použitie kódu: Kód IR môže byť použitý rôznymi prednými koncami a zadnými koncami, čím sa znižuje vývojové úsilie.
* Prenosnosť: Kód zostavený do IR je možné spustiť na ľubovoľnom počítači so zodpovedajúcim zadným koncom.
* Optimalizácia: Optimalizácie je možné uplatniť na úrovni IR, z ktorých má úžitok všetky jazyky a stroje.
Dôležitá poznámka: Výber stredného jazyka je rozhodujúci. Mal by byť efektívny, dobre vhodný na optimalizáciu a mať zrelý ekosystém.