Pascal (programozási nyelv)

programozáai nyelv


A Pascal az általános célú programozási nyelvek közé tartozik. Sok helyen még mindig ezen tanítják a programozást, hiszen a szintaxisa egyszerű, könnyen érthető, ennek ellenére hatékony eszközt ad használója kezébe. Legelterjedtebb megvalósítása a Borland cég által készített Turbo Pascal, melynek segítségével DOS-os alkalmazásokat készíthetünk, amelyek bármely verziószámú Windowson is képesek futni.

Pascal
Paradigmaimperatív, strukturált
Jellemző kiterjesztés
  • pp
  • p
  • pas
Megjelent1970
TervezőNiklaus Wirth
FejlesztőNiklaus Wirth
Típusosságstatikus, erősen típusos, típusbiztos
DialektusokBorland, Turbo Pascal, UCSD Pascal
MegvalósításokCDC 6000, ICL 1900, Pascal-P, PDP-11, PDP-10, IBM System/370, HP, GNU
Hatással volt ráALGOL W
Befolyásolt nyelvekAda, Component Pascal, Java,[1][2][3] Modula, Modula-2, Oberon, Oberon-2, Object Pascal, Oxygene

Az eredeti specifikáció szerint minden program egyetlen forrásfájlból áll, melynek kiterjesztése .pas. A konkrét implementációk egyedi bővítésekkel tették lehetővé a moduláris felépítést, például a Turbo Pascal és az Object Pascal unitoknak nevezi azokat a külön fájlokban található modulokat, amik nem önálló programok. Ezek a fejezetek tartalmazzák a programozó által felhasználható kiegészítő eljárásokat és függvényeket, de a programozó is készíthet ilyet.

Később megszületett a Borland Delphi, amely az objektumorientált Pascalt párosította a natív Windows programok készítésének lehetőségével. Ennek egy linuxos változata a mára elhanyagolt Kylix.

Az aktívan fejlesztett Free Pascal számos géptípuson (Intel x86, Amd64/x86-64, PowerPC, PowerPC64, SPARC, ARM) és operációs rendszeren (Linux, FreeBSD, Mac OS X/Darwin, DOS, Win32, Win64, WinCE, OS/2, Netware és MorphOS) érhető el. Az erre épülő Lazarus integrált fejlesztői környezettel a mai igényeknek is megfelelő, grafikus interfésszel rendelkező szoftverek készíthetők.

Rövid történet

A nyelvet 1970-ben Niklaus Wirth professzor fejlesztette ki, aki emellett a Modula-2 és az Oberon atyja is. A Pascal maga az ALGOL programozási nyelven alapul, és a francia matematikus-filozófus Blaise Pascal tiszteletére nevezték el.Ez a nyelv az egyik alapja az Ada programozási nyelvnek, ami még ma is az egyik legbiztonságosabb nyelv a világon. Az objektumorientált Object Pascal nyelvet használja a Delphi fejlesztőrendszer.

Szintaxis

A nyelv azonosítókból és kulcsszavakból, valamint operátorokból és egyéb szimbólumokból épül fel. A kulcsszavakat a fordító fenntartja magának, ezért ezeket nem használhatjuk fel saját célra, tehát ezek használata változónévként nem megengedett. Az azonosítók állhatnak betűkből, számokból és aláhúzásjelből (_), de nem kezdődhetnek számmal, illetve nem tartalmazhatnak speciális karaktereket(Ł, ß, & stb.), és a fordító típustól függően bizonyos hossz fölött az azonosítókat nem különbözteti meg.A program kulcsszó opcionális, csak arra szolgál, hogy jobban dokumentálhassuk a kódot.A megjegyzéseket a programban bárhol elhelyezhetjük, kezdetük jelölésére a { és a (*, zárásukra pedig a } illetve a *) jelek szolgálnak. Ezek mellett használhatjuk a // jelet is, mely csak az adott sorban jelöl megjegyzést.A nyelv sokféle operátort tartalmaz: +, –, *, /, div, mod, and, or, not, xor, in stb.Használhatunk eljárásokat, függvényeket, az újabb fordítók pedig már az objektumorientált programozási megközelítést is támogatják.A forráskódot modulokba, ún. unitokba szervezhetjük, amelyekben az adatrejtést is megvalósíthatjuk, az interface és az implementation kulcsszavak segítségével.

Egy egyszerű Pascal program felépítése:

 {programfej}   program Hello_World; {használt unitok megadása}   uses crt,dos; {deklarációs rész: típusok, konstansok, változók}   const    Konstans = 42;   type    szabadnap = (szombat,vasarnap);   var    Valtozo: integer;    nap: szabadnap; {eljárások és függvények}   procedure Eljaras(Parameter: boolean);   begin   end;    function Fuggveny(Parameter: real): integer;   begin     Fuggveny := round(Parameter)   end;  {programtörzs}   begin     Eljaras(true);     Valtozo := Fuggveny(3.14);     writeln(Valtozo);   end.

A Hello World! program:

Program HelloWorld;uses crt;Begin  Clrscr; {képernyő törlése}  Write('Hello Világ!'); {szöveg kiíratása}  Readln; {várakozás enter ütésére, hogy ne záruljon be azonnal a program}End.

Az idő kiírása

{{program definíció}}program hello;{{használt unitok}}uses crt,dos;{{változók}}var a,b,c,d:word;begin {{a program feje}}clrscr;gettime(a,b,c,d);writeln('-----------------------------------------');writeln('A pontos ido: ',a,':',b);writeln('-----------------------------------------');writeln('Hello, vilag!');end.

A nyelv felépítése

A fenti forráskódban jól elkülöníthetők a parancsok. Egy parancs argumentumait zárójelek közé írjuk. A parancsot pontosvessző zárja le, így tudja a fordító elkülöníteni egymástól azokat.

A forráskód a program kulcsszóval kezdődik, mely röviden (1-2 szó) leírhatja, hogy maga a program miről szól. Ez az azonosító opcionális, mivel csak a programozónak információ, nem kötelező minden forráskódot ezzel kezdeni.

A uses kulcsszó után következik azoknak a unitoknak (fejezeteknek) a felsorolása, melyből a programozó a parancsokat válogatja programjához. A Pascalban lehetőség nyílik saját fejezetek készítésére. Az alapértelmezett unitok Turbo Pascalban:

  • System: Alapvető parancsok
  • Dos: DOS eljárások gyűjteménye
  • Crt: A szöveges képernyő kezelése
  • Strings: C-stílusú karakterlánc (null karakter végű string) kezelő rutinok
  • Printer: Nyomtató kezelése
  • Graph: Grafikai eljárások
  • Overlay: Átlapolásos memóriahasználat
  • Turbo3,Graph3: Kompatibilitási okokból (Turbo Pascal 3.0) megmaradt parancsok

A deklarációs részben állandókat, változókat és saját típusokat készíthetünk. Saját típusokat a type, állandókat a const, változókat var kulcsszó után lehet deklarálni. Egy konstansnak a nevét és az értékét egyenlőség jellel választjuk el. A változó nevét és típusát kettősponttal különítjük el. A változók típusai lehetnek:

Egész szám típusok:

  • byte: 0 és 255 közötti egész szám (1 bájt)
  • shortint: -128 és 127 közötti egész szám (1 bájt)
  • word: 0 és 65535 közötti egész szám (2 bájt)
  • integer: -32768 és 32767 közötti egész szám (2 bájt)
  • longint: -2147483648 és 2147483647 közötti egész szám (4 bájt)

Valós típusok:

  • single: 4 byte méretű lebegőpontos szám (csak 8087)
  • real: 6 byte méretű lebegőpontos szám
  • double: 8 byte méretű lebegőpontos szám (csak 8087)
  • extended: 10 byte méretű lebegőpontos szám (csak 8087)
  • comp: 8 byte méretű csak egész számokat ábrázolni képes típus (csak 8087)

Egyéb típusok:

  • Char: Karakter
  • Boolean: Logikai változók – igaz/hamis (true/false) értéke lehet
  • String: Karaktersor (maximum 255 karakter)

Később eljárásokat és függvényeket hozhatunk létre, melyeket a főprogramban használhatunk. A főprogram kezdetét és végét a begin és end. kulcsszó jelöli. Hasonló módon történik az eljárások és függvények behatárolása, azzal a különbséggel, hogy ott a programrész végét end; zárja.

Jegyzetek

További információk