| e-mail Debatní kniha Mapa stránek Hlavní |
Na této stránce jsem se pokusil napsat přehled překladačů pascalu. Ne všech, ale těch pro mě zajímavých, tzn. schopných překládat pro DOS. Snažím se informace udržovat jakžtakž aktuální, ale ne vždy se to daří, proto omluvte určité zastarávání informací.
FreePascal (FPC) je v současnosti asi dvojkou v překladačích pascalu. Nejsilnější ve smyslu s nejsilnějším zázemím a nejpoužívanější je pořád ještě Delphi. (nyní, v 4/2010 ve verzi Delphi 2010).
Oproti Delphi umí překládat i pro jiné operační systémy než Windows a dokonce pro jiný hardware. Podrobný přehled cílových platforem najdete na oficiálních internetových stránkách. Kolem Freepascalu je dost aktivní komunita a k dispozici je hodně spoustu rozšiřujících knihoven. Týkají se ale převážně různých rozhraní windows, což
pro DOSaře není až tak zajímavé, ale přesto je fajn, že přes Freepascal lze používat DirectX, SDL, OpenGL a mnoho dalších moderních rozhraní.
TMT pascal - dříve šlo o velice pěkný, rychlý a schopný překladač. Mnohé jeho vlastnosti byly lepší než vlastnosti FPC z té doby. Z hlediska DOSu bylo příjemné, že pro přístup k paměti je použit tzv. "flat mode", kdy celá paměť počítače, včetně DOSové oblasti, je adresovatelná jediným selektorem. Toto pojetí usnadňovalo DOSové programování a také umožňovalo poměrně snadnou tvorbu DLL knihoven.
(to je věc, kterou DOSové verze Freepascalu neumějí). Myslím si, že projektu uškodila absence IDE a laxní přístup vývojáře. Doplňujících jednotek a různých doprovodných zdrojáků bylo vždy dost málo. A nejspíše došlo k prodeji značky jiné společnosti, což také překladači ublížilo. TMT pascal je možné získat ve dvou verzích. Jednak verze 3.90, která je pouze DOSová, už hodně stará, ale nadruhou stranu zdarma a víceplatformní a platná verze, v současnosti (4/2010) verze 6.1
Virtual pascal je další velice schopný překladač. Oficiálně už není dále vyvíjen a z internetu zmizela i stránka projektu. Celý Virtual pascal by se asi byl vypařil, kdyby ho nedržel nad vodou Stefan Weber a jeho program Necromancer's DOS navigator. Ten je právě ve VP psaný a když začal původní sajt odumírat, tak Stefan vzal Virtual pascal pod svá křídla a dokonce do něj doplnil některé patche.
Jde o multiplatformní překladač a kromě 32.bitového DOSového protektu překládá i pro Windows, Linux a OS/2. Abych byl přesný - tak pro DOS původně podpora nebyla a byla doplněna až pozdějším patchem.
Program samotný je konzolová windowsí aplikace, ale pomocí triku, DOSového extenderu HX-DOS, může běhat i pod čistým DOSem. Stejně jako TMT pascal používá pro DOSové programy extendery operující s flat režimem. Na rozdíl od TMT je ale možné vybrat si mezi více extendery:
DOS4GW, WDOSX, PMODE a Zurenava.
Přesto, že Virtual pascal původně DOS nepodporuje, tak fungují i DOSové nízkoúrovňové konstrukce, vestavěný assembler, pole
GNU pascal
Je dosti tajuplný překladač. Je to jakýsi doplněk GNU C, tedy céčkového kompilátoru, v DOSovém prostředí nazývaném DJGPP. Sdílí s ním většinu kompilačního kódu, konkrétně backend. Překladače z rodiny DJGPP totiž fungují ve dvou krocích, které se nazývají frontend a backend.
Frontend provádí překlad z úrovně programovacího jazyka na jakýsi pseudoasembler a backend překlad z pseudoassembleru a normální assembler a potažmo strojový kód.
GNU pascal podporuje mnoho platforem, nicméně jeho domovské prostředí je Linux. Je kompatibilní
s borlandem, s ISO a s extended pascalem. Rovněž má nějaké vlastní rozšíření.
Irie pascal
Je další multiplatformní překladač. Mrzuté ale je, že podpora DOSu byla ukončena a poslední verze 2.6 podporuje už jenom Winsows, Solaris, Linux a FreeBSD.
Ale starší verze, tuším že ještě 2.1, DOS podporovaly. Jestli se nic nezměnilo, tak Irie nekompiluje do strojového kódu ale do jakéhosi bytekódu (soubory mají koncovku .IVM), který právě zajišťuje přenositelnost.
Delphi (32.bitové verze) Co, že Delphi je jenom pro Windows ? No, existuje způsob, jak delphi ošálit a vyvíjet pod ním DOSové aplikace. Delphi totiž využívá jenom velmi málo
windowsích služeb, které se navíc dají emulovat. A tím emulátorem je DOSový extender
WDOSX. Program vyvíjíte jako konzolovou aplikaci a na zkompilovaný exáč pak
prsknete patch, který ji přemění na DOSovou v chráněném režimu. Můžete tak využít všech možností
jazyka delphi. Tento postup by měl fungovat na verzi 2 a všechny pozdější.
Původní stránky projektu už neexistují. Odkaz míří na skupinu na Yahoo, kde přežívá, či spíše skomírá, podpůrná skupina tohoto projektu.
Jsou tam i nějaké soubory ke stažení, ale hlavní balík tam chybí.
Delphi 1 se prezentuje jako vývojové prostředí pro 16.bitová windows, ale pomocí skrytých přepínačů ho lze navolit, aby produkovalo kód i
pro DOS. Důležité je, že (kromě 16-bitového protektu) umí překládat i pro reálný režim. Z výčtu překladačů výše je zřejmé, že existují dobré 32-bitové DOSové kompilátory, ale je problém s alternativami pro reálný režim.
A právě v tom jsou Delphi 1 jedinečné. Je to nejpokročilejší pascalovský překladač pro reálný mód. Umožňuje používat nové prvky jazyka object pasval v realmódových programech včetně konstrukcí Dále existovaly ještě několik jiných DOSových překladačů, ale ty byly tak nedokonalé, že v praxi nešly použít. Všechny byly pro 32.bitový DOS. Jejich internerové stránky jsou již mrtvé, ze sítě se nejspíše úplně vypařily a zbyly po nich jenom názvy: Dpas, P32, Pascal Pro. I když úplně všechno to ještě není. Z nějakého důvodu je jazyk pascal oblíbený u ametérských tvůrců překladačů a existuje poměrně dost studentů, kteří si jako diplomovou práci zvolili napsání jednoduchého překladače pascalu. A také málokdo ví, že i Microsoft kdysi dávno napsal svůj kompilátor pascalu. Pak ale stáhnul ocas a nechal se zcela vytlačit firmou Borland a jejich Turbo pascalem. Laacovy archávy jsou ale hluboké, takže tady máte dávku exotiky a v archívu najdete Quick pascal od Microsoftu a několik studentských projektů. Těch studentských projektů je pochopitelně víc, ale znovu mě zajímaly jenom ty, které podporují DOS.
Pro začátek doporučuji shlédnout vynikající tutorial Learn. Kdysi jsem našel stránku, která se tomuto programu věnuje podrobněji. V roce 2010 jsem bohužel odkaz musel přesměrovat na www.archive.org, nebude fungovat lokálně stahování :-(
Sehnal jsem ještě jednu prima věc. Je to teda další překladač BASICu, a to Turbo Basic. Vypadá to, že je
úplně kompatibilní s QBASICem, ale umí kompilovat do EXE !
Jo, tak ještě do třetice, freewarový Power Basic. Je podobný předešlému, ale je novější a takový příjemnější. |