See artikkel on programmeerimiskeelest; prantsuse teadlase ja filosoofi kohta vaata artiklit Blaise Pascal; rõhuühiku kohta vaata artiklit Paskal; teiste tähenduste kohta Pascal (täpsustus).

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

Pascal
Faililaiend .pas
Paradigma protseduraalne, imperatiivne, struktureeritud
Väljalaskeaeg 1970
Looja Niklaus Wirth
Tüüpimine staatiline, tugev
Mõjutatud keeltest ALGOL
Mõjutanud keeli Object Pascal, Java
OS multiplatvormne

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.[2]

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

muuda

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

 
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). [3]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. [4]

Kuni 1990ndate alguseni oli Pascal suurimates kolledžites ja ülikoolides peamine keel programmeerimise õpetamisel. [5]

Võrdlus C-keelega

muuda

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

muuda

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.[6]

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ärad

muuda

Hello World

muuda

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

muuda

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

muuda

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

muuda

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

muuda

Viited

muuda
  1. Marco Cantù. "Pascal History" (Inglise keeles). Vaadatud 5. oktoober 2014.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  2. "Pascal" (Inglise keeles). webopedia. Vaadatud 6. oktoober 2014.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  3. "Good Quality Applications Built With Delphi" (Inglise keeles). delphi.wikia.com/. Vaadatud 6. oktoober 2014.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  4. Bill Catambay. "The Pascal Programming Language" (Inglise keeles). http://www.pascal-central.com/. Originaali arhiivikoopia seisuga 29. aprill 2015. Vaadatud 6. oktoober 2014. {{netiviide}}: välislink kohas |Väljaandja= (juhend)CS1 hooldus: tundmatu keel (link)
  5. "The Pascal Language Page" (Inglise keeles). Originaali arhiivikoopia seisuga 15. veebruar 2015. Vaadatud 6. oktoober 2014.{{netiviide}}: CS1 hooldus: tundmatu keel (link)
  6. Bill Catambay. "Myths Uncovered" (Inglise keeles). Originaali arhiivikoopia seisuga 17. september 2015. Vaadatud 6. oktoober 2014.{{netiviide}}: CS1 hooldus: tundmatu keel (link)

Välislingid

muuda