Turbo Pascal

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Turbo Pascal
Vývojář Borland
Aktuální verze (1983[1])
Operační systém CP/M, CP/M-86, DOS,
Windows 3.x, Macintosh
Typ softwaru Vývojové prostředí

Turbo Pascal je systém pro vývoj softwaru, který obsahuje překladač a vývojové prostředí (VP) pro programovací jazyk Pascal běžící na systémech CP/M, CP/M-86 a DOS, vyvinutý firmou Borland pod vedením Phillippe Kahna. Od verze 6 byly produkovány dvě verze, levný Turbo Pascal a také dražší Borland Pascal; Borland Pascal měl více knihoven a také zdrojové kódy standardních knihoven.

Turbo Pascal také představuje jedno z nejvýznamnějších rozšíření jazyka Pascal, které usnadňují jeho používání pro praktické programování.

Borland vydal tři staré verze Turbo Pascalu zdarma, důvodem byl jejich historický význam: Původní Turbo Pascal (nyní známý jako 1.0), a dále verze 3.02 a 5.5 pro DOS.[2][3][4]

Motivace a vydání[editovat | editovat zdroj]

Philippe Kahn viděl příležitost pro Borland, jeho nově vzniklou softwarovou společnost, v poli programovacích nástrojů. Drtivá většina programátorů svůj vývojový cyklus (editace/kompilace/linkování) prováděla za pomoci nástrojů určených přímo pro jednotlivé úkoly. Programátoři napsali zdrojový kód za pomoci textového editoru, následně překladač vytvořil objektový kód ze zdroje (často bylo nezbytné několikanásobné projití kódu) a nakonec linker zkombinoval objektový kód s knihovnami, aby vytvořil spustitelný program.

V raném trhu IBM PC (1981-83) většina prodejců programovacích nástrojů vytvářela překladače, které všechny pracovaly na velice podobném principu. Například systém Microsoft Pascal se skládal ze dvou průchodů překladačem a finálním linkováním (což mohlo zabrat celé minuty na systému, který měl pouze disketovou jednotkou pro ukládání dat). Tento proces byl těžkopádným výsledkem extrémně omezených zdrojů raných modelů IBM PC. Prodejci nástrojů pro vývoj software zaměřovali svoje produkty na profesionální vývojáře a ceny za jejich základní nástroje se pohybovaly v rámci stovek dolarů.

Kahnova idea byla zabalit všechny tyto funkce do integrovaného programovacího prostředí, které bude mít mnohem lepší výkon a to vše za nízkou cenu. Místo prodeje pomocí zavedených prodejních cest (maloobchodníci nebo větší prodejci) by se jejich nový produkt prodával levněji pomocí objednávek poštou.

Jako prodejní tah, proti větším prodejcům, neměly disky Turbo Pascalu žádnou ochranu proti kopírování, Turbo Pascal vyšel se slavnou "Knižní licencí": "You must treat this software just like a book... [it] may be used by any number of people... may be freely moved from one computer location to another, so long as there is no possibility of it being used at one location while it's being used at another."[5] Volně přeloženo: "Zacházejte s tímto softwarem prostě jako s knihou… může být použit jakýmkoliv počtem lidí… může být volně přesouván z jednoho počítače na druhý, za předpokladu že nebude používán na více místech současně."

Rozšíření jazyka[editovat | editovat zdroj]

Turbo Pascal implementuje celou řadu rozšíření jazyka Pascal, které z původně výukového programovacího jazyka dělají poměrně účinný nástroj pro praktické programování:

  • Řetězce proměnné délky
  • Přístup k parametrům příkazového řádku
  • Možnost nastavení návratového kódu programu
  • Práce se soubory
  • Zkrácené vyhodnocování logických výrazů
  • Předčasné ukončení cyklu
  • Příkaz else v case
  • Operátor @ pro získání adresy objektu
  • Samostatně překládané moduly
  • Možnost vkládat strojový kód do programu

Řetězce proměnné délky[editovat | editovat zdroj]

Kromě řetězců s pevnou délkou ze standardního jazyka standardní Pascal (packed array [1..n] of char), umožňuje Turbo Pascal používat řetězce s proměnnou délkou (max. 255 znaků) typu String. Ke zpracování řetězců tohoto typu jsou k dispozici funkce length, která vrací délku řetězce, pos, která vrací pozici podřetězce v řetězci, a copy, která vrací část řetězce od zadaného znaku a zadané délky.

Parametry příkazového řádku[editovat | editovat zdroj]

Pro zpřístupnění parametrů příkazového řádku slouží funkce ParamCount, která vrací počet parametrů, a ParamStr, která vrací řetězec odpovídající parametru se zadaným číslem.

Možnost nastavení návratového kódu programu[editovat | editovat zdroj]

Pro okamžité opuštění procedury nebo funkce slouží příkaz exit. Pro okamžité ukončení programu a nastavení návratového kódu slouží funkce halt;

Práce se soubory[editovat | editovat zdroj]

Funkce Assign se volá před otevřením souboru a umožňuje zadat, jméno souboru (včetně případné cesty). Funkce Close umožňuje zavřít soubor kdykoli v průběhu programu. Funkce Seek umožňuje posunout ukazovátko v souboru na nové místo, kde se bude provádět další operace čtení nebo zápisu. Proměnná IOResult udává chybový kód vrácený poslední operací se soubory.

Zkrácené vyhodnocování logických výrazů[editovat | editovat zdroj]

Zkrácené vyhodnocování logických výrazů umožňuje používat výrazy jako

while (ptr <> nil) and (ptr^.next <> nil) do
 ptr := ptr^.next;

Standardní Pascal trvá na kompletním vyhodnocování logických výrazů, takže když ptr má hodnotu nil (a je jasné, že podmínka nemůže být splněna), pokusí se program vyhodnotit výraz ptr^.next <> nil, což způsobí chybu, protože ukazatel s hodnotou nil není dovoleno dereferencovat. Turbo Pascal vyhodnocuje složené logické výrazy zleva doprava a vyhodnocování ukončí, když je hodnota výrazu jasná.

Výskok z cyklu pomocí break a continue[editovat | editovat zdroj]

Cykly lze okamžitě ukončit příkazem break; příkaz continue znamená přechod na začátek další iterace cyklu.

Příkaz else v case[editovat | editovat zdroj]

V Turbo Pascalu lze pomocí else definovat větev, která se provede, pokud výraz nevyhovuje ani jedné možnosti. Standardní Pascal tuto možnost nemá, a pokud se neexistuje vyhovující větev má program skončit chybou, což znemožňuje použít příkaz case pro zpracování situací s otevřeným vstupem.

Operátor @ pro získání adresy objektu[editovat | editovat zdroj]

Ve standardním Pascalu tvoří proměnné alokované dynamicky pomocí funkcí New a uvolňované funkcí Dispose samostatný ostrov, na kterém se pro přístup k proměnným používají ukazatele. V Turbo Pascalu lze do ukazatele uložit adresu libovolné proměnné nebo procedury nebo funkce pomocí operátoru @:

var
 p: ^integer;
 i, j: integer;
 
...
 
 p := @i;
 j := p^;
 
...

Samostatně překládané moduly[editovat | editovat zdroj]

Turbo Pascal umožňuje modulární programování mechanismem samostatně překládaných modulů. Každý modul je ve zvláštním souboru, který začíná klíčovým slovem unit a identifikátorem modulu. Následuje rozhraní modulu, které je uvozené klíčovým slovem interface, a obsahuje deklarace jednotlivých konstant, typů, proměnných a procedur nebo funkcí, které modul poskytuje. Za klíčovým slovem implementation následují privátní deklarace a definice procedur a funkcí. Následovat může mít tělo modulu, které je uzavřené mezi příkazy begin a end, které slouží k inicializaci modulu.

Možnost vkládat strojový kód do programu[editovat | editovat zdroj]

function InvertAttr(Attr:byte):byte;
inline(
 $58/ { POP AX }
 $8A/$E0/ { MOV AH,AL }
 $25/$8877/ { AND AX,8877H }
 $D0/$C8/ { ROR AL,1 }
 $D0/$C8/ { ROR AL,1 }
 $D0/$C8/ { ROR AL,1 }
 $D0/$C8/ { ROR AL,1 }
 $0A/$C4 { OR AL,AH }
);

Windows verze[editovat | editovat zdroj]

Byly vydány dvě verze pojmenované "Turbo Pascal for Windows" (TPW), pro Windows 3.x, TPW 1.0, která vycházela z Turbo Pascalu 6, ale vyšla asi o 2 roky později a verze 1.5, která vyšla po verzi Turbo Pascal 7; následoval Borland Pascal 7, který měl podporu Windows. Překladač pro Windows v Pascalu 7 nesl název Borland Pascal for Windows'.

Obě verze vytvářely programy kompatibilní s operačním systémem Windows a obsahovaly VP založené na Windows, na rozdíl DOS VP Turbo Pascalu. VP a příkazy editoru odpovídaly uživatelskému rozhraní (UI) Microsoft Windows na rozdíl od klasického UI Turbo Pascalu. Podpora programů pro Windows požadovala knihovny ObjectWindows, podobné nikoliv však identické těm, které byly vytvořeny pro první vydání Borland C++ a radikálně odlišné od dřívějších DOS Turbo Vision prostředí. Turbo Pascal byl pro platformu Windows nahrazen prostředím Delphi; Překladač Delphi dokáže kromě GUI aplikací produkovat také konzolové aplikace, tudíž používání Turbo a Borland Pascalu nebylo nadále nutné.

Ukázkový kód[editovat | editovat zdroj]

Toto je ukázka klasického Hello world programu v Turbo Pascalu:

program HelloWorld;
begin
 WriteLn('Hello World')
end.

Tato úloha se zeptá na jméno a následně vypíše stokrát pozdrav na obrazovku:

program WriteName;
var
 i : Integer; {proměnná použitá pro cyklus}
 Name : String; {deklarace proměnné Name typu String}
begin
 Write('Jak se jmenujes prosim?: ');
 ReadLn(Name); {ReadLn vrací hodnotu zapsanou uživatelem}
 for i := 1 to 100 do
 begin
 WriteLn('Hello ', Name)
 end
end.

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Turbo Pascal na anglické Wikipedii.

  1. GAJIC, Zarko. Delphi History– from Pascal to Borland Developer Studio 2006 [online]. About.com. Dostupné online. (anglicky) 
  2. INTERSIMONE, David. Antique Software: Turbo Pascal v1.0 [online]. Embarcadero Technologies, 2000-02-01. Dostupné online. (anglicky) 
  3. INTERSIMONE, David. Antique Software: Turbo Pascal v3.02 [online]. Embarcadero Technologies, 2000-02-10. Dostupné online. (anglicky) 
  4. INTERSIMONE, David. Antique Software: Turbo Pascal v5.5 [online]. Embarcadero Technologies, 2002-02-21. Dostupné online. (anglicky) 
  5. Google Groups

Externí odkazy[editovat | editovat zdroj]