Pascal je programski jezik razvijen 1970. godine od strane Niklausa Wirtha kao jezik posebno pogodan za strukturalno programiranje (za razliku od danas opće prihvaćene OOP metode). Baziran na temeljima programskog jezikaAlgol dobio je ime u čast matematičara i filozofaBlaisea Pascala.
Iako je inicijalno bio zamišljen kao jezik namijenjen učenju programiranja u školama i univerzitetima širom svijeta danas se koristi u industriji razvojasoftwarea u svojoj najpoznatijoj inkarnaciji - Object Pascal, Delphi. Delphi je razvijen od strane korporacijeBorland za svestrani razvoj aplikacija od sistemskih alata i igara do desktop, database i višeslojnih kompleksnih aplikacija za (CP/M,MS-DOS iMS Windows 3.xx u prošlosti...) i MSWindows,.NET iLinux platforme.
Prvu implementaciju Pascala napravio je Niklaus Wirth za računaloCDC 60001970. uZürichu, dok je prvi program prevodilac za Pascal napisan uSAD-u bio stvoren naUniversity of Illinois u nadležnostiDonalsa B. Gilliesa za porodicu računala DECPDP-11 uassembleru. Niklaus Wirth je olakšao presađivanje Pascala na druga računala tako što je stvorio kit za portiranje, što je imalo za cilj da smanji količinu posla potrebnog za stvaranje programa prevodioca s jedne porodice računala na druga. Misao je bila da program prevodilac za Pascal pretvori sve naredbe u jedan virtualni assembler, i tako da je programer samo trebao stvoriti program koji bi preveo taj virtualni assembler za ciljani računskistroj ili stvori simulator za virtualnu mašinu za ciljani stroj. Ovaj međustupanj postaje P-sistem.
Usporedba Object Pascala i ostalih objektno orijetiranih jezika
[uredi |uredi kôd]Object Pascal/Delphi danas predstavlja vrh u razvoju softwarea.Programski jezik slijedi OOP principe i dodaje mnoštvo ekstenzija koje se mogu naći u najpoznatijim "C" jezicima (C,C++,C#), kao što su operator overloading, method overloading, inline methods, "rich" records (record s method-ima), itd...
Delphijevkompajler slovi kao najbrži kompajler među programskim jezicima u industriji softwarea (kompajliranje u izvršni program stotina tisuća linija koda traje samo nekoliko sekundi za razliku od tipičnih C/C++ kompajlera) proizvodeći pritom optimiziran kodbrzine usporedive s najboljim C/C++ kompajlerima.
Danas (Object) Pascal koristi preko milijun profesionalnih programera širom svijeta, a najnovije izdanje (Borland) Delphi 2006 unosi cijeli niz noviteta u razvojno okruženje (IDE).Tu se mogu naći UML modeliranje softwarea, integracija s alatima za configuration management (npr. Borland StarTeam), integracija s alatima za requirements management (npr. Borland Caliber), alatima za optimizaciju itd...
Prvo jedan jednostavan programski primjer:
programDobarDan(input,output);beginwriteln("Dobardan!");end;Složeniji programski primjer:
programkalkulator;UsesCrt;Label1;VarSto:String;p,d,z:Real;p2,d2,z2,z3:Integer;Begin1:Clrscr;z:=0;TextMode(2);TextColor(green);GotoXy(31,1);Write('KALKULAT 1.3');GotoXy(24,4);Writeln('1.Zbrajanje');GotoXy(25,5);Writeln('2.Oduzimanje');GotoXy(26,6);Writeln('3.Mnozenje');Gotoxy(27,7);WriteLn('4.Djeljenje');GotoXy(28,8);WriteLn('5.Djeljenje s ostatkom');GotoXy(29,9);WriteLn('Za izlaz pritisni tipku Q');Gotoxy(25,11);WriteLn('Odaberi i pritisni broj...');WriteLn;WriteLn;WriteLn('Napomena:');WriteLn('Program radi s najvise tri znamenke iza decimalne tocke!');WriteLn('Program ce se automatski ugasiti ako pri upisivanju broja upisete slovo!');WriteLn;WriteLn('CPYRIGHT (C) Lobel Strmečki');Sto:=Readkey;IfSto='1'thenBeginClrScr;Write('Upisi 1. broj:');Readln(p);Write('Upisi 2. broj:');Readln(d);z:=p+d;Writeln(p:2:3,'+',d:2:3,'=',z:2:3);WriteLn;Write('Pritisni tipku ENTER za povratak...');Readln;Goto1;End;IfSto='2'thenBeginClrScr;Write('Upisi 1. broj:');Readln(p);Write('Upisi 2. broj:');Readln(d);z:=p-d;WriteLn(p:2:3,' - ',d:2:3,' = ',z:2:3);WriteLn;Write('Pritisni tipku ENTER za povratak...');Readln;Goto1;End;IfSto='3'thenBeginClrScr;Write('Upisi 1. broj:');Readln(p);Write('Upisi 2. broj:');ReadLn(d);z:=p*d;WriteLn(p:2:3,'*',d:2:3,'=',z:2:3);WriteLn;Write('Pritisni tipku ENTER za povratak...');Readln;Goto1;End;IfSto='4'thenBegin;ClrScr;Write('Upisi 1. broj:');ReadLn(p);Write('Upisi 2. broj:');ReadLn(d);z:=p/d;WriteLn(p:2:3,'/',d:2:3,'=',z:2:3);WriteLn;WriteLn('Pritisni tipku ENTER za povratak...');ReadLn;Goto1;End;IfSto='5'thenBegin;ClrScr;Write('Upisi 1. broj:');ReadLn(p2);Write('Upisi 2. broj:');ReadLn(d2);z2:=p2divd2;z3:=p2modd2;Write(p2,' / ',d2,' = ',z2);WriteLn(' i ostatak ',z3);WriteLn;TextColor(white+2);WriteLn('Pritisni tipku ENTER za povratak...');ReadLn;Goto1;End;If(Sto='q')or(Sto='Q')thenBeginHalt;End;Ifnot(Sto='1')thenbegin;Goto1;End;End.Prethodni program napisan na drugačiji način prilagođeniji novijim Pascal compilerima:
programcalculator;usescrt;vari,answer:integer;a,b,c:real;proceduremenu;beginwriteln('M E N U');fori:=1to7dowrite('=');writeln;writeln('Press 1 for adding');writeln('Press 2 for subtracting');writeln('Press 3 for multiplying');writeln('Press 4 for dividing');writeln('Press 5 to end the program');end;procedureadding;beginclrscr;writeln('Type the two numbers you wish to add together. ');readln(a,b);writeln('The operation: ',a:0:3,' + ',b:0:3,' = ',(a+b):0:3);writeln('Press enter to return to the menu.');readlnend;proceduresubtracting;beginclrscr;writeln('Type the two numbers you wish to subtract. ');readln(a,b);writeln('The operation: ',a:0:3,' - ',b:0:3,' = ',(a-b):0:3);writeln('Press enter to return to the menu.');readlnend;proceduremultiplying;beginclrscr;writeln('Type the two numbers you wish to multiply. ');readln(a,b);writeln('The operation: ',a:0:3,' x ',b:0:3,' = ',(a*b):0:3);writeln('Press enter to return to the menu.');readlnend;proceduredividing;beginclrscr;writeln('Type the two numbers you wish to divide. ');readln(a,b);writeln('The operation: ',a:0:3,' / ',b:0:3,' = ',(a/b):0:3);writeln('Press enter to return to the menu.');readlnend;beginclrscr;writeln('<The calculator for basic four operations>');writeln('My first ever program with a purpose!');writeln('Programmed by me, Kristijan Bambir');writeln('Not meant for further copying or selling!');writeln('The rezults will have a maximum of 3 numbers after the decimal point.');writeln('If you type a letter instead of a number the program will end.');writeln;writeln('Press enter to continue...');readln;repeatclrscr;menu;writeln;write('Choose your desired operation. ');readln(answer);caseanswerof1:adding;2:subtracting;3:multiplying;4:dividing;5:writeln('End of program');end;untilanswer=5;writeln;writeln('Thank you for at least trying my program.');writeln('Have a nice day!');writeln('P.S. Press enter to exit');readlnend.