|  |  |
| --- | --- |
|    | **Šiam straipsniui ar jo daliai trūksta išnašų į šaltinius.**Jūs galite padėti Vikipedijai pridėdami tinkamas išnašas su šaltiniais. |

Programavimo kalba **Pascal** (Paskalis) – kalba, daugiausiai naudojama švietimo įstaigose programavimo kalbų pagrindų mokymui.

Kalbą sukūrė Niklausas Virtas (Niklaus Wirth) 1970 metais kaip priemonę, skatinančią studentus programuoti struktūriškai. Kalba sukurta Algol kalbos pagrindu ir pavadinta matematiko bei filosofo Blezo Paskalio (Blaise Pascal) garbei.

Sintaksė
--------

Pagrindinės taisyklės:

* kiekviena programa prasideda `program` baziniu žodžiu (nebūtinai) ir baigiasi tašku (.)
* sakinių blokai apgaubiami baziniais žodžiais `begin` ir `end`
* didžiosios ir mažosios raidės Paskalyje neskiriamos, taigi 'Program', 'PROGRAM' ar 'program' reiškia tą patį.
* sakiniai skiriami kabliataškiais (;)
* visi kintamieji turi būti iš anksto apibrėžti nurodant tipą.

Paprasčiausių Paskalio kalba parašytų programų pavyzdžiai:

```
program Labas\_pasauli;
begin
 WriteLn('Labas, pasauli!');
end.

```

```
program Sudėtis;
var a, b, c : integer;
begin
 WriteLn('Įveskite pirmą dėmenį');
 ReadLn (a);
 WriteLn('Įveskite antrą dėmenį');
 ReadLn (b);
 c := a + b;
 WriteLn('Skaičių ', a, ' ir ', b, ' suma yra lygi ', c);
 ReadLn;
end.

```

```
program lygtis;
var a, b, c : integer;
begin
 WriteLn('Lygtis x+a=b'); {kokią lygtį spręs programa}
 ReadLn;
 WriteLn('a:'); {1-as skaičius}
 ReadLn (a);
 WriteLn('b:'); {2-as skaičius}
 ReadLn (b);

 c := b - a;
 WriteLn('x = ', c); {nežinomojo x reikšmė}
 ReadLn;
end.

```

```
Program DosInfo;
uses Dos;
var
 OS : string[32];
 Version : word;
begin
WriteLn('Dos Informacija: ');
{$IFDEF WINDOWS}
 OS:='WINDOWS';
{$ENDIF}
{$IFDEF DOS}
 OS:='Dos';
{$ENDIF}
 Version:=DosVersion;
 WriteLn('Dos ',OS,'Versija:',Lo(Version),'.',Hi(Version));
 WriteLn('Kietojo Disko Informacija: ');
 WriteLn('Disko Skirsnio Dydis (C:\) : ',DiskSize(0),' Baitai');
 WriteLn('Laisva vieta: ',DiskFree(0),' Baitai');
 Readln;
end.

```

Kompiliatoriai
--------------

* FreePascal
* Turbo Pascal
* GNU Pascal kompiliatorius
* Delphi

Istorinės žinios
----------------

Kuriant *Pascal*, buvo remtasi naujausiomis (struktūrinio) programavimo idėjomis, bandant jas apibendrinti, tad *Pascal* tapo ne tik mokomąja, bet ir konceptualia kalba, padariusia labai stiprią įtaką daugumai vėliau sukurtų kalbų, pvz. C. Bandant patobulinti *Pascal*, buvo sukurtos tokios kalbos, kaip Ada, Modula-2 ir Oberon. *Pascal* padarė beveik nesulyginamą įtaką kompiliatorių kūrėjams: *Pascal* sintaksė buvo kuriama taip, kad būtų galima kompiliuoti vienu praėjimu (kintamųjų, procedūrų etc. deklaravimas), todėl atsirado galimybė vykdyti atitikimo tarp programų tekstų ir generuoto kodo analizę. Analizuojant *Pascal* kompiliavimo metodus, buvo sukurtas *USCD Pascal* kompiliatorius bei virtuali mašina, skirta *Pascal* pseudokodo vykdymui, davusi pradžią vėliau kurtoms virtualioms mašinoms, ypač – Java.

Parsisiųsti
-----------

Windows: GUI redaktorius + FPC kompiliatorius Archyvuota kopija 2006-07-14 iš Wayback Machine projekto. Plačiau Archyvuota kopija 2006-06-14 iš Wayback Machine projekto.
Linux: GUI redaktorius + FPC kompiliatorius

Nuorodos
--------

* Lietuviškos Turbo pascal pamokos Archyvuota kopija 2008-10-05 iš Wayback Machine projekto.
* Knyga „Programavimas paskaliu" (Windows cp1257 koduotė, jei kartais kam nerodytų) Archyvuota kopija 2009-08-14 iš Wayback Machine projekto.
* J. Blonskis ir V. Dagienė. Programavimo pradmenys. Vadovėlis XI–XII klasėms (projektas) Archyvuota kopija 2008-05-27 iš Wayback Machine projekto.
* Programavimas pascal. Teorija, pavyzdžiai ir pratimai. Archyvuota kopija 2011-07-13 iš Wayback Machine projekto.