Pascal

Pascal on kõrgtaseme programmeerimiskeel, mille looja on Niklaus Wirth. Keel töötati välja aastatel 1968–1969 ja avaldati 1970. aastal. Pascal oli mõeldud eelkõige programmeerimise õpetamiseks ning kavandatud lihtsustatud versiooniks programmeerimiskeelest ALGOL.

Vaatamata suurele akadeemilisele edule pole Pascal ärimaastikul kuigi laialdaselt kasutusel. Põhjuseks tema jäikus ning suurte rakenduste loomiseks vajalike funktsioonide puudumine. Vastuseks kriitikale kavandas Wirth uue programmeerimiskeele Modula-2, mis sarnaneb väga Pascaliga, kuid sisaldab lisafunktsioone.

TeX ja originaalne Macintoshi operatsioonisüsteem on kirjutatud suurelt osalt just Pascali programmeerimiskeeles.

Pascalil põhinev Object Pascal, mis on mõeldud eelkõige objektorienteeritud programmeerimise jaoks, töötati välja aastal 1985.

Lühiülevaade
Pascalile pandi nimi 17. sajandi prantsuse matemaatiku, füüsiku ja filosoofi Blaise Pascali auks, kellel oli tähtis roll arvuti arengu ajaloos.

pisi|Pascali looja Niklaus Wirth loengut pidamas Enne Pascali loomist oli Niklaus Wirth loonud ka programmeerimiskeeled Euler ja ALGOL W. Lisaks Pascalile on Wirth ka keelte Modula, Modula-2, Oberon ja Oberon-2 peamine väljatöötaja.

Wirthi eesmärgiks oli luua struktureeritud programmeerimisel põhinev programmeerimiskeel, mis oleks eelkõige kiire ja efektiivne, võimaldaks luua hästi struktureeritud ja organiseeritud programme ning sobiks programmeerimise põhimõtete õpetamiseks.
Pascali otseseks eelkäijaks on Algol-60, kuid lisatud on veel mitmeid vahendeid, mis võimaldavad programmeerijatel defineerida oma enda (struktureeritud) andmetüüpe. Lisaks muutus lihtsamaks ka dünaamiliste ja rekursiivsete andmestruktuuride, näiteks loendite, puude ja graafide kasutamine.

Pascal oli peamine kõrgtaseme keel Apple Lisa arendamisel ning oli kasutusel ka Macintoshi algusaastatel. Donald E. Knuthi loodud tekstilaosüsteem TeX on kirjutatud keeles WEB, mis põhineb Pascalil. Programmides nagu Skype, FL Studio ja Total Commander on kasutatud Delphit (Object Pascal). Delphi on ka tänapäeval kasutusel Windowsi rakenduste loomisel (võimaldab kompileerida sama koodi ka Maci ja IOS-i platvormi jaoks).

Tänapäeval leiavad kasutust veel Borland Pascal (Turbo Pascal), Delphi, Compaq Pascal, THINK Pascal ja CodeWarrior Pascal. Turbo Pascalit ja THINK Pascalit pole juba mõnda aega uuendatud, kuid Delphi ja Compac Pascal on mõlemad kaubanduslikult elujõulised tooted koos iga-aastaste uuenduste ning täieliku tehnilise toega. 

Kuni 1990. aastate alguseni oli Pascal suurimates kolledžites ja ülikoolides peamine keel programmeerimise õpetamisel. 

Võrdlus C-keelega
Keeltel on sarnasusi, aga ka palju erinevusi. Programmeerija seisukohast erinevad Pascal ja C vägagi nii süntaksi, struktuuri kui ka mõtteviisi poolest. Mõlemad keeled toetavad tugevat tüüpimist, kuid Pascal kõrgema taseme keelena üritab rohkem vältida vigaseid tüübiteisendusi.

C-keeles on võimalik koodi kirjutada väga tihedalt (ühele reale järjest väga palju teksti), mis võib halvendada koodi loetavust ja arusaadavust. Pascali süntaks teeb koodi üldiselt kergemini loetavaks.

Võimekus ja jõudlus
Pascali standardi esialgne täiendamata versioon (Unextended Pascal) ei toetanud objektorienteeritud stiili. Hilisemad versioonid Extended Pascal ja Object Pascal lisasid uusi võimalusi ja objektorienteerituse. Objektorienteeritust toetavad ka Think Pascal, CodeWarrior Pascal, Borland Pascal ning nii mõnigi avatud lähtekoodiga Pascali versioon. Pascali kompilaatorid, mis uusi versioone toetasid, suurendasid sealjuures oluliselt ka kompileeritud programmide jõudlust.

Pascali kood on kompilaatori poolt kergesti optimeeritav ning võimaldab luua võimekaid programme. Ingemar Ragnemalm, programmeerija ja raamatu "Tricks of the Mac Game Programming Gurus" kaasautor, on öelnud: "Ma saan Pascalis teha kõike, mida on võimalik teha C-keeles, kuid ma saan seda teha elegantsemalt."

Pascal toetab programmeerimise häid tavasid ning võimaldab luua kompleksseid andmestruktuure, kasutades hästi määratletud tüüpe. Pascalit kasutatakse kaubanduslikes rakendustes, tööstuslikes ja teaduslikes keskkondades ning ka õppekeelena.

Mõned näited Macintoshi rakendustest, mis on kirjutatud Pascalis:
InterArchy – FTP-klientrakendus
"Ingemar's Skiing Game" – action-mäng
"Klondike" – üks populaarsemaid pasjansitüüpi mänge
Scripter – arenduskeskkond AppleScripti jaoks
SuperLock – failiturbeprogramm
JacqCAD Master – CAD-i programm tekstiilidisaini jaoks
FlightMath – lennuanalüüsiprogramm
NIH Image – pildianalüüsiprogramm

Keele eripära
Hello World
Pascali eripärana peab igal programmil olema nimi (näites "Hello") ning programmi lõpetab punkt. Sõned kirjutatakse erinevalt mitmest teisest keelest jutumärkide asemel ülakomade vahele.
Hello world näeb Pascalis välja järgmine:
program Hello(output);
begin
    writeln('Hello world!');
end.

Andmetüübid
Pascalis, nagu ka paljudes teistes programmeerimiskeeltes, määrab andmetüüp väärtuste vahemiku, mida ta on võimeline hoiustama. Lisaks on igal andmetüübil määratud toimingud, mis on samast tüübist muutujatega lubatud. Eeldefineeritud tüübid:
 Andmetüüp  Hoiustatavad väärtused integer  täisarvud real  ujukomaarvud  boolean  tõeväärtused  char  üksik täht string  sõne 
Programmeerija saab ka ise defineerida uusi andmetüüpe. Pascali tüübideklaratsioon näeb välja selline:
type
  byte        = 0..255;
  signed_byte = -128..127;
  string      = packed array[1..255] of char;

Kommentaarid
Klassikalised Pascali kommentaarid kirjutatakse looksulgudesse: 
{See on kommentaar, mis ei mõjuta kuidagi programmi tööd.}

Mitmerealiste kommentaaride jaoks tuleks tekstilõik asetada {* ja *} vahele: 
{* See on samuti kommentaar,
mis ei mõjuta programmi tööd *)

Reserveeritud sõnad
Pascali keele üheks osaks on reserveeritud sõnad, millel on juba konkreetne funktsioon ning mida kasutaja ei saa kasutada muutujate nimedena. Pascal pole tõstutundlik, seega kompilaatoril pole vahet, kas kirjutada suur- või väiketähtedega. 

+ Reserveeritud sõnad Pascalis and  array  begin  case  const div  do  downto  else  end file  for  function  goto  if in  label  mod  nil  not of  or  packed  procedure  program record  repeat  set  then  to type  until  var  while  with

Vaata ka
Programmeerimiskeel
Algol-60
Object Pascal
Turbo Pascal
Free Pascal
GNU Pascal
Delphi (programmeerimiskeel)

 Viited 

 Välislingid 
FreePascal
GNU Pascal Compiler (GPC)
Turbo Pascal
Lazarus

Kategooria:ISO
Kategooria:Programmeerimiskeeled