Jednoprůchodový překladač
Jednoprůchodový překladač (anglicky one-pass compiler nebo narrow compiler) je v informatice typ překladače, který prochází zdrojový kód programu pouze jednou (na rozdíl od víceprůchodových překladačů). Jednoprůchodové překladače nevytvářejí mezikód.
Popis
Jednoprůchodové překladače jsou rychlejší než víceprůchodové, nejsou však schopné generovat tak efektivní programy kvůli svým omezeným možnostem (například optimalizace používají více průchodů kódem). V mnoha programovacích jazycích jsou konstrukce, které kompilaci jediným průchodem znemožňují. Některé programovací jazyky však byly navrženy tak, aby jednoprůchodovou kompilaci umožňovaly. Příkladem jsou dopředné deklarace v jazyce Pascal, které umožňují, aby procedura nebo funkce byla deklarována před svým použitím. Dopředné deklarace umožňují jednoprůchodovému překladači provádět typové kontroly, protože volání procedury, která ještě nebyla deklarována, by bylo hlášeno jako chyba.
function lichy(n: integer): boolean; begin if n = 0 then lichy := false else if n < 0 then lichy := sudy(n + 1) { ''chyba při kompilaci: 'sudy' není definováno'' } else lichy := sudy(n - 1) end; function sudy(n: integer): boolean; begin if n = 0 then sudy := true else if n < 0 then sudy := lichy(n + 1) else sudy := lichy(n - 1) end;
Přidáním dopředné deklarace pro funkci sudy
před funkci lichy
upozorníme jednoprůchodový překladač, že je v programu později definována sudy
.
function sudy(n: integer): boolean; forward; function lichy(n: integer): boolean; { ''Et cetera....'' }
Související články
Tento článek je příliš stručný nebo postrádá důležité informace. Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty. |