Třicet let od vydání revolučního Turbo Pascalu 5.5

5. 9. 2019
Doba čtení: 23 minut

Sdílet

Letos slavíme v IT hned několik kulatých výročí. Kromě Unixu (50), Tetrisu (35) a PC AT (taktéž 35) uplynulo až neuvěřitelných třicet let od vydání přelomové verze Turbo Pascalu verze 5.5.

Obsah

1. Další narozeniny v oblasti IT – třicet let od vydání revolučního Turbo Pascalu 5.5

2. Programovací jazyky dostupné na domácích osmibitových mikropočítačích

3. Jazyk Pascal na minipočítačích i osmibitových domácích mikropočítačích

4. Některé důvody oblíbenosti Pascalu mezi dobovými programátory

5. Vznik Turbo Pascalu

6. Hlavní verze Turbo Pascalu

7. Základní fakta o starobylém Turbo Pascalu 1.0

8. Turbo Pascal 1.0 na mikropočítačích s mikroprocesorem MOS 6502

9. Turbo Pascal 2.0 aneb nepatrné úpravy a vylepšení Turbo Pascalu 1.0

10. Turbo Pascal 3.0 – lepší využití schopností počítačů PC XT a PC AT

11. Turbo Pascal 4.0 – zárodek budoucího plnohodnotného IDE

12. Turbo Pascal 5.0 aneb IDE s plnohodnotným integrovaným debuggerem

13. Revoluce v podání Turbo Pascalu 5.5

14. Jazyk Pascal doplněný o konstrukce OOP

15. Plnohodnotné integrované vývojové prostředí, překladač i debugger ve 153kB kódu?

16. Turbo Pascal 6.0

17. Turbo Pascal 7.0

18. Borland Pascal

19. Turbo Pascal (With DOSBox) (TPWDB)

20. Odkazy na Internetu

1. Další narozeniny v oblasti IT – třicet let od vydání revolučního Turbo Pascalu 5.5

Jak jsme se již zmínili v perexu tohoto článku, uplynulo letos celých třicet let od vydání Turbo Pascalu verze 5.5. Při zpětném pohledu můžeme říct, že se jednalo o revoluční verzi, protože došlo jak k velkým změnám v samotném programovacím jazyku (který se vzdálil od standardizovaného Pascalu), tak i v integrovaném vývojovém prostředí (IDE), které v roce 1989 nemělo – co se týká integrace vývojových nástrojů, snadnosti jejich použití, existence kontextové nápovědy s příklady atd. – prakticky žádnou reálnou konkurenci. Samozřejmě i ostatní verze Turbo Pascalu byly důležité (moduly – units – ve verzi 4.0, zvýraznění syntaxe v IDE ve verzi 7.0 atd.), ovšem Turbo Pascal 5.5 přestavil vývojářům na svou dobu profesionální a přitom velmi kompaktní nástroj. V dnešním článku se tedy budeme věnovat historii Turbo Pascalu a taktéž dalších nástrojů vytvořených pro vývojáře společností Borland (později Inprise a potom opět Borland).

Obrázek 1: Assembler na mikropočítači Commodore C64. Na osmibitových domácích mikropočítačích (a pochopitelně nejenom zde) se assembler používal velmi často, mj. i proto, že právě assembler umožnil tvořit profesionální software s malými systémovými nároky, které mnohdy dokázaly z tehdejšího hardware „vyždímat“ všechny možnosti.

2. Programovací jazyky dostupné na domácích osmibitových mikropočítačích

Mezi nejpoužívanější programovací jazyky populární v dobách osmibitových domácích mikropočítačů patřily zejména assemblery (viz první screenshot v předchozí kapitole) a taktéž více či méně pokročilé interpretry BASICu. To ovšem neznamená, že by nabídka programovacích jazyků byla takto omezená. Ve skutečnosti bylo na osmibitové mikropočítače portováno velké množství překladačů vyšších programovacích jazyků, zejména jazyků podporujících procedurální paradigma, tj. skládání programů z procedur (subrutin), v nichž se používají strukturované konstrukce pro tvorbu rozeskoků a programových smyček.

Obrázek 2: Manuál k Pascalu pro osmibitové domácí mikropočítače Commodore C64.

Z těchto programovacích jazyků byl populární především Pascal, a to mj. i díky tomu, že tento jazyk byl navržen takovým způsobem, aby byl překlad programů proveden jednoprůchodově a tudíž velmi rychle v porovnání s víceprůchodovými překladači (na druhou stranu bylo ovšem strukturování programů přesně dané a nebylo ho možné měnit). Ovšem existovaly i další programovací jazyky, například i populární céčko. Zde je nutné zmínit především známý překladač Aztec C portovaný na velké množství různých typů mikropočítačů, zapomenout nesmíme ani na Deep Blue C pro mikropočítače Atari (zde se autoři museli vyrovnat s faktem, že znaková sada neobsahovala složené závorky), popř. specializované jazyky vzdáleně céčko připomínající (Action! pro Atari atd.).

Obrázek 3: Logo překladačů Aztec C.

V dalším textu se však zaměříme pouze na Pascal, konkrétně na Turbo Pascal.

3. Jazyk Pascal na minipočítačích i osmibitových domácích mikropočítačích

Překladače programovacího jazyka Pascal se začaly poměrně masivně rozšiřovat na různé typy počítačů již během první poloviny sedmdesátých let minulého století. Jednalo se většinou o implementace určené pro sálové počítače a minipočítače. Později, konkrétně v osmdesátých letech minulého století, vznikly překladače Pascalu pro většinu domácích osmibitových mikropočítačů a taktéž osobních mikropočítačů. Pravděpodobně nejznámějším z těchto překladačů byl Turbo Pascal společnosti Borland určený původně pro osmibitové mikropočítače s operačním systémem CP/M a mikroprocesorem Zilog Z80, ovšem zapomenout nesmíme ani na UCSD Pascal.

pc107

Obrázek 4: Jedna z prvních verzí osmibitového mikroprocesoru Zilog Z80.

V tuzemských podmínkách byly překladače tohoto programovacího jazyka dostupné například na počítačích JSEP (Jednotný systém elektronických počítačů) používaných na některých vysokých školách, dále na počítačích ADT a taktéž na prakticky všech československých osmibitových mikropočítačích, především na PMD-85 a taktéž na IQ-151, kde mohl být editor a překladač Pascalu použit v rámci operačního systému AMOS.

pc104

Obrázek 5: Hlavní menu editoru a překladače programovacího jazyka PASCAL na československém osmibitovém mikropočítači PMD-85.

Překladače Pascalu se typicky používaly na počítačích vybavených buď disketovou jednotkou nebo alespoň paměťovým modulem (s Pascalem) a kazetovým magnetofonem. Disketová jednotka umožňovala relativně rychlé přepínání mezi editorem, překladačem (a linkerem) a spuštěním vytvářené aplikace, tj. vlastně ten styl práce, který se v mnoha případech používá dodnes. Alternativní způsob založený na použití paměťového modulu s ROM či EPROM obsahující editor, překladač i linker, kladlo větší omezení na velikost vytvářené aplikace, protože v jedné chvíli byl (alespoň většinou) v operační paměti uložen jak zdrojový text, tak i přeložená binární aplikace.

Obrázek 6: Paměťový modul s Pascalem pro osmibitový mikropočítač PMD-85.

Zajímavá je jedna z verzí Pascalu pro československé mikropočítače PMD-85, která se vyznačovala tím, že prakticky všechny texty, kromě samotných klíčových slov jazyka, byly vypisovány česky či slovensky (autor článku se setkal jen s SK verzí). To samozřejmě usnadňovalo použití tohoto programovacího jazyka například na školách, protože znalosti a výuka angličtiny nebyla před rokem 1989 z pochopitelných důvodů tou oblastí, na něž by se tehdejší školství zaměřovalo (dokonce existovaly varianty Pascalu s přeloženými klíčovými slovy, screenshot však nemám k dispozici).

Obrázek 7: Poměrně komfortní uživatelské rozhraní Pascalu na PMD-85.

Pravděpodobně nejlepší implementací programovacího jazyka Pascal pro mikropočítače PMD byl TOM Pascal Patera Tomcsányiho dodávaný na modulu obsahujícím 32 kB paměti EPROM. Vzhledem k tomu, že standardní paměťové moduly mohly mít pouze 16 kB ROM/EPROM (což souvisí s mapou paměti počítače PMD 85), musel se adresový rozsah modulů s větší kapacitou paměti rozdělit do menších částí (paměťových banků), z nichž pouze jeden byl v danou chvíli vybraný. V případě programovacího jazyka Pascal bylo rozdělení na paměťové banky poměrně přímočaré, protože se program nejprve editoval a teprve poté (v samostatně vyvolaném kroku) překládal.

Obrázek 8: Poměrně komfortní uživatelské rozhraní Pascalu na PMD-85.

4. Některé důvody oblíbenosti Pascalu mezi dobovými programátory

Samozřejmě existuje hned několik důvodů oblíbenosti Pascalu mezi programátory pracujícími s malými osmibitovými mikropočítači a později osobními mikropočítači šestnáctibitovými. Především je Pascal navržen takovým způsobem, aby byl snadno přeložitelný, což vede jak k malému překladači (z hlediska spotřeby operační paměti i jeho binární velikosti), tak i k velmi rychlému jednoprůchodovému překladu. Ten byl prakticky okamžitý, a to i na tak výpočetně slabých mikroprocesorech, jako je původní Intel 8088 či později mikroprocesory řady 80286. Některé překladače dokázaly generovat (kompilovat) výsledný binární spustitelný kód přímo v operační paměti bez nutnosti přístupu na externí paměťové médium, což bylo v dobách, kdy mnohé počítače byly vybaveny jen disketovými jednotkami (a nikoli pevným diskem), popř. dokonce jen páskovou jednotkou, taktéž užitečné.

Obrázek 9: Moduly pro osmibitový mikropočítač IQ-151, včetně modulu s Pascalem.

Navíc je samotný programovací jazyk Pascal postaven na poměrně silném typovém systému, takže se v něm psaly i systémové utility atd. (v dobách největšího rozšíření systému DOS vznikala mnohá dema napsaná v kombinaci Pascalu a assembleru, ostatně k možnosti psát rutiny v assembleru a vkládat je přímo do zdrojových kódů Turbo Pascalu se ještě vrátíme).

Obrázek 10: Jednoduchý Pascal, tentokrát určený pro osmibitové domácí mikropočítače Atari.

Poznámka: nutno poznamenat, že původní Pascal ve skutečnosti neměl všechny potřebné vlastnosti vhodné pro profesionálně nasaditelný programovací jazyk. Některé dobře míněné výtky můžeme najít v dnes již klasickém článku Why Pascal is Not My Favorite Programming Language. Dnes popisované verze Turbo Pascalu postupně všechna omezení a problémy odstranily (podobně jako tomu bylo v dalších komerčních překladačích).

Obrázek 11: Další varianta Pascalu pro osmibitové domácí mikropočítače Atari.

pc104

Obrázek 12: TOM Pascal dokáže přímo při zápisu programů provádět automatický převod klíčových slov na malá písmena a taktéž spouštět automatickou syntaktickou kontrolu, což jsou vlastnosti, kterými nedisponuje ani o mnoho slavnější Turbo Pascal.

5. Vznik Turbo Pascalu

Turbo Pascal 3: „The fastest Pascal development environment on the planet. Period.“

Později byl Pascal implementován firmou Borland na počítačích se systémem CP/M i na osobních počítačích PC s procesorem 8088 (později 80286 atd.). A právě zde se dočkal svého největšího rozšíření a popularity. Produkty Turbo Pascal a Borland Pascal byly na těchto počítačích oblíbené zejména z toho důvodu, že obsahovaly snadno použitelné integrované vývojové prostředí s editorem, překladačem i debuggerem a v pozdějších verzích i s integrovanou kontextovou nápovědou. Překlad byl navíc tak rychlý (především při překladu pouze do operační paměti, nikoli při zápisu výsledného spustitelného .EXE souboru na disk), že se Turbo Pascal dal používat prakticky stejným způsobem jako interpretované programovací jazyky, zejména v té době stále oblíbený a rozšířený Basic. Na tomto místě je možná vhodné zmínit historku o tom, jak Bill Gates osobně velmi nelibě nesl, že Turbo Pascal má tak rychlý překladač, protože Microsoft nebyl schopný v té době přijít s produktem, který by byl podobně rychlý a současně nenáročný na systémové prostředky tak, jako Turbo Pascal. Gatesova frustrace patrně vycházela i z toho, že sám začínal jako vývojář programovacích jazyků (MBasic, nepřímo se podílel i na AppleSoft Basic) určených původně pro osmibitové mikropočítače.

Obrázek 13: Turbo Pascal začal být populární zejména na IBM PC (což však již nejsou čistě osmibitové stroje).

6. Hlavní verze Turbo Pascalu

Turbo Pascal byl vyvíjen a prodáván prakticky přesně deset let. Za tu dobu vzniklo deset hlavních vydání, které jsou vypsány v následující tabulce:

# Jméno (verze) Datum vydání
1 Turbo Pascal 1 20.11.1983
2 Turbo Pascal 2 17. 4.1984
3 Turbo Pascal 3 17. 9.1986
4 Turbo Pascal 4 20.11.1987
5 Turbo Pascal 5 24. 8.1988
6 Turbo Pascal 5.5 2. 5.1989
7 Turbo Pascal 6 23.10.1990
8 Turbo Pascal for Windows 1.0 13. 2.1991
9 Turbo Pascal for Windows 1.5 8. 6.1992
10 Borland Pascal 7 27.10.1992
Poznámka: Turbo Pascal resp. Borland Pascal byl nahrazen vývojovým prostředím Delphi, v němž se taktéž používá jazyk odvozený od původního Pascalu, i když s mnoha vylepšeními. Tímto prostředím se ovšem dnes zabývat nebudeme.

7. Základní fakta o starobylém Turbo Pascalu 1.0

Tento článek je sice primárně věnován Turbo Pascalu verze 5.5, ovšem ve stručnosti si popíšeme i ostatní verze tohoto programovacího jazyka a současně i integrovaného vývojového prostředí. Začneme dnes již skutečně starobylým Turbo Pascalem verze 1.0, který byl vydán jak pro operační systém CP/M (počítače s osmibitovým mikroprocesorem Zilog Z80), tak i pro tehdy moderní novinku – PC-DOS (IBM PC s mikroprocesorem Intel 8088, pochopitelně byl ovšem plně podporován i mikroprocesor Intel 8086). Pro svůj běh – a to včetně celého cyklu Edit → Compile → Run/Execute – vyžadoval Turbo Pascal 1.0 pouze 64kB operační paměti, přičemž výsledkem překladu byly soubory s koncovkou .COM popř. .CHN. Zajímavá byla i cena – 49,99 dolarů, což bylo velmi málo v porovnání s dalšími profesionálními překladači (ostatně podobně zajímavé cenové hladiny se Borland snažil udržet i u dalších produktů).

Zajímavé je, že tato verze již podporovala „multimediální“ možnosti tehdejších mikropočítačů, což konkrétně v případě IBM PC znamenalo, že byly podporovány grafické režimy karty CGA a taktéž bylo možné generovat tóny na PC Speakeru.

Obrázek 14: Hlavní menu vývojového prostředí Turbo Pascalu 1.0. Z tohoto menu se vyvolávaly jednotlivé moduly integrovaného vývojového prostředí. Teprve později došlo k úplnému sjednocení jednotlivých částí a hlavní obrazovkou se stal samotný programátorský editor se stavovým řádkem a hlavním menu.

Jak je patrné z předchozího screenshotu, neměla tato verze Turbo Pascalu ještě známé uživatelské rozhraní s modrým pozadím, menu a dialogy. Namísto toho se zobrazovala hlavní celoobrazovkové menu, z něhož uživatel mohl vybírat jednotlivé režimy celého toolchainu Pascalu – editor, překladač atd.

Poznámka: ve skutečnosti nebyla volba pro spuštění programu na některých operačních systémech plně funkční, protože bylo nutné z vývojového prostředí vyskočit.

Turbo Pascal 1.0 (ve variantě pro IBM PC s DOSem) byl dodáván na disketě, na níž byla obsazeno pouze 130 kB, což je dnes již neuvěřitelně malá kapacita. Tato disketa obsahovala pouze deset souborů, které jsou vypsány v následující tabulce:

# Soubor Význam
1 TURBO.COM compiler and editor
2 TURBOMSG.OVR error messages file
3 TINST.COM development environment installation program
4 TINSTMSG.OVR message file for TINST program
5 TLIST.COM program lister
6 ERROR.DOC addendum to the Turbo Reference Manual
7 CALC.PAS MicroCalc (spread sheet demo program)
8 CALCMAIN.PAS Root demo program demonstrating include file usage
9 CALC.HLP On-line manual for MicroCalc
10 CALCDEMO.MCS Example spread sheet definition
Poznámka: povšimněte si koncovky spustitelných souborů .COM. Jedná se o starší (interně velmi jednoduchý, ovšem proto i dosti omezený) formát, který vznikl právě pro potřeby operačního systému CP/M a později začal být používán i na systému MS DOS. V novějších verzích Turbo Pascalu se pochopitelně začal používat obecnější formát .EXE, takže se vlastní integrované vývojové prostředí nestartovalo příkazem TURBO.COM, ale TURBO.EXE (ovšem v tomto případě lze koncovku zcela vynechat a použít jen TURBO).

8. Turbo Pascal 1.0 na mikropočítačích s mikroprocesorem MOS 6502

Na stránkách Roota jsme se již mnohokrát setkali se slavným osmibitovým mikroprocesorem MOS 6502. Zajímavé je, že i majitelé počítačů vybavených tímto čipem, který byl zcela odlišný od Intelu 8080 či Zilogu Z80, v některých případech mohli Turbo Pascal 1.0 provozovat, a to dokonce včetně operačního systému CP/M. Bylo to umožněno hardwarovým rozšířením. Pro počítače Apple II, které byly velmi populární především v USA, vznikla doplňující karta nazvaná Z-80 SoftCard, která vlastně do počítače doplnila další mikroprocesor, konkrétně Zilog Z80, a umožnila tak běh operačního systému CP/M a Turbo Pascalu, který tento operační systém pro svůj běh na Z80 vyžadoval. Podobné rozšíření existovalo i pro Commodore C64.

Obrázek 15: Karta, která proměnila Apple II v mikropočítač schopný běhu systému CP/M.
(Zdroj: Wikipedia)

9. Turbo Pascal 2.0 aneb nepatrné úpravy a vylepšení Turbo Pascalu 1.0

Druhá verze Turbo Pascalu, která byla vydána v roce 1984, obsahovala pouze několik vylepšení a oprav, takže se v tomto případě žádná podstatná revoluce nekonala. Z hlavního menu byla odstraněna (nefunkční) volba určená pro přímé spuštění aplikace, nepatrně byl upraven překladač atd. Stále ještě nebyly podporovány skutečné moduly ani možnost vytvářet spustitelné programy větší než 64 kB, takže se sice jednalo o profesionální produkt, ovšem s omezenými vlastnostmi, zejména s ohledem na to, jak se možnosti samotné řady IBM PC postupně rozšiřovaly: v roce 1983 (tedy rok před vydáním Turbo Pascalu 2.0) totiž začaly být vyráběny mikropočítače IBM PC XT s kapacitou operační paměti až 640 kB a volitelně vybavené pevným diskem. Na takové konfiguraci se již otevíraly mnohé možnosti, zejména vytváření aplikací, jejichž binární velikost mohla přesáhnout jeden segment (64kB).

Obrázek 16: Šestnáctibitový mikroprocesor Intel 8086. Tento mikroprocesor byl v době, kdy IBM uvedla na trh IBM PC a posléze i IBM PC XT, dosti drahý a především jeho podpůrná čipová sada prodražovala i stavbu případného mikropočítače. Z tohoto důvodu je sázka firmy IBM na levnější a méně výkonnou variantu Intel 8088 pochopitelná a historie ukázala, že i fenomenálně úspěšná (se všemi pozitivy ale i negativy). Intel 8088 je tak možné považovat za nejúspěšnější čip Intelu vůbec.

10. Turbo Pascal 3.0 – lepší využití schopností počítačů PC XT a PC AT

Třetí celočíselná verze Turbo Pascalu byla vydána v roce 1986. V této verzi se objevila podpora pro tehdy nové grafické karty EGA, což sice bylo užitečné, ovšem jen pro programy s grafickým výstupem. Prakticky všechny rozsáhlejší aplikace však mohly začít využívat ještě jednu novou vlastnost – takzvané overlaye umožňující vytvářet programy, v nichž jejich binární (strojový) kód mohl být dosti rozsáhlý.

V této verzi se taktéž objevila podpora pro datové typy BCD (Binary Coded Decimal).

I přes některé výše popsané změny bylo samotné prostředí Turbo Pascalu stále prakticky totožné s prostředím předchozích verzí. Ústředním prvkem byla úvodní obrazovka, v níž se vybíraly základní operace (editace, překlad, spuštění). Z tohoto pohledu by se mohlo zdát, že vývoj Turbo Pascalu stagnuje, což možná i byla pravda, protože společnost Borland chystala i další programovací jazyky, mezi něž patřil Turbo Basic, Prolog a C (později Turbo C++). Nicméně již verze 4.0 vydaná o rok později ukázala, že Turbo Pascal 3.0 byl jen prvním krokem směrem k pokročilejším vývojovým nástrojům.

pc85

Obrázek 17: Ukázka grafických schopností karty EGA.

11. Turbo Pascal 4.0 – zárodek budoucího plnohodnotného IDE

Čtvrtá verze Turbo Pascalu vyšla v roce 1987. Jednalo se o verzi, v níž již došlo k poměrně razantním změnám, které se dotkly jak vlastního vývojového prostředí (to již začalo připomínat pozdější slavné „modré“ IDE), tak i možností překladače a taktéž podpory nových periferních zařízení, které se na platformě IBM PC objevily. Skutečně – v této verzi již byl podporován jen operační systém MS DOS, zatímco podpora pro CP/M byla zrušena (což celkem logicky reflektovalo velmi rychle probíhající změny na trhu s mikropočítači).

Obrázek 18: Úvodní obrazovka Turbo Basicu. Jednalo se o jazyk vyvíjený v letech 1987 a 1988, takže zde firma Borland logicky použila velmi podobné uživatelské rozhraní, jaké nalezneme právě v Turbo Pascalu 4.0. Později však přestal být Turbo Basic i další podobné nemainstreamové jazyky (Turbo Prolog) vyvíjen, protože se Borland orientoval na Turbo Pascal a na Turbo C (později Turbo C++).

Z nových podporovaných periferních zařízení jmenujme především grafické karty EGA (viz též Turbo Pascal 3.0 popsaný v předchozí kapitole) a dokonce i VGA; podporovány ovšem byly jen režimy se šestnácti barvami, nikoli přímo 256barvový režim VGA tak oblíbený tvůrci her. Rozšířen byl i samotný programovací jazyk, protože se například objevil nový datový typ longint. Pravděpodobně nejvýznamnější změnou umožňující tvorbu skutečně rozsáhlých programů, bylo zavedení konceptů modulů (units), které byly zpracovávány integrovaným linkerem. Výsledkem práce překladače a linkeru byly soubory EXE, které netrpěly takovým omezením, jako binární soubory COM.

Obrázek 19: Nastavení parametrů integrovaného vývojového prostředí Turbo Basicu.

V této kapitole jsou použity screenshoty integrovaného vývojového prostředí Turbo Basicu. Nejedná se o náhodu, protože prostředí Turbo Pascalu 4.0 se Turbo Basicu v mnoha ohledech podobalo. Již se skutečně jednalo o plnohodnotné IDE, kde ústředním prvkem byl programátorský editor doplněný o roletová menu a několik dialogů umožňujících konfiguraci překladače, nastavení vlastního editoru atd. Taktéž bylo možné přímo na obrazovce IDE sledovat textový výstup produkovaný vyvíjenou aplikací.

Obrázek 20: Program obsahující strukturovaně zapsané programové smyčky otevřený ve vývojovém prostředí Turbo Basicu.

12. Turbo Pascal 5.0 aneb IDE s plnohodnotným integrovaným debuggerem

Dostáváme se k Turbo Pascalu verze 5.0, který byl vydán v roce 1988. Tato verze přinesla dvě důležité a užitečné novinky. První z těchto novinek se týká vlastního integrovaného vývojového prostředí, do kterého byl přidán plnohodnotný debugger. Právě od této verze se ve všech dalších IDE společnosti Borland s integrovaným debuggerem setkáme. To však není vše, protože kromě integrovaného debuggeru byl dodáván i samostatný Turbo Debugger, který byl dostupný i jako samostatná aplikace (zajímavé je, že textové uživatelské rozhraní Turbo Debuggeru vlastně nikdy nebylo zcela shodné s ostatními „Turbo“ nástroji).

Obrázek 21: Prostředí novější verze Turbo Debuggeru.

Další novinkou představenou v Turbo Pascalu 5.0 je technologie grafických ovladačů (BGI – ). Jednalo se o oddělení funkcí grafické knihovny od nativního kódu, který prováděl vlastní vykreslování. V praxi to například znamenalo, že bylo možné vytvořit aplikaci pracující s libovolnou grafickou kartou (ovšem pochopitelně s různými omezeními, například s tím, že na kartě CGA bude aplikace používat jen monochromatický grafický režim atd.). V praxi se BGI používalo zejména ve chvíli, kdy bylo nutné použít 16barevné režimy grafických karet EGA a VGA. Později (to se již ovšem nejednalo o Turbo Pascal 5.0) byly přidány i grafické režimy s 256 barvami vybraných grafických karet SVGA (a další ovladače byly k dispozici od dalších dodavatelů).

Obrázek 22: Prostředí novější verze Turbo Debuggeru.

13. Revoluce v podání Turbo Pascalu 5.5

Konečně se dostáváme k Turbo Pascalu 5.5, který byl vydán druhého května 1989, tedy před více než třiceti lety. Zajímavé je, že i když se jednalo o „desetinkovou“ verzi, nalezneme právě v Turbo Pascalu 5.5 velké množství vylepšení a v jednom případě i revoluční změnu. Nejdříve začněme popisem vylepšení integrovaného vývojového prostředí. Poprvé se zde objevuje klasické modré pozadí celého prostředí, které bylo následně použito i v dalších verzích Turbo Pascalu i Borland Pascalu (s tím, že barva pozadí byla konfigurovatelná). Taktéž došlo k vylepšení integrovaného debuggeru a přidána byla i kontextová nápověda s hypertextovými odkazy s možností kopie ukázkových zdrojových kódů přímo do integrovaného textového editoru. Celé IDE bylo možné ovládat jak klávesovými zkratkami, tak i z hlavního menu doplněného o několik dialogů. Na svou dobu se jednalo o velmi propracované prostředí, navíc pojaté značně minimalisticky (viz též navazující kapitoly).

Obrázek 23: Uživatelské rozhraní Turbo Pascalu 5.5.

Poznámka: zajímavé je, že právě tato verze Turbo Pascalu je stále k dispozici ke stažení ze stránek http://edn.embarcadero.com/ar­ticle/20803. Instalace v DosBoxu je otázkou doslova několika desítek sekund.

Obrázek 24: Na grafické kartě EGA lze zobrazit 43 textových řádků, na VGA pak celých 50 řádků (myšleny jsou standardní režimy).

14. Jazyk Pascal doplněný o konstrukce OOP

Další novinkou, která se objevila v Turbo Pascalu 5.5, je objektové rozšíření vlastního programovacího jazyka Pascal. Termín „objektově orientované programování“ se právě v roce 1989 velmi často skloňoval a společnost Borland pochopitelně nechtěla, aby byl její (již tak od normy odchýlený) jazyk Pascal o možnost tvorby aplikací s využitím OOP ochuzen. Některé základní možnosti objektového systému Turbo Pascalu si ukážeme na screenshotech.

Poznámka: Delphi přišlo s dalším rozšířením OOP s odlišnou (zjednodušenou) syntaxí.

Obrázek 25: Vrcholek módní vlny OOP se nevyhnul ani Turbo Pascalu.

Obrázek 26: Definice třídy je odvozena od definice záznamu (record). Prozatím nejsou podporovány modifikátory režimu přístupu (public, protected, private, …).

Obrázek 27: V OOP založeném na třídách samozřejmě nemohou chybět konstruktory objektů.

Obrázek 28: Jednoduchá třída (nenechejte se zmást klíčovým slovem object) s dvojicí položek. Dále je zkonstruován objekt a jeho datové položky jsou inicializovány.

Obrázek 29: Ukázka dědičnosti a tvorby hierarchie tříd. Zde je třída TGraphicsPoint odvozena ze třídy TPoint.

Obrázek 30: Dynamická alokace objektu na haldě s využitím procedury new a dealokace s využitím dispose. Povšimněte si přístupu k objektu přes ukazatel s využitím operátoru ^. (podobné → v céčku).

Obrázek 31: Zjednodušení zápisu pomocí bloku with, který původně sloužil pouze pro přístup k prvkům záznamu a v Turbo Pascalu byl rozšířen i na datové položky objektů.

Obrázek 32: Deklarace metody – hlavička se zapisuje do deklarace třídy, implementace zvlášť (na rozdíl od Javy či Pythonu).

15. Plnohodnotné integrované vývojové prostředí, překladač i debugger ve 153kB kódu?

Povšimněte si i třicet let starého výsměchu všem nám „moderním“ programátorům – celé vývojové prostředí Turbo Pascalu 5.5 bylo společně s překladačem a debuggerem (a pochopitelně i integrovaným textovým editorem) uloženo v jediném souboru o velikosti pouhých 153kB:

Obrázek 33: Celá instalace Turbo Pascalu 5.5 zabere na disku přibližně 400 kB.

Jen pro porovnání:

Soubor Velikost
Celé IDE TP 5.5, editor, překladač, debugger 153kB
Interpret jazyka Lua 5.1 (64bit) 174kB
Interpret jazyka Lua 5.2 (64bit) 195kB
LuaJIT (64bit) 445kB
Interpret Pythonu 3.x od 3700kB výše
Hello world v Go 1000kB
Hello world v Go využívající fmt 1900kB

16. Turbo Pascal 6.0

Turbo Pascal verze 6.0 byl vydán v roce 1990. V této verzi se změnilo především uživatelské rozhraní integrovaného vývojového prostředí, které bylo založeno na knihovně Turbo Vision a nabízelo další funkce (samostatná okna s editory, debuggerem atd., schránku, plnohodnotná podpora myši). A právě knihovna Turbo Vision patří mezi další nové vlastnosti Turbo Pascalu 6.0. Tato knihovna umožňovala relativně snadnou tvorbu aplikací s plnohodnotným (celoobrazovkovým) textovým uživatelským rozhraním, a to s využitím objektového systému, o němž jsme se zmínili v předchozí kapitole. Navíc byl vlastní programovací jazyk rozšířen o možnost vkládat přímo do zdrojového kódu bloky s instrukcemi psanými v assembleru a používat v těchto instrukcích jména proměnných (pochopitelně ve funkci operandů). Jen velmi málo programovacích jazyků se může pochlubit tak dobrou integrací assembleru.

Poznámka: na knihovně Turbo Vision bylo postupně postaveno poměrně velké množství aplikací s textovým uživatelským rozhraním. Tyto aplikace se v některých případech používaly i celé další desetiletí (a to se bavíme o období, kdy vznikly Windows NT, Windows 95 a Windows 98).

17. Turbo Pascal 7.0

Poslední verzí Turbo Pascalu pro operační systém DOS byl Turbo Pascal 7.0, který byl vydán v roce 1993. Asi nejvíce viditelnou novinkou byl programátorský textový editor, jenž podporoval zvýraznění syntaxe. Navíc se změnil (v profi verzi) i překladač, protože kromě DOSovských programů dokázal překládat a linkovat i programy určené pro Microsoft Windows. Dokonce bylo možné vytvářet dynamicky linkované knihovny (DLL), což se opět týká profi verze zmíněné v navazující kapitole. Základní Turbo Pascal 7.0 byl stále omezen na generování strojového kódu pro šestnáctibitové mikroprocesory 8088/8086, volitelně dokonce i pro 80286.

Obrázek 34: Dialog se základními informacemi o IDE Turbo Pascal 7.0.

Obrázek 35: Mezi autory Turbo Pascalu nalezneme i Anderse Hejlsberga.

Obrázek 36: Integrovaný programátorský editor.

Obrázek 37: Nastavení překladače.

Obrázek 38: Informace o přeloženém programu.

18. Borland Pascal

Produkt Borland Pascal je vylepšenou „profesionální“ (a tím pádem i dražší) variantou mladších verzí Turbo Pascalu, i když se ve skutečnosti i Turbo Pascal používal pro tvorbu profesionálních aplikací. Borland Pascal (poprvé se tento název použil u verze 5.0) umožňoval využití šestnáctibitového chráněného režimu (protected mode), překlad programů pro 16bitová Windows, nabízel k dispozici větší množství nástrojů i knihoven a taktéž zdrojové kódy těchto knihoven.

Obrázek 39: Dialog se základními informacemi o IDE Borland Pascal 7.0.

I samotné integrované vývojové prostředí používalo šestnáctibitový chráněný režim (ten byl pro prostředí Borlandu typický, teprve později se postupně přešlo na plně 32bitový chráněný režim), takže dokázalo pracovat i s většími projekty, interní editor dokázal otevřít větší množství oken s rozsáhlejšími soubory apod. Z pohledu uživatelského rozhraní (TUI) si byla všechna integrovaná vývojová prostředí firmy Borland velmi podobná, což lze samozřejmě považovat za velkou výhodu – pro mnoho vývojářů nepředstavoval přechod z Turbo Pascalu na Borland Pascal prakticky žádný problém (pouze se rozšířily položky některých dialogů). Prostředí Borland Pascal 7.0 lze i z tohoto důvodu považovat za vyvrcholení klasických komerčních IDE s textovým uživatelským rozhraním v DOSu.

Obrázek 40: Podporován byl reálný i chráněný režim procesorů Intel.

19. Turbo Pascal (With DOSBox) (TPWDB)

Na stránce https://tpwdb.weebly.com/ najdeme projekt nazvaný příznačně Turbo Pascal (With DOSBox) neboli zkráceně TPWDB. Jedná se o DOSBox (emulátor PC s operačním systémem DOS – moderněji řečeno virtuální stroj) nakonfigurovaný společně s Turbo Pascalem 7.0, které společně tvoří textově orientované integrované vývojové prostředí. To je snadno instalovatelné, což je důležité zejména na školách. Otázkou samozřejmě zůstává, do jaké míry by školy měly udržovat popř. rozšiřovat výuku Pascalu, na druhou stranu je však mnoho vyučovaných alternativ spíše (alespoň podle skromných názorů autora) krok špatným směrem.

Obrázek 41: Informace o přeloženém programu (Borland Pascal).

ict ve školství 24

Obrázek 42: Nastavení breakpointů přímo v textovém editoru.

Obrázek 43: Dialog pro vyhledávání a nahrazování.

20. Odkazy na Internetu

  1. Turbo Pascal Free Download
    https://www.schoolfreeware­.com/Freeware_Turbo_Pascal_Dow­nload.html
  2. History of Pascal
    https://www.taoyue.com/tu­torials/pascal/history.html
  3. Antique Software: Turbo Pascal version 5.5
    http://edn.embarcadero.com/ar­ticle/20803
  4. Turbo Pascal Object-oriented programming guide
    http://edn.embarcadero.com/ar­ticle/images/20803/TP55_O­OP_Guide.pdf
  5. Why Pascal is Not My Favorite Programming Language
    https://www.lysator.liu.se/c/bwk-on-pascal.html
  6. UCSD Pascal
    https://en.wikipedia.org/wi­ki/UCSD_Pascal
  7. Turbo Pascal 1.0
    http://progopedia.com/version/turbo-pascal-1.0/
  8. Turbo Pascal 2.0
    http://progopedia.com/version/turbo-pascal-2.0/
  9. Turbo Pascal 3.0
    http://progopedia.com/version/turbo-pascal-3.0/
  10. Turbo Pascal 4.0
    http://progopedia.com/version/turbo-pascal-4.0/
  11. Turbo Pascal 5.0
    http://progopedia.com/version/turbo-pascal-5.0/
  12. Turbo Pascal 5.5
    http://progopedia.com/version/turbo-pascal-5.5/
  13. Turbo Pascal 6.0
    http://progopedia.com/version/turbo-pascal-6.0/
  14. Turbo Pascal 7.0
    http://progopedia.com/version/turbo-pascal-7.0/
  15. Borland® Pascal and Turbo Pascal® for Sale
    http://www.emsps.com/oldto­ols/borpas.htm
  16. Turbo Pascal (Free Pascal Wiki)
    https://wiki.freepascal.or­g/Turbo_Pascal
  17. Borland®/Inprise® Pascal Versions
    http://www.emsps.com/oldto­ols/borpasv.htm
  18. Turbo Pascal (Wikipedia)
    https://en.wikipedia.org/wi­ki/Turbo_Pascal
  19. Turbo BASIC (Wikipedia CZ)
    http://cs.wikipedia.org/wi­ki/Turbo_BASIC
  20. PowerBASIC (Turbo BASIC, Wikipedia CZ)
    https://en.wikipedia.org/wi­ki/PowerBASIC
  21. Lazarus (Software)
    http://en.wikipedia.org/wi­ki/Lazarus_%28software%29
  22. FreePascal
    http://www.freepascal.org/
  23. FreePascal (dokumentace dostupná online)
    https://www.freepascal.org/docs.html
  24. Turbo Pascal (With DOSBox)
    https://tpwdb.weebly.com/
  25. Modern Pascal
    http://modernpascal.com/
  26. Martin Schotek a PMD 85
    http://www.schotek.cz/pmd/index.htm
  27. Scanované informace o PMD 85
    http://www.schotek.cz/pmd/scan.htm
  28. Czechoslovakian Home-Computers
    http://www.homecomputer.de/pa­ges/easteurope_cz.html
  29. PMD 85 (Personal Microcomputer with Display) emulator
    http://pmd85.djb-studios.com/wiki/PMD85&setlang=en
  30. PMD 85 Emulator – Screenshots
    http://pmd85.djb-studios.com/wiki/Emulator/Screenshots
  31. PMD-85
    http://www.old-computers.com/museum/compu­ter.asp?c=730&st=1
  32. Peripherals of PMD-85 and compatibles
    http://pmd85.djb-studios.com/wiki/Peripherals
  33. COM file
    https://en.wikipedia.org/wi­ki/COM_file
  34. Delphi (IDE)
    https://en.wikipedia.org/wi­ki/Delphi_(IDE)

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.