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.

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 FreePascal Lazarus Delphi Pascal.lap.hu – linkgyűjtemény

Kategória:Imperatív programozási nyelvek Kategória:Magas szintű programozási nyelvek