Jaký je rozdíl mezi kompilátorem C a kompilátorem PASCAL?


Odpověď 1:

Existuje mnoho rozdílů mezi kompilátorem C a PASCAL.

Samozřejmě je to vstupní jazyk. Kompilátory C očekávají vstup v jazyce C. Kompilátory PASCAL očekávají vstup v jazyce PASCAL.

Jazyky však generují kód úplně jinak (např. Volací konvence jsou odlišné). C má závislost na runtime jazyce C (např. Glibc), PASCAL má runtime na PASCAL runtime (např. RTL). Mají různá rozhraní a kompilátor si bude muset být vědom těchto rozdílů a jejich očekávání.

Similartie jsou do značné míry to, že jsou kompilátory a vygenerují kód pro počítač na základě vstupu.


Odpověď 2:

Jeden hlavní rozdíl mezi kompilátory C a Pascal spočívá v tom, že Pascal byl navržen tak, aby měl kompilátor s jedním průchodem, zatímco C má kompilátor s více průchody. To dává Pascalovi výhodu rychlejší kompilace, ale také to má některé syntaktické vedlejší účinky na to, jak musí být kód napsán.

Pokud vás to zajímá a chcete kontrastovat s tímto aspektem, zvažte zde nějakou dokumentaci pro starý kompilátor Turbo Pascal 3.0, interní kompilátory Turbo Pascal 3.0 a generování kódu a pro kompilátor GCC zde, interní kolekce GNU Compiler Collection (GCC)

Pro přehled vyšší úrovně si můžete prohlédnout články Wikipedie o kompilátorech s jedním průchodem a kompilátorech s více průchody:

Kompilátor s jedním průchodem - Wikipedia

Vícepásmový kompilátor - Wikipedia


Odpověď 3:

Programovací jazyk je specifikace, zapsaná v nějakém dokumentu (například R5RS).

Programovací jazyk C a programovací jazyk Pascal se liší. Zjevně mají odlišnou syntaxi (např. Bloky jsou ve složených závorkách {} v C, kolem BEGIN & END v Pascalu). C a Pascal jsou však podobné jazyky, jejich sémantika je blízko (ale ne stejná).

Je zřejmé, že kompilátor C přijímá programovací jazyk C a kompilátor Pascal přijímá programovací jazyk Pascal.

Protože jejich sémantika je blízko, jeden může kódovat kompilátor přijímat oba Pascal a C jazyky, tím, že má dva front-endy, možná sdílet nějaké obyčejné přechodné reprezentace na kterém stejná optimalizace předává mohla operovat.