Pascal

Allikas: Vikipeedia
Disambig gray.svg  See artikkel on programmeerimiskeelest; prantsuse teadlase ja filosoofi kohta vaata artiklit Blaise Pascal; rõhuühiku kohta vaata artiklit Paskal.

Pascali looja Niklaus Wirth loengut andmas
Pascal
Faililaiendid .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

Pascal on kõrgtasemeline programmeerimiskeel, mille loojaks on Niklaus Wirth. Keel on välja töötatud ajavahemikul 1968–1969 ning publitseeritud aastal 1970. Pascal oli mõeldud eelkõige programmeerimise õpetamiseks ning kavandatud kui lihtsustatud versioon programmeerimiskeelest Algol. Seega sobib antud programmeerimiskeel väga hästi just algajatele programmeerijatele. [1]

Vaatamata suurele akadeemilisele edule, pole Pascal ärimaastikul väga laialdaselt kasutusel. Põhjuseks tema jäikus ning suurte rakenduste loomiseks vajalike funktsionaalsuste puudumine. Vastuseks kriitikale kavandas Wirth uue programmeerimiskeele Modula-2, mis on väga sarnane Pascalile, kuid mis 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 | redigeeri lähteteksti]

Pascal on oma nime saanud 17. sajandi prantsuse matemaatiku, füüsiku ja filosoofi Blaise Pascal auks, kellel oli tähtis roll arvuti arengu ajaloos.

Enne Pascali loomist oli Niklaus Wirth loonud ka programmeerimiskeeled Euler ja ALGOL W. Lisaks Pascalile on Wirth ka keelte Modula, Modula-2, Oberon ning Oberon-2 peamine kujundaja.

Wirthi eesmärgiks oli luua struktureeritud programmeerimisel põhinev programmeerimiskeel, mis oleks eelkõige kiire ning efektiivne, võimaldaks luua hästi struktureeritud ning organiseeritud programme ja oleks sobiv programmeerimise põhimõtete õpetamiseks. Pascali otseseks eelkäiaks 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, nagu näiteks listid, puud ja graafid, kasutamine.

Pascal oli peamine kõrgtasemeline keel Apple Lisa arendamisel ning kasutusel ka Macintoshi algusaastatel. Donald E. Knuthi loodud tekstilaosüsteem TeX on kirjutatud keeles WEB, mis baseerub 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 Mac ning IOS platvormi jaoks).

Tänapäeval leiavad kasutust veel Borland Pascal (Turbo Pascal), Delphi, Compaq Pascal, THINK Pascal, ning 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]

Pascali müüdid[muuda | redigeeri lähteteksti]

Müüt 1: Pascal ja C on samasugused[muuda | redigeeri lähteteksti]

On levinud arvamus, et programmeerimiskeeled Pascal ja C on samasugused ning suuri erinevuseid neil ei ole. See aga ei vasta tõele. Kuigi keeltel on mitmeid sarnasusi, on neil ka palju erinevuseid. Kompilaatori seisukohast on Pascali arhitektuur palju lihtsam. Pascal kasutab tugevat tüüpimist ning see muudab koodi optimeerimise lihtsamaks. Programmeerija seisukohast on Pascal ja C väga erinevad nii süntaksi, struktuuri kui ka mõtteviisi poolest. Konverteerides C koodi Pascali koodiks, on kohe ilmne, kui erinevad need keeled tegelikult on. C nõrk tüüpimine muudab andmete ebaefektiivselt kasutamise palju tõenäolisemaks kui Pascalis.

C keeles on võimalik koodi kirjutada väga tihedalt (ühele reale järjest väga palju teksti). See võib küll osadele programmeerijatele meeldida, kuid enamikel juhtudel muudab see koodi loetavuse ja arusaadavuse väga keeruliseks. Pascal seevastu paistab silma just nimelt elegantse ning kergelt loetava koodi poolest.

Müüt 2: Pascali jõudlus on piiratud[muuda | redigeeri lähteteksti]

Ilmselt üks enimlevinud müütidest on, et Pascal on kehva jõudlusega programmeerimiskeel. Ka see väide ei vasta tõele. Arvatakse, et see keel on hea vaid sellepärast, et ta soodustab hästi loetava ja hallatava koodi kirjutamist. Pascal on aga aastatega teinud läbi suure arengu ning jõudluseprobleemid on leidnud lahenduse. Seega vastab Pascal kõigile tööstuse ja ärisektori nõuetele.

Antud väärarusaam on ilmselt tekkinud sellest, et paljud kasutavad esmalt algset täiendamata Pascali versiooni. Kuigi ka see versioon on võimekas, on sellel siiski tänapäevaseid vajadusi arvestades mitmeid puudusi. Extended Pascal on arenenud välja algsest Pascalist ning toetab tänapäevaseid vajadusi (ka objektorienteeritud programmeerimise võimekus). Lisaks on Pascali kood kompilaatori poolt kergesti optimeeritav ning võimaldab luua võimekaid programme. Ingemar Ragnemalm, programmeerija ning 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 suudab toota väga efektiivset koodi ning üleminek Pascalilt C keelele, selleks et saada kasvu jõudluses, pole mõistlik.

Müüt 3: Pascalil on kehvad sõnetöötlusvahendid[muuda | redigeeri lähteteksti]

Pole küll päris kindel, millest see müüt alguse on saanud, kuid see ei vasta tõele. Sarnane kriitika on saanud osaks ka C keelele ning kuna neid keeli on peetud väga sarnasteks, siis ilmselt on see müüt alguse saanud sealt. Reaalsuses on sõnetöötlus Pascalis väga lihtne ning kõik vajalikud vahendid sõnetöötluseks on keeles olemas.

Müüt 4: Pascal ei toeta objektorjenteeritud programmeerimist[muuda | redigeeri lähteteksti]

Algne Pascal ei võimaldanud objektorienteeritud programmeerimist, kuid see funktsionaalsus on olemas keeltes Object Pascal, Think Pascal, CodeWarrior Pascal, Borland Pascal ning ka mitmetes avatud lähtekoodiga Pascali versioonides.

Müüt 5: Pascal on ainult õppekeel[muuda | redigeeri lähteteksti]

Pole kahtlustki, et Pascal on programmeerimise õppimiseks väga hea keel. See keel toetab häid programmeerimise tavasid ning võimaldab luua kompleksseid andmestruktuure, kasutades kergeid ning hästi määratletud tüüpe. Siiski on Pascal palju enamat kui lihtsalt õppekeel ning seda kasutatakse nii kaubanduslikes rakendustes kui ka tööstuslikes ning teaduslikes keskkondades. Kõik, või peaaegu kõik, mida on võimalik teha keeles C, on tehtav keeltes Extended Pascal ja Object Pascal.

Mõned näited Macintoshi aplikatsioonidest, mis on kirjutatud Pascalis:

  • InterArchy – kõikide võimalustega ning auhinnatud FTP klient
  • Ingemar's Skiing Game – action mäng
  • Klondike – üks populaarsemaid Solitaire mänge
  • Scripter – arenduskeskkond AppleScripti jaoks
  • SuperLock – faili turvalisuse programm
  • JacqCAD Master – CAD programm tekstiilidisaini jaoks
  • FlightMath – lennu analüüsi programm
  • NIH Image – pildianalüüsi programm

Müüt 6: Pascal ei sobi professionaalsetele programmeerijatele[muuda | redigeeri lähteteksti]

See müüt on sarnane müüdile number 5. Arvatakse, et Pascal on justkui mänguasi, mis ei sobi professionaalidele. Algselt oli keeles tõesti palju puudusi, kuid esimesed Pascali kasutajad nägid selle keele võimekust ning hakkasid seda kasutama palju enamaks, kui algselt ette nähtud. Tekkis nõudlus uute funktsionaalsuste järele ning arenes välja Extended Pascal, mis vastas ka professionaalsete programmeerijate vajadustele.

[6]

Keele eripärad[muuda | redigeeri lähteteksti]

Hello World[muuda | redigeeri lähteteksti]

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 | redigeeri lähteteksti]

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 mäeb välja selline:

type
  byte        = 0..255;
  signed_byte = -128..127;
  string      = packed array[1..255] of char;

Kommentaarid[muuda | redigeeri lähteteksti]

Klassikalised Pascali kommentaarid kirjutatakse looksulgudesse:

{See on kommentaar, mis ei mõjuta kuidagi programmi tööd.}

Mitmerealiste kommentaaride jaoks tuleks tekstilõik asetada {* ning *} vahele:

{* See on samuti kommentaar,
mis ei mõjuta programmi tööd *)

Reserveeritud sõnad[muuda | redigeeri lähteteksti]

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 | redigeeri lähteteksti]

Viited[muuda | redigeeri lähteteksti]

  1. Marco Cantù. Pascal History. Kasutatud 5. oktoober 2014. (Inglise keeles)
  2. Pascal. webopedia. Kasutatud 6. oktoober 2014. (Inglise keeles)
  3. Good Quality Applications Built With Delphi. delphi.wikia.com/. Kasutatud 6. oktoober 2014. (Inglise keeles)
  4. Bill Catambay. The Pascal Programming Language. http://www.pascal-central.com/. Kasutatud 6. oktoober 2014. (Inglise keeles)
  5. The Pascal Language Page. Kasutatud 6. oktoober 2014. (Inglise keeles)
  6. Bill Catambay. Myths Uncoverede. Kasutatud 6. oktoober 2014. (Inglise keeles)

Välislingid[muuda | redigeeri lähteteksti]