e-mail    Debatní kniha    Mapa stránek    Hlavní  
 Pascal 
 

Úvod, historie a překladače firmy Borland

Programovací jazyk pascal už má za sebou dlouhou historii. V roce 1970 ho vyvinul profesor Niklaus Wirth z Vysoké školy technologické v Curychu. Původně byl zamýšlen jako jazyk převážně výukový, tedy pro začátečníky. Rozšířil se na mnoho tehdejších typů počítačů, ale zásadní se stala implementace pro IBM-PC od firmy Borland.
Tato verze se nazývá Turbo pascal a programátoři si ho velmi oblíbili pro jeho rychlost a také proto, že byl výrazně levnější než konkurenční překladače. První verze vyšle v roce 1983. Z dalšími verzemi se schopnosti překladače i jeho vývojového prostředí výrazně rozšiřovaly a nejméně od verze 4.0 se z Turbo pascalu stal velmi mocný jazyk, výrazně převyšující původní dialekt od Niklause Wirtha. Stal se plnohodnotným programovacím nástrojem jak pro drobné prográmky, tak pro rozsáhlé aplikace v nejrůznějších odvětvích.
      Verze 5.5 přinesla, v omezeném rozsahu, koncept objektově orientovaného programování (OOP), verze 6.0 možnost přímého vkládání bloků v assembleru a poslední verze pro prostředí DOS byla 7.01. z roku 1993.
Pak firma Borland bohužel přestala DOSovou verzi pascalu dále vyvíjet a dále se věnovala pouze verzi pro Windows a později a po krátkou dobu pro Linux. Na tomto rozhodnutí nic nezměnilo několik petic mezi programátory s prosbou pokračování vývoje DOSové verze. Poslední DOSové verzi pascalu (TP 7 či BP 7) byla vyčítána zejména absence podpory 32-bitového kódu a 32-bitového chráněného režimu. Podporován byl jen 16-bitový chráněný mód, což programátory zklamalo o to více, že současně vycházející Borland C++ 3.1 již 32-bitové adresování umožňoval.
      Další velký problém TP 7 se objevil až několik let po vydání. Na počítačích rychlejších než 200MHz se často objevovala chyba, kdy program ihned po startu zhavaroval. Více o tomto problému a o jeho řešení na samostatné stránce. A pak je několik drobnějších chybek. Zde je jejich seznam
V prostředí windows se programovací jazyk nadále nazývá pascal či object pascal, ale překladače se přejmenovaly na Delphi a ve verzi pro Linux na Kylix.

Delphi (a Kylix) přinesly do světa počítačů úplnou novinku, a to vizuální programování. Tomuto přístupu se začalo říkat RAD (rapid application development). Ovládací prvky programu (tlačítka, přepínače, atd) již nebylo třeba programovat pomocí zápisu v pascalu, ale nakreslily se pomocí tažení myší ve speciálním grafickém editoru, který byl integrován do vývojového prostředí. Tímto se velmi usnadnilo programování pod windows. Patrně nejoblíbenější verzí Delphi byla verze 7.0.
Byla ceněna pro propracované vývojové prostředí, tradičně vysokou rychlost překladu a podporu tehdy nastupujících Windows XP.
Další verze a další roky ale pro Delphi (a tím pádem i pro pascal) znamenaly ústup ze slávy - dvě nevydařené další verze a tlak ostatních programovacích jazyků je do značné míry vytlačily z výsluní. Pořád ale jde (v některých kruzích) o oblíbené a kvalitní překladače. Nejsem si ale jist, zda tu bude platit i do budoucna. Licenční politika tvůrců z firmy Embarcadero totiž vyvolává rozpaky. Samotné Delphi sice zakoupit lze, ale tvůrci jednoznačně propagují kombinovaný balík RAD studio, což je společné vývojové prostředí právě pro Delphi a současně také pro C++.
Poslední verze (psáno 19.1.2016) je Delphi 10, respektive RAD Studio 10 "Seattle". V této verzi po delší době tvůrci změnili systém značení verzí - patrně má číslovka 10 naznačovat připravenost na Windows 10.
Předchozí verze nesla označení RAD studio XE8.
Autoři se netají tím, že Delphi (RAD studio) je určené pro psaní obchodních aplikací a že se nehodí např. na vývoj her. O to více budí rozpaky cenová politika Embarcadera, kdy za nejzákladnější samotných Delphi verzi zaplatíme 37500Kč a za nejvyšší edici 103000Kč. Kompletní balík RAD studio pak v nejsilnější edici stojí 154500Kč.
Opravdu jsou takto vysoké ceny oprávněné?
Velmi pěknou recenzi na RAD studio 10 od Miroslava Viriuse můžete najít na webu Programujte.CZ.


Historické překladače pascalu

V 70. a 80 letech byl pascal rozšířen na mnoha typech tehdejších počítačů. Kromě výskytu na „velkých“ počítačích nebo minipočítačích (dle tehdejší terminologie) se objevoval i na mnohých osmibitech. Zdaleka tam nebyl tak všudypřítomný jako Basic, ale nebyl ani vzácný. Dokonce byl k dispozici i pro československé počítače IQ-151 a PMD-85 (a kompatibilní) pomocí hardwarových zásuvných karet. Na počítačích IBM-PC se kromě Turbo pascalu vyskytovala řada dalších, z nichž je nejzajímavější Microsoft pascal (obsažen v tomto archívu). Turbo pascalu však nemohl konkurovat ani cenou ani schopnostmi, což je důvod proč Microsoft další vývoj ukončil a soustředil se na jazyk C a na Basic.
Velký přehled všech možných historických i současných překladačů pascalu je na této francouzské stránce


Alternativní překladače pascalu
Pro vyčerpávající přehled všech překladačů vás znovu odkazuji na francouzské stránky Pascaland. Zde ale sepíšu svoje zkušenosti s kompilátory 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) Pokud opomineme Delphi, tak je Freepascal dlouhodobě nejrozšířenější a snad se dá říci že i nejlepší překladač pascalu. Jeho silnou stránkou je široká multiplatformnost (windows, různé linuxy, OS/2, Haiku, MacOS X, iOS, Win CE, MorphOS, Nintendo, android, IOS a další) a také pořád ještě DOS. FPC tým několikrát hrozil ukončením DOSové verze, ale stále je podporovaná, i když v ní dlouhé roky přetrvávaly (či přetrvávají) některé neřešené problémy. Podrobněji se rozepíšu níže. Freepascal býval striktně 32-bitový překladač, ale poslední verze produkují i 64-bitový kód a od verze 3.0 i 16-bitový kód pro DOS.
Freepascal je plně kompatibilní s Turbo pascalem. V případě 16-bitového křížového překladače je kompatibilita téměř úplná, ale v případě zavedenější 32-bitové DOSové verze je třeba mít na paměti některé rozdíly, které vyplývají z povahy 32-bitového prostředí. V praxi to znamená, že nefunguje funkce Seg (vrací adresu segmentu) a že je třeba přepsat velkou většinu pasáží v assembleru, protože zde se plně projevují odlišnosti 16-bitové a 32-bitové adresace. Také se velmi liší psaní obsluh přerušení a callbacků.

Kromě kompatibility s Turbo pascalem je ale FPC kompatibilní i s Delphi. První generace FPC (tzn. verze 1.0.x) neměly podporu úplnou, ale nynější druhá a třetí generace zvládá patrně všechny konstrukce jako Delphi 7 a poslední verze (v době psaní tohoto textu 3.0.0) umí valnou většinu nové syntaxe ze současných edicí Delphi.

Součástí Freepascalu je velké množství různých jednotek i rozsáhlejších knihoven. Nejenom že portuje standardní RTL jednotky, ale také obsahuje port Turbo vision, velké množství převzatých jednotek z Delphi (některé jsou použitelné i v DOSu, ale ne všechny) a velké množství různých balíčků, které zpřístupňují rozhraní jako OpenGL, DirectX, síťové služby, GUI rozhraní a mnoho dalších věcí. Většina z těchto balíčků ale nemá DOSovou verzi.
V základní distribuci Freepascalu je přibaleno textmódové IDE, které je na první pohled nerozeznatelné od IDE Turbo pascalu. Jeho vývoj však pro malý zájem vývojářů spíše přešlapuje na místě. V několika verzích byl z IDE odstraněn integrovaný debugger, ale v poslední verzi 3.0.0 přítomen je a zdá se, že funguje velmi dobře.
Mnohem rychleji se rozvíjí pokročilé grafické IDE Lazarus. To je vlastně port vývojového prostředí z Delphi a stejně jako jeho vzor umožňuje vizuální programování neboli RAD development. Lazarus ale není k dispozici pro všechny platformy, ale jen pro windows, linux a macOS.
29.8.2012 vyšla po dlouholetém vývoji verze 1.0. a v době psaní tohoto textu (1/2016) existuje verze 1.44

Kolem Freepascalu je velmi aktivní komunita a k dispozici je 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í.

Pokud se zaměříme na DOSovou verzi Freepascalu, tak je velmi vhodné téma rozdělit na „starý Freepascal“, t.j. do verze 1.0.10 a „nový Freepascal“ ve verzích 2.x.y a 3.x.y.

FPC 1.0.x - poslední verze je FPC 1.0.10 z roku 2005. (poté ještě bylo možno stáhnout několik vývojových verzí 1.0.11, ale již bez podstatných změn a vývoj této generace byl ukončen). Podpora DOSu je ve verzi 1.0.10 skvělá, všechny unitky fungují jak mají a IDE je na ještě lepší úrovni než to v Turbo pascalu. Je pravda, že někdy po sérii neúspěšných kompilací celé IDE zhavaruje, ale po novém spuštění se obnoví do stejného stavu jako předtím. Otázkou je chybovost překladače. Zatím jsem našel dvě jednoznačné chyby (naštěstí nejsou závažné) a podezřelé chování objektů, která obsahují Ansistring a někdy trošku podezřívám paměťový manager, že za některých okolností se možná chová nekorektně. DOSová verze používá stejný paměťový model a formát objektových a EXE souborů jako DJGPP či Freebasic. Jde tedy o 32-bitový model chráněného režimu, kdy paměťový prostor začíná nad 1MB paměti. Teoreticky ny mělo být možné snadno importovat jednotky z C nebo Basicu. V praxi to nejde úplně hladce, protože je třeba importovat i knihovny LibC a LibGCC a při kompilaci a zejména při sestavování linkerem často dostávám prazvláštní chyby. Rovněž je možné dynamicky načítat DXE soubory, ale toto je v DJGPP dokumentováno zcela nedostatečně a ve FPC v podstatě vůbec. Celkově FPC první generace hodnotím tak, že se v něm pro DOS programuje dobře.

FPC 2.x.y a 3.x.y - ve druhé generaci byly celý překladač i většina jednotek od základu přepsány. Problém je, že DOSové jednotky a některé DOSové specifické části překladače tímto přechodem neprošly nebo byl odbyt a nedostatečně testován. V tu dobu byl již totiž DOS na okraji zájmu FPC týmu a vážně se uvažovalo o ukončení jeho podpory. Výsledkem bylo, že první verze druhé generace FPC byly pro DOS v podstatě nepoužitelné. Postupně se většina problémů vyřešila a např. verze 2.4.2 je pro DOS použitelná celkem dobře.
Aktuální verze má však číslo 3.0.0. Dá se říct, že se DOSové větvi bylo přechodem na trojkovou řadu věnováno více péče než v generací řady dvojkové. Do jisté míry je to díky vzniku verze pro 16-bitový reálný režim DOSu. Je příjemné vidět, že se našla skupina nadšenců, kteří se rozhodli vytvořit platformu čistě pro retrocomputing bez ambicí být „cool a na tepu doby“. Zpětně se podařilo i do 32-bitové DOSové verze zavést některé patche původem z šestnáctibitové větve.
Nyní je vhodné napsat několik slov o verzi pro 16-bitový DOS. Především je třeba vědět, že jde o křížový překlad. Překladač samotný je windowsí aplikace, ale generuje kód pro 16 bitů. Vzhledem k paměťovým a procesorovým nárokům kompilátoru není reálné, že by v budoucnu vznikla nativní 16-bitová verze. Je velká škoda, že se ještě nepodařilo zprovoznit křížový překlad z DOS-32 na DOS-16, ale pokud lze věřit prohlášením tvůrců FPC, tak je to v plánu. Problémem je nekompatibilita 32-bitového prostředí samotného Freepascalu s jinou konfigurací 32-bitového režimu, kterou využívají některé podpůrné utility použité pro křížový překlad.
Při křížovém překladu z windows je nepříjemné, že podporovaná verze windows je XP a výše. Osobně jsem to nezkoušel, ale manuál tvrdí, že pod Windows 95/98 už windowsí verze Freepascalu fungovat nebude (a generované programy také ne).
Jak vyplývá z předchozích vět, tak crosscompiler do DOS-16 jsem ještě nezkoušel. Pořádné testování mám ale samozřejmě v plánu.
Vrátíme-li se k nativní 32-bitové DOSové verzi, tak je třeba upozornit na dlouhá jména některých podadresářů s dodávanými jednotkami. Instalaci je tedy třeba věnovat pozornost. LFN v názvech doporučuji ponechat, ale v konfiguračních souborech doporučuji nahradit cesty variantami s krátkým názvem. Tzn. z cesty \GO32V2\RTL-EXTRA\ udělat \GO32V2\RTL-EX~1\ a podobně. Je třeba pochválit, že v IDE řádně funguje přepínání různých textových režimů a že správně funguje kurzor myši. Zní to jako samozřejmost, ale právě s tímto byly v minulosti problémy. Funguje i integrovaný debugger IDE a oproti verzím dokonce ukládá pracovní obrazovku prováděného programu. Bohužel oproti starému dobrému Freepascalu 1.0.10 nikoliv ve VESA módech.
Ve FPC 3.0.0 byl konečně opraven bug 26385. Tato chyba byla jedním z důvodů, proč jsem tak málo důvěřoval řadě 2.x.y. Bohužel, na oplátku je nově zavlečena jiná chyba, a to bug 29083. Ten naštěstí není tak fatální, ale pozor na to.
Při přechodu na trojkovou verzi FPC si dejte pozor, že pro podmíněný překlad již není definován symbol VER2, ale VER3. Toto může zkomplikovat rozlišování mezi „starým“ a „novým“ Freepascalem.
Své povídání o Freepascalu bych rád shrnul tím, že oproti dřívejším zněním tohoto článku je charakter textu optimističtější. V dalších verzí bych chtěl vidět křížový překladač DOS-32 na DOS-16, rád bych viděl, aby si integrovaný debugger rozumněl s výstupní obrazovkou programu i ve VESA režimech a také bych chtěl nové DOSové unitky pro síť a zvuk. To je ale bohužel asi jen nerealistické přání...

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. Dokonce šlo o první překladač pascalu, který byl schopen kompilovat 32-bitové DOSové aplikace. Z hlediska DOSu je 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ňuje DOSové programování a také umožňovalo tvorbu DLL knihoven. Podpora DLL sice není přímo součástí distribuce TMT, ale existuje podpůrná knihovna od Vadima Bodrova, který právě přidává schopnost práce s DLL. Jestliže chceme převést starý Turbo pascalový program do 32-bitového prostředí, tak s TMT pascalem je to díky použitému flat mode obvykle snadnější.
Do verze 3.x TMT pascal existoval ve dvou edicích: základní, což znamená jen pro DOS, a multiplatformní. Verze 4 už vyšla v roce 2001 jen jako multiplatformní, ale ještě po ní se ještě v roce 2002 objevila poslední DOSová verze 3.9
DOSové verze byly zdarma a multiplatformní placené.
Po verzi 4 ale značku TMT pascal koupila firma Framework computers inc. a ta TMT pascal v podstatě zařízla. Sice vyvinula verze 5 a 6 (které přejmenovala na Framework pascal), ale ty již nejsou dostupné jako samostatný produkt, ale pouze jako součást balíku cloudových internetových služeb. I poslední verze 6.1 sice umí kompilovat 32-bitové DOSové programy, ale překladač samotný musí běžet ve windows.
Je moc velká škoda, že TMT pascal takhle usychá. Jeho překlad je totiž fantasticky rychý a generované EXE soubory jsou celkem malé. Je škoda, že pro žádnou z verzí nevyšel port knihovny Turbo vision. Kdyby pro TMT existoval, tak by to pravděpodobně opravdu byla jasná volba při portování starších TP programů do 32 bitů.
TMT pascal má experimentální DOSové IDE, která je ale použitelné jen se starší verzí 3.50. Čestně přiznávám, že jsem ho nezkoušel. Doporučuji použít jako IDE editor SetEdit. Multiplatformní verze mají IDE pro windows. To je sice dost jednoduché, ale zato přehledné a velmi rychlé. Umožňuje snadnou křížovou kompilaci pro DOS nebo OS/2.
V rámci nové firemní politiky ohledně distribuce TMT byla bezplatná DOSová verze 3.90 stažena z oficiálních stránek. Naštěstí pořád existuje na ruské stránce původních tvůrců, odkud si ho můžete stáhnout. Na internetu se dá získat i warezová verze 4.01. Sice to není lehké, ale jde to. Zkuste do vyhledávače zadat TMT_pascal_4mt_sp1.
V krátkém období, kdy jsem TMT používal, jsem náhodně zjistil, že verze 3.90 nesnese u cyklů změnu řídící proměnné cyklu

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ý - 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 a rovněž je 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 port a mem. Virtual pascal podporuje konstrukce Borland pascalu 7 a Delphi 2. Součástí VP jsou všechny standardní jednotky i vynikající port Turbo vision.
VP lze používat buď jako překladač z příkazové řádky nebo prostřednictvím IDE. To je opět textmódové a ideově i vzhledově vychází z IDE turbo pascalu. Pro spuštění pod čistým DOSem je třeba extender DX-DOS.

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 z větší části kompatibilní s borlandem, s ISO a s extended pascalem. Je třeba si dát pozor na to, že řetězce jsou vnitřně reprezentovány jinak a nelze například zjistit délku řetězce pomocí "len:=s[0];". Poslední verze GPC má označení 3.4.6, oficiálně byla vydána v roce 2007, ale v roce 2015 byl GPC adaptován na novou verzi DJGPP, na verzi 2.05. Zároveň platí, že jelikož GPC používá s GCC stejný backend, tak je vlastně upgradován s každým novým vydáním GCC (DJGPP) překladače.
Na mailing listech projektu GPC je i v současnosti jakási aktivita, takže se dá říct, že je to pořád podporovaný překladač.
GPC jsem se zkoušel nainstalovat, ale měl jsem problémy s tím, že mi obvykle nenašel potřebné unitky. Po nakopírování do složek s nainstalovaným DJGPP je totiž potřeba ručně editovat jeden konfigurační soubor a to jsem nejspíš neudělal správně. U GPC se přímo nabízí srovnání s FreePascalem. GPC má výhodu v podpoře některých rozšíření extended pascalu (podporuje konstrukci schemata, což je zvláštní implementace dynamických polí) a tím, že využívá základní céčkové knihovny DJGPP, tak se kód v pascalu snadno napojuje na kód psaný v C++. Kombinování kódu v pascalu a v C++ je v dokumentaci dobře popsáno a jsou tomu věnovány i vzorové programy.
Nevýhodou GPC je složitá instalace a nutnost mít současně nainstalovaný celý GNU C překladač DJGPP. GPC sám o sobě vlastní IDE nemá, ale podle manuálu lze dobře použít RHIDE nebo už trošku starší PENG

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. Překladač není plně kompatibilní s Turbo pascalem.

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 pozdější, snad až do verze 7.0. 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í. Naštěstí ho ale mám ve svých archívech, takže si ho ode mě můžete stáhnout.

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 pascal v realmódových programech včetně konstrukcí try-except-raise. Je to nicméně zcela neoficiální použití Delphi a uspůsobit je pro překlad DOSových programů je obtížné. Pod odkazem najdete kompletní balík, kde už je vše připraveno. Určitým zklamáním pro mě ale je, že ani Delphi 1 nepodporují ve vkládaném assembleru přímý přístup k 32-bitovým registrům. Nadále je třeba používat otravné db 66h;xor ax,ax místo xor eax,eax

Turbo 51 - Jde o další alternativu pascalu pro reálný režim. Jeho tvůrci slibují nejen 100% kompatibilitu s Turbo pascalem 7, ale vyloženě binární shodnost generovaných EXE souborů. Z výše uvedeného by se mohlo zdát, že se jedná o nějakou uniklou verzi Turbo pascalu, ale není to tak. Je to zbrusu nový překladač, který je sám napsaný v pascalu. (narozdíl od Turbo pascalu (TP), který je napsaný v céčku). Bohužel je k dispozici jen řádkový překladač bez IDE. Otázka je, proč používat překladač, který vytváří identické EXE soubory jako TP, když můžeme použít přímo TP. Stinnou stránkou takto vysoké kompatibility je totiž skutečnost, že překladač Turbo 51 nenabízí oproti TP7 nic navíc. Užitek tedy vidím v tom, že je k dispozici zdarma. To mohou ocenit lidé, kteří si zakládají na tom, že používají svobodný software. Občas jsem se setkával s tím, že mi lidi kolem projektu FreeDOS vytýkali, že moje programy jsou psané pro komerční překladač, což není v souladu s myšlenkou svobodného softwaru. Pro tyto puristy je Turbo 51 dobrá volba.
Jak jsem psal výše, Turbo 51 je psané v pascalu. Tvůrci nabízejí kompletní zdrojové kódy, ovšem ty (narozdíl od zdrojáků Freepascalu) nejsou zdarma. Buďto si můžete za 50 dolarů koupit zdrojáky přeložitelné v Turbo pascalu 7 nebo za 150 dolarů dostanete zdrojáky jak pro TP7, tak i druhou sadu pro Delphi. Výsledný překladač ale produkuje shodné EXE soubory.
Celý překladač Turbo 51 je totiž zamýšlen jako výukový materiál jak tvořit kompilátory. V centru zájmu tedy není samotný produkt, ale právě ony zdrojové kódy. Na webu tohoto překladače naleznete spoustu vysvětlivek jak zdrojáky pracují, příklady i teoretičtější výklad, v čem spočívají jednotlivé fáze kompilace.
Kromě kompilátoru pro realmódový DOS si na stránkách Turba 51 můžete stáhnout i překladač pro mikrokontrolér 8051



Zbytek
V uvedeném přehledu jsem se snažil vyjmenovat nejdůležitejší překladače pascalu pro DOS. Jak jsem psal na začátku tohoto textu, seznam není kompletní a vyčerpávající přehled najdete na fracouzské stránce Pascaland.
Z nějakého důvodu je pascal oblíbený jako studentský projekt pro tvorbu kompilátoru. Dá se tedy stáhnout množství více nebo méně kompletních amatérských implementací pascalu, které vznikly jako diplomová práce. Některé jsou pro windows, některé pro 16-bitové DOSové prostředí. Podívejte se na stránku Alexeje Jakovleva [ru] nebo stránky Exmortis. [ru,en]
O studentském projektu pro 32-bitové DOSové prostředí nevím, ale několik nadšenců takové překladače také vyvíjelo. Kdysi jsem stáhnul tyto: Dpas, P32 a Pascal Pro. Několikrát jsem je spustil, ale v praxi vlastně nikdy nepoužil. Žádný z nich už se dále nevyvíjí a dá se říct, že jsou mrtvé.

 
Visual Basic 1.00 pro DOS

Jasně, já vím, že na stránkách o pascalu nemá basic co dělat, ale Visual Basic pro DOS mi přijde jako taková bomba, že ho sem umístit prostě musím. Velmi pěkné. Podobně jako ve verzích pro windows i tady prostě vizuální navrhujete vzhled oken a umisťujete na ně různé grafické prvky. Funguje to výborně, program je sice možná trochu nemotorný, ale to jsou detaily. Oproti například QBASICu tu je i kompilátor do EXE. Výsledný program běží v textovém módu - v 80x25, ale tahá z něj opravdu maximum, může se klidně měřit s Turbo vision.
Pro začátek doporučuji shlédnout vynikající tutorial Learn. Utčitě je propracovanější než obdobný tutorial pro Turbo pascal 6 s názvem TPTour
Kdysi jsem našel stránku, která se DOSovému VisualBasicu věnuje podrobněji.

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ší.



Pascal - hlavní
Překladače
Vlastní články
Převzaté články
Věci na stáhnutí
Odkazy k tématu
BP7 buglist
Chyba Run-time 200

BASIC