Pascal (programski jezik)
Izvor: Wikipedija
Pascal je ime programskog jezika kojeg je stvorio švicarski znanstvenik Niklaus Wirth 1970. godine. Isprva se Pascal koristilo kao nastavno pomagalo za strukturalnu metodu programiranja računala na fakultetima. Tokom 80ih i ranih 90ih godina 20. stoljeća Pascal se proširio van akademskih krugova u industriju, no ubrzo nakon pojave i masivnijom upotrebom objektno orijentiranih jezika kao C++ ili Java tjekom sredine 90ih godina 20. stoljeća, Pascal počinje gubiti primat u školama kao i u industriji. Pokušaj proširivanja Pascala s objektno orijentiranim konceptima kroz Object Pascal i kasnije kroz programski jezik Delphi uspjele su prilagoditi Pascal novim izazovima, no njegova popularnost sve više opada.
Sadržaj |
[uredi] Povijest razvoja
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 jezika Algol dobio je ime u čast matematičara i filozofa Blaisea Pascala.
Iako je inicijalno bio zamišljen kao jezik namijenjen učenju programiranja u školama i univerzitetima širom svijeta danas se koristi u industriji razvoja softwarea u svojoj najpoznatijoj inkarnaciji - Object Pascal, Delphi. Delphi je razvijen od strane korporacije Borland za svestrani razvoj aplikacija od sistemskih alata i igara do desktop, database i višeslojnih kompleksnih aplikacija za (CP/M, MS-DOS i MS Windows 3.xx u prošlosti...) i MS Windows/.Net i Linux platforme.
Prvu implementaciju Pascala napravio je Niklaus Wirth za računalo CDC 6000 1970. u Zürichu, dok je prvi program prevodilac za Pascal napisan u SAD-u bio stvoren na University of Illinois u nadležnosti Donalsa B. Gilliesa za porodicu računala DEC PDP-11 u assembleru. 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čunski stroj ili stvori simulator za virtualnu mašinu za ciljani stroj. Ovaj međustupanj postaj je P-sistem.
[uredi] Usporedba Pascala i programskog jezika C++
[uredi] Usporedba Object Pascala i ostalih objektno orijetiranih jezika
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/C++/C Sharp|C#]] jezicima, kao što su operator overloading, method overloading, inline methods, "rich" records (record s method-ima), etc...
Delphijev kompajler 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 kod brzine 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 itd...
[uredi] Programski primjeri
Prvo jedan jednostavan programski primjer:
program DobarDan(input, output); begin writeln("Dobar dan!"); end;
Složeniji programski primjer:
program kalkulator; Uses Crt; Label 1; Var Sto : String; p, d, z : Real; p2,d2,z2,z3 : Integer; Begin 1: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 najviše tri znamenke iza decimalne točke!'); WriteLn('Program ce se automatski ugasiti ako pri upisivanju broja upisete slovo!'); WriteLn; WriteLn('CPYRIGHT (C) Lobel Strmečki'); Sto:= Readkey; If Sto ='1' then Begin 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; Write('Pritisni tipku ENTER za povratak...'); Readln; Goto 1; End; If Sto = '2' then Begin 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; Write('Pritisni tipku ENTER za povratak...'); Readln; Goto 1; End; If Sto='3' then Begin 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; Write('Pritisni tipku ENTER za povratak...'); Readln; Goto 1; End; If Sto='4' then Begin; 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; Goto 1; End; If Sto = '5' then Begin; ClrScr; Write ('Upisi 1. broj:'); ReadLn (p2); Write ('Upisi 2. broj:'); ReadLn (d2); z2 := p2 div d2; z3 := p2 mod d2; Write ( p2,' / ',d2,' = ',z2); WriteLn (' i ostatak ',z3); WriteLn; TextColor(white+2); WriteLn ('Pritisni tipku ENTER za povratak...'); ReadLn; Goto 1; End; If (Sto = 'q') or (Sto = 'Q') then Begin Halt; End; If not (Sto='1') then begin; Goto 1; End; End.
Prethodni program napisan na drugačiji način prilagođeniji novijim Pascal prevodiocima:
program calculator; uses crt; var i,answer :integer; a,b,c :real; procedure menu; begin writeln('M E N U'); for i:=1 to 7 do write('='); 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; procedure adding; begin clrscr; 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.'); readln end; procedure subtracting; begin clrscr; 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.'); readln end; procedure multiplying; begin clrscr; 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.'); readln end; procedure dividing; begin clrscr; 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.'); readln end; begin clrscr; 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; repeat clrscr; menu; writeln; write('Choose your desired operation. '); readln(answer); case answer of 1: adding; 2: subtracting; 3: multiplying; 4: dividing; 5: writeln('End of program'); end; until answer=5; writeln; writeln('Thank you for at least trying my program.'); writeln('Have a nice day!'); writeln('P.S. Press enter to exit'); readln end.
[uredi] Standardi
[uredi] Poznate inačice Pascala
- UCDS Pascal
- porodica Borland Turbo Pascal
[uredi] Javno dostupni prevodioci
Na Internetu su dostupni mnogi besplatni programi prevodioci, od kojih su navedeni sljedeći:
- Prevodilac P4, zasnovan na UCDS Pascalu
- Free Pascal, dostupan za MSDOS, Linux (ARM, Intel, PowerPc, SPARC, AMD64/x86), MacOS, OS X, FreeBSD (Intel)
- Turbo Pascal, stare inačice Turbo Pascala do inačice 5.5 dostupne su besplatno od korporacije Borland
Iscrpni popis Pascal programa prevodilaca dostupni su sa Pascaland i Pascal Central.