Jednoprůchodový překladač

Z Wikipedie, otevřené encyklopedie
(Přesměrováno z Jednoprůchodové překladače)
Skočit na: Navigace, Hledání

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áří mezikód.

[editovat] Popis

Ačkoliv jsou jednoprůchodové překladače ve zpracování kódu rychlejší, než víceprůchodové, nejsou schopné generovat tak efektivní programy kvůli jejich omezeným možnostem (například optimalizace používají více opakovaných průchodů kódem). Většina běžných programovacích jazyků je vytvořena tak, že nemohou být kompilovány jediným průchodem. Naproti tomu některé programovací jazyky byly navrženy tak, aby jednoprůchodovou kompilaci umožňovaly. Jako příklad je možné uvést dopředné deklarace v jazyce Pascal, kde je vyžadována plná definice procedur ještě před jejích 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....'' }

[editovat] Související články

Osobní nástroje
Jmenné prostory

Varianty
Akce
Navigace
Tisk/export
Nástroje
V jiných jazycích