Pascal

Z WoWResource Wiki
Přejít na: navigace, hledání

Pascal je název programovacího jazyka, určeného hlavně k výuce programování. Jeho název byl zvolen na počest francouzského filosofa, matematika a fyzika Blaise Pascala.

Návrh programovacího jazyka Pascal pochází ze začátku 70. let od profesora Niklause Wirtha z Vysoké školy technické v Curychu. Autor sledoval návrhem jazyka tyto cíle:

  • vytvořit jazyk vhodný pro výuku programování, který by byl založen na omezeném počtu srozumitelných konstrukcí,
  • navrhnout strukturu jazyka tak, aby bylo snadné implementovat Pascal na většině tehdejších počítačů.

První verze Pascalu byla publikována r. 1971, o 3 roky později (1974) byla uveřejněna opravená definice jazyka. V roce 1981 byla vydána norma ISO. Vedle toho vznikla řada komerčních implementací Pascalu, které se od Pascalu dle normy ISO více či méně odchylovaly, zejména zavedením dalších konstrukcí zjednodušujících praktické programování. V oblasti PC dosáhla patrně největšího úspěchu implementace Turbo Pascal firmy Borland. Objektové rozšíření Pascalu se pak stalo i základem systému Delphi téže firmy.

Syntaxe

Veškeré Pascalovské programy začínají klíčovým slovem Program a volitelným výčtem vnitřních souborových deskriptorů. Následuje blok kódu, označený klíčovými slovy Begin a End. Malá a velká písmena nejsou v Pascalu rozlišována. Příkazy jsou oddělovány středníky, tečka ukončuje program.

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

Pascal je ve své původní formě čistým procedurálním jazykem s klasickým výčtem if, while, for a podobných konstrukcí. Pascal je strukturovaný programovací jazyk, což znamená, že program je uspořádán mezi standardní příkazy, ideálně bez použití instrukce goto.

while a <> b do
begin
    WriteLn('Cekam...');
end;
 
if a > b then
begin
    WriteLn('Podminka splnena');
end
else 
begin
    WriteLn('Podminka je nepravdiva');
end;
 
for i := 1 to 10 do 
    WriteLn('Iterace: ', i:1);
 
repeat
    a := a + 1;
until a = 10;

Pascal člení programy na procedury a funkce.

program muj(output);
 
    procedure vypis(var i: integer);
 
        function dalsi(i: integer): integer;
        begin
            dalsi := i + 1;
        end;
 
    begin
        WriteLn('Celkem: ', i);
        i := dalsi(i);
    end;
 
begin
    i := 1;
    while i <= 10 do 
        vypis(i);
end.

Procedury i funkce lze zanořovat do libovolné hloubky. Konstrukce program je logicky nejzazší blok.

Každý blok může mít své deklarace značek pro goto (label), konstant, typů, proměnných a jiných procedur a funkcí, které musí být přesně v tomto pořadí.

Pascal podporuje celá čísla (integer), znaky (char) a boolovské výrazy (boolean) jako jednoduché datové typy a přidává nový typ: výčet.

program mujprog;
var
   a: integer;
   b: char;
   c: boolean;
   d: (jedna, dve, tri, ctyri, pet);

Lze vytvořit i interval kteréhokoli výše uvedeného typu.

var
    x: 1..10;
    y: 'a'..'z';
    z: two..four;

Pomocí deklarace type lze vytvářet typy z existujících typů.

program mujdalsiprog;

type
    x = integer;
    y = x;
...

Z jednoduchých typů lze vytvářet typy složitější.

type 
    a = array [1..10] of integer;
    b = record
            a: integer;
            b: char;
        end;
    c = file of a;

Řetězce jsou pole znaků, začínající číselným indexem 1.

Program Hello world

Tradiční program Hello world vypadá v jazyku Pascal takto:

program HelloWorld(input, output);

begin
    WriteLn('Hello, World!');
end.

Historie

První kompilátor Pascalu byl navržen v Curychu pro počítače řady CDC 6000 a do provozu byl uveden v roce 1970.

První kompilátor Pascalu napsaný v Severní Americe vznikl na Illinoiské univerzitě pod vedením Donalda B. Gilliese pro počítač PDP-11 a generoval nativní strojový kód.

Za účelem rychlého rozšíření jazyka vznikl v Curychu tzv. compiler porting kit, zahrnující kompilátor do „virtuálního“ strojového kódu (nebo přesněji mezikódu) a simulátor toho kódu. Z této sady vznikl P-systém. Ačkoli byl tento systém navržen, aby umožnil vznik kompilátorů do pravých strojových kódů, minimálně jeden systém, pozoruhodná implementace USCD, jej využila k vytvoření interpretačního systému USCD p-System.

IP Pascal byl implementací používající Micropolis DOS, rychle se však přesunul na CP/M běžící na Z80.

Začátkem 80. let byl UCSD Pascal portován pro počítače Apple II a AppleIII, aby tak poskytl strukturovanou alternativu k interpretům BASICu, dodávaným spolu s počítačem.

V 80. letech také napsal Anders Hejlsberg kompilátor Blue Label Pascal pro počítač Nascom-2. Později začal pracovat pro Borland a svůj kompilátor přepsal na Turbo Pascal pro IBM PC. Nový kompilátor prodával za $49.95, což byla mnohem nižší cena než za jakou prodával původní Blue Label Pascal.

Laciný kompilátor společnosti Borland měl velký vliv na komunitu okolo Pascalu, která se koncem 80. let zaměřila především na IBM PC. Mnoho počítačových nadšenců ve svém hledání strukturované alternativy k BASICu tento produkt používalo. Turbo Pascal, dostupný pouze na této architektuře, překládal přímo do strojového kódu Intel 8088, čímž docílil mnohem větší rychlosti než interpretované návrhy.

S verzí Turbo Pascal 5.5 přidal Borland podporu pro objektově orientované programování. Později se Borland rozhodl, že je potřeba komplikovanějších vlastností a začal pracovat na Delphi, přičemž vycházel z návrhu jazyka Object Pascal společnosti Apple. V raných verzích nazýval tento jazyk rovněž Object Pascal, později jméno změnil na programovací jazyk Delphi.

Související odkazy

Externí odkazy

překladače: