Pascal (programski jezik)

S Vikipedije, slobodne enciklopedije

Pascal
Izgovara sePaskal
Model
Pojavio se1970.
Autor(i)Никлаус Вирт
Dizajner(i) Никлаус Вирт
Sistem tipovastatički i dinamički
UticajiАЛГОЛ 60,
Uticao na
Operativni sistemiJuniks (Linuks, SunOS, HP-UKS, AIKS) i Majkrosoft/IBM (DOS sa EMKS , OS / 2, Windows)

Pascal (transkr. Paskal) je imperativni programski jezik, koji je 1970. godine razvio Niklaus Virt, kao jezik pogodan za učenje strukturnog programiranja. Imenovan je po čuvenom francuskom matematičaru i filozofu Blezu Paskalu, tvorcu prve računske mašine koja je imala mogućnost izvođenja operacije sabiranja. Standardizovan je 1983. godine od strane Međunarodnog komiteta za standardizaciju.

Paskal se danas koristi kao početni program za obuku budućih programera, naručito onih koji nameravaju da rade na programskom jeziku C.

snimak ekrana

Paskal je razvijen po obrazcu jezika ALGOL 60.Virt je već razvio nekoliko poboljšanja ovog jezika u okviru ALGOL X predloga, ali oni nisu prihvaćeni i Paskal je razvijen odvojeno i objavljen 1970. godine.Objektni Paskal, grana objektno orijentisanog dela Paskala, dizajniran za objektno orijentisano programiranje je razvijen 1985. godine. Ovo je koristio Epl Kompjuter i Borland krajem osamdesetih godina, a kasnije se razvio na Delfi na platformi Windows.Proširenja Paskal koncepta dovele su do programskih jezika sličnim Paskalu Modula-2 i Oberon.

Programski jezik Paskal je neprevaziđen na planu obuke u programiranju, tamo gde je osnovni cilj upoznavanje sa programiranjem na logičan i sistematičan način.[1] Krajem 60-ih godina švajcarski naučnik Niklaus Virt imao je za cilj da napravi jezik u kome bi se mogla efikasno realizovati obuka programera. Međutim, danas Paskal ima mnogo širu primenu. On se koristi ne samo za pisanje programa u raznim oblastima primene računara već i kao jezik za sistemsko i vizuelno programiranje. Vizuelni Paskal, realizovan paketom Delfi, danas je jedan od najpopularnijih jezika za projektovanje Windows aplikacija iako iza njega ne stoji moćni Majkrosoft.

To je jednostavan jezik koji se može brzo naučiti, i u njemu se mogu pisati algoritamski vrlo složeni programi. On na izvestan način utiče na način razmišljanja programera, tako da lako usvaja osnovne principe programiranja.

Blez Paskal

Istorija[uredi | uredi izvor]

Rani razvoj[uredi | uredi izvor]

Programski jezik Paskal razvio je, između 1968 i 1970., švajcarski naučnik Niklaus Virt, na temeljima tad popularnog jezika ALGOL-a, radi prevazilaženja poteškoća koje su se javljale programiranjem u višim programskim jezicima sekvencijalnog karaktera (FORTRAN, KOBOL, ALGOL i BEJZIK), kao i zbog potreba uvođenja standardnog programskog jezika za učenje u školama i fakultetima. Virt je programskom jeziku dao ime Paskal u čast francuskog filozofa i matematičara Bleza Paskala, koji je 1641. izumeo mehanički kalkulator. Prva specifikacija objavljena je 1971, sledeća revizija napravljena je 1973. Već od 1972. Paskal se počinje izučavati na fakultetima kao jezik prikladan za uvod u programiranje. Prvobitna standardizacija jezika dogodila se 1983. (ISO 7185:1983).

Većina istorije dizajna računarskog jezika tokom 1960.tih godina traje svoju istoriju prema jeziku ALGOL 60. ALGOL je razvijen tokom pedesetih godina prošlog veka sa eksplicitnim ciljem da bi mogli jasno opisati algoritme. To je uključivalo niz funkcija za strukturno programiranje koje ostaje uobičajeno na jezicima do danas.

Ubrzo nakon uvoda, 1962. godine Virt je počeo raditi na disertaciji sa Helmut Veberom na programskom jeziku Euler. Euler je zasnovan na sintaksi ALGOL-a i mnogim konceptima, ali nije bio derivat. Njegov primarni cilj bio je dodavanje dinamičkih listi i tipova, omogućavajući da se ona koristi u ulogama sličnim Lisp-u. Jezik je objavljen 1965.

Do tog vremena identifikovan je veliki broj problema u ALGOL-u, posebno nedostatak standardizovanog sistema niza. Grupa koja je zadužena za održavanje jezika počela je proces ALGOL X da identifikuje poboljšanja. Virt i Toni Hor su podneli konzervativni skup modifikacija za dodavanje žica i čišćenje neke sintakse. Oni su smatrali suviše sitnim da bi bili korisni kao novi standard ALGOL, tako da je Virt napisao kompajler za jezik, koji je postao poznat kao ALGOL V.

ALGOL X napori bi nastavili da biraju dramatično složeniji jezik, ALGOL 68. Složenost ovog jezika dovela je do značajnih poteškoća u proizvodnji kompilatora visokih performansi i nije se široko primjenjivala u industriji. Ovo je ostavilo otvor za nove jezike.

Paskal[uredi | uredi izvor]

Paskal uvodi paradigmu strukturnog i proceduralnog programiranja, što znači da se programski kod razlaže na samostalne strukture - podatke i podprograme, koji se ne izvršavaju u istom redosledu u kom su navedeni, kao što je slučaj kod naredbi sekvencijalnih programskih jezika, nego se po potrebi pozivaju i izvode. Uvodjenjem podprograma izbegava se nužnost da program sekvencijalno, to jest redosledno, izvrši sve blokove koda dok ne dodje do naredbe koja označava kraj programa (GoTo) do pojedine labele u kodu, što može dovesti do velikih poteškoća pri pisanju ili revidiranju ozbiljnijih programa, jer je korišćenje GoTo funkcije dovodilo do nepreglednog koda s jedne strane (fenomen takozvanog Špageti-koda), s druge strane zahtevalo učitavanje čitavog programa u memoriju, umesto pozivanja pojedinačnih procedura po potrebi. Za tadašnje doba vrlo skupih memorija i početka ubrzanog razvoja softvera u odnosu na hardver, iznalaženje rešenja kao što je Paskal imalo je zbog navedenih razloga veliki značaj.

U isto vreme (1972)Amerikanac Denis Riči razvija programski jezik C zasnovan na jednakim proceduralnim i strukturnim postavkama kao i Paskal, s većim mogućnostima već u standardnoj izvedbi za manipulisanje vrstama podataka, a samim tim i većim mogućnostima za smanjenje zauzeća memorije. Dok je programski jezik C poslužio Kenu Tomsonu i Denisu Ričiju za programiranje UNIX-a sedamdesetih godina, UCSD verzija Paskala korišćena je na Univerzitetu u Kaliforniji, u San Dijegu za pisanje p-Systema. p-System se mogao instalirati na veliki broj tadašnjih kompjutera zahvaljujući činjenici da je trebalo samo programirati module koji su prenosili i kompajlovali p-system na dati kompjuter. [2]

Sedamdesetih godina Paskal stiče veliku popularnost te se u velikoj meri koristi za aplikacijsko i sistemsko programiranje. Operativni sistemi za Epl (Lisa i Makintoš) s kraja sedamdesetih i početka osamdesetih bili su razvijani u Paskalu, zbog čega pisanje programa u C-u za navedene sisteme nije imalo smisla jer su programi morali biti pisani tako da rade s tipovima podataka koje podržava standardni Paskal kao i sam API, u Paskalu napisan Epl operativni sistem. Do 1980-ih Paskal je izučavan na većini fakulteta informatičkog usmerenja u svetu.Varijante Paskala su takođe često korišćene za sve od istraživačkih projekata do PC igara i ugrađenih sistema. Postoje novi kompilatori Paskala koji se široko koriste.

Objektni Paskal[uredi | uredi izvor]

Tokom rada na Lisi, Leri Tesler je počeo da se slaže sa Virt-ovom idejom o dodavanju objektno orijentisanih proširenja na jezik. Ovo je u početku dovelo do Klaskala, uvedenog 1983. godine. Kako je program Lisa izbledio i zamenio Mek, napravljena je još jedna verzija poznata kao Objektni Paskal. Ovo je predstavljeno na Makintoš-u 1985. godine, u okviru MekEp aplikativnog okvira, i postao je osnovni razvojni jezik kompanije Epl početkom devedesetih.

Proširenja objekata Paskal kasnije su dodate Turbo Paskal-u, a tokom godina su postali Delfi sistem za Windows. Delfi se i dalje koristi za razvijanje Windows aplikacija, ali takođe ima mogućnost da kompajlira isti kod kod Mek, iOS i Android. Druga različita platforma pod nazivom Besplatan Paskal, sa Lazarus IDE-om, popularna je kod korisnika Linuksa, pošto takodje nudi piši jednom, kompajliraj bilo gde razvoj. KodTifon je Lazarus distribucija sa više unapred instaliranih paketa i unakrsnih kompajlera.

Borlandov Paskal[uredi | uredi izvor]

Godine 1983, pojavljuje se Turbo Paskal firme Borland, prvo integrisano razvojno okruženje (IDE) za sisteme CP/M i DOS. Turbo Paskal objedinjuje sve funkcije ciklusa razvoja softvera u jedan celovit program (pisanje koda, kompajlovanje, linkovanje, debugovanje), a istovremeni pristup svakoj od funkcija bez potrebe pokretanja zasebnih programa i gašenja prethodno pokrenutih je doprineo još većoj popularizaciji Paskala u softverskoj industriji, jer su programeri do tad morali pokretati zasebno nekoliko različitih programa (editor, kompajler, linker, debugger) da bi dovršili konačan program. IDE Turbo Paskal je masovno korišćen, kako zbog mogućnosti velike uštede vremena pri razvoju softvera, tako i zbog svoje niske cene i licence koja je omogućivala kupovinu samo jedne kopije proizvoda bez obzira na kolikom broju kompjutera će softver biti korišćen. Osim Turbo Paskala, Borland je izporučivao i skuplju verziju IDE-a pod nazivom Borland Paskal koja se od Turbo Paskala neznatno razlikovala po mogućnostima i imala uključen izvorni kod standardnih modula. Vremenom se Turbo Paskal razvija kao zasebna verzija programskog jezika i ostaje u širokoj upotrebi sve do početka devedesetih, kada Paskal gubi prednost u odnosu na C++ i Javu. Već 1999. Paskal je zamenjen C++-om kao standardom na svim američkim fakultetima.

Od novina koje uvodi Borland u Turbo Paskal značajna je mogućnost deljenja koda na odvojene datoteke, takozvane module (engleski: unit). Ovaj koncept preuzet je iz jezika Modula, odnosno Modula-2 (kasnija revizija jezika), za čije je kreiranje takođe zaslužan Niklaus Virt, autor prvobitnog Paskala. Mogućnost je dodata počevši s verzijom 4.00 Turbo Paskal IDE-a, a programski paket sadržavao je i standardnu zbirku modula prevedenih iz izvornog koda, prvo u jednoj datoteci TURBO.TPL (.TPL = Turbo Pascal Library), a kasnije u broju odvojenih binarnih. TPU (Turbo Pascal Unit) datoteka. Sedma verzija TP-a uključivala je sledeće module: APP, COLORSEL, CRT, CURSU, DIALOGS, DRIVERS, EDITORS, GRAPH, GRAPH3, HISTLIST, MEMORY, MENUS, MSGBOX, OBJECTS, OUTLINE, STDDLG, STRINGS, TEXTVIEW, TGKSI, TURBO3, VALIDATE, VIEWS i WINDOWS.

Poslednja verzija Turbo Paskala izišla je 1993. pod brojem 7.0. Nakon toga, Borland napušta dalji razvoj ovog proizvoda i umesto njega 1995. izdaje Delfi za 16-bitni Windows 3x, RAD okruženje za Borland Paskal koji se od tad razvija kao poseban programski jezik Delphi. Delphi, kao objektno-orijentisani Paskal naročito je pogodan za razvijanje grafičkih Windows aplikacija, zadržao se u širokoj upotrebi sve do danas, a stekao je i široku popularnost zbog lakoće korišćenja i vizuelnog interfejsa za kreiranje GUI-ja. Od 2006. razvojem Delphi jezika bavi se CodeGear, nekadašnja Borlandova saradnica za razvojne alate Borland Developers Tool Group (DTG). OpenSource alternativa Delphi jeziku su Free Pascal Compiler i Lazarus IDE.

Kratak opis[uredi | uredi izvor]

Virtova namera je bila stvaranje efikasnog jezika (u odnosu na brzinu kompilacije i generisanog koda) na osnovu strukturnog programiranja, nedavno popularizovanog koncepta koji je promovisao u svojoj knjizi Algorithms + Data Structures = Programs . Paskal ima svoje korene u jeziku ALGOL 60, ali je takođe uveo koncepte i mehanizme koji su (pored ALGOL-ovih skalara i nizova) omogućili programerima da definišu svoje složene (strukturne) tipove podataka, a takođe su olakšali izgradnju dinamičkih i rekurzivnih struktura podataka kao što su liste , stabla i grafikoni . Važne karakteristike koje su uključene u ovo su bile zapisi , enumeracije , podređene , dinamički dodeljene promenljive sa pridruženim pokazivačima i skupovima . Da bi ovo napravio mogućim i značajnim, Paskal ima strogo tipiziranje na svim objektima, što znači da se jedna vrsta podataka ne može konvertovati ili tumačiti kao druga bez "eksplicitnih" konverzija. Slični mehanizmi su standardni u mnogim programskim jezicima danas. Drugi jezici koji su uticali na razvoj Paskala su Simula 67 i Virt-ov sopstveni ALGOL V.

Paskal, kao i mnogi programski jezici današnjice (ali za razliku od većine jezika iz C familije), dozvoljava ugneždene proceduralne definicije na bilo koji nivo dubine, a takođe dozvoljava većinu vrsta definicija i deklaracija unutar podprograma (procedure i funkcije). Ovo omogućava veoma jednostavnu i koherentnu sintaksu u kojoj je potpuni program sintaksički gotovo identičan jednoj proceduri ili funkciji (osim za naslov, koji ima jednu od ove tri ključne reči).

Implementacija[uredi | uredi izvor]

Raniji Paskal Kompajleri[uredi | uredi izvor]

Prvi Paskal kompajler je dizajniran u Cirihu za porodicu računara CDC 6000 serije. Niklaus Virt izveštava da je prvi pokušaj implementacije u Fortran-u 1969. godine bio neuspešan zbog Fortranove neadekvatnosti za izražavanje složenih struktura podataka. Drugi pokušaj primenjen je na C-ovske jezike (Scalop od Maksa Englija), a potom ručno preveden (od R. Šild-a) u sam Paskal za obrtanje.[3] Bio je operativan do sredine 1970. godine. Mnogi kompajleri Pakkal-a su, s obzirom na to da su slično samo-hosting, tj. Kompajler je sam napisan u Paskal-u, a kompilator je obično sposoban da se ponovo kompajlira kada se dodaju nove funkcije na jezik ili kada se kompajler prenese na novo okruženje. GNU Pakkal kompajler je jedan izuzetan izuzetak, koji je napisan u C.

Prva uspješna luka CDC Paskal kompajlera u drugi meinfrejm (eng. mainframe) završili su Veš i Kvin (Welsh, Quinn) na Kraljičinom univerzitetu u Belfastu (KUB) 1972. Cilj je bila serija ICL 1900. Ovaj kompajler je, zauzvrat, bio roditelj Paskalovog kompajlera za informacioni računarski sistem (ICS) Multum mini računar. Multum port je razvijen - u cilju korišćenja Paskal-a kao sistemskog programskog jezika - od strane Findlija, Kaplsa, Kavourasa i Dejvisa (Findlay, Cupples, Cavouras, Davis), koji radi na odseku za računarsku nauku na Univerzitetu u Glazgovu. Smatra se da je Multum Paskal, koji je završen u leto 1973. godine, mogao biti prva 16-bitna implementacija.

Potpuno novi kompajler je završio Velš na KUB-u 1977. Ponuđena je dijagnostička funkcija izvornog jezika (obuhvaćena profiliranje, praćenje i oblikovanje smernica u obliku post-mortemom (eng. post-mortem) otpadaka) koje je implementirao Findli i Vat (Findlay, Watt) na Univerzitetu u Glazgovu. Ova implementacija je predstavljena 1980. godine seriji ICL 2900 od strane tima sa Univerziteta Sautampton i Univerziteta Glazgov. Implementacija modela Standard Paskal takođe je zasnovana na ovom kompajleru, nakon što su adaptirali Velš i Hai na Univerzitetu u Mančesteru 1984. godine, da se rigorozno proveri usklađenost s BSI 6192 / ISO 7185 Standardom i da generiše kod za prenosivu apstraktnu mašinu.

Prvi Paskal kompilator napisan u Severnoj Americi izgrađen je na univerzitetu u Ilinoisu od Donald B. Gillies za PDP-11 i generisan je izvorni kod mašine.

Paskal - P Sistem[uredi | uredi izvor]

Za brzo propagiranje jezika, u Cirihu je napravljen kompajlerski "prenosni komplet" koji je uključivao kompajler koji je generisao kod za "virtuelnu" mašinu, tj. kod koji se može razumno i efikasno tumačiti, zajedno sa tumačem za taj kod - sistem "Paskal-P". Kompilatori P-sistema nazivani su Paskal-P1, Paskal-P2, Paskal-P3 i Paskal-P4. Paskal-P1 je prva verzija, a Paskal-P4 je poslednji došao iz Ciriha. Verzija koja se naziva Paskal-P1 je skoncentrisana nakon činjenice za mnoge različite izvore za Paskal-P koji su postojali. Kompajler je redizajniran da bi poboljšao prenosivost i izdao se kao Paskal-P2. Ovaj kod je kasnije poboljšan kako bi postao Paskal-P3, sa srednjim kodom kompatibilnim sa Paskal-P2, i Paskal-P4, koji nije bio kompatibilan nazad.

Paskal-P4 kompilator/interpretator se i dalje može pokrenuti i kompajlirati na sistemima kompatibilnim sa originalnim Paskal-om. Međutim, on prihvata samo podskup Paskalovog jezika.

Paskal-P5, kreiran izvan grupe iz Curicha, prihvata pun Paskal jezik i uključuje ISO 7185 kompatibilnost.

UCSD Paskal razdvojen od Paskal-P2, gde ga je Kenet Bols koristio za kreiranje interpreriran UCSD ​​P-Sistem. UCSD P-Sistem je bio jedan od tri operativna sistema dostupna na lansiranju originalne IBM Lični Računar.[4] UCSD Paskal je koristio srednji kod baziran na vrednostima bajtova, i stoga je bio jedan od najstarijih "kompajlera bajtnih kodova". Paskal-P1 preko Paskal-P4 nije bio, već je zasnovan na CDC 6600 60-bitnoj dužini riječi.

Prevodilac zasnovan na Paskal-P4 kompajleru, koji je kreirao izvorne binarne datoteke, izdala je Australijska komisija za atomsku energiju za IBM Sistem /370; ona se zvala "AAEC Paskal Kompjuter" po skraćenici imena Komisije.[5]

Početkom osamdesetih, razvijen je Votkom(eng. Watcom) Paskal, takođe i za IBM Sistem 370.

U devedesetim godinama, Paskal je i dalje radio na terminima VAKS na Džordž Mejson Univerzitetu za predavanje kompjuterskog programiranja.

Objektni Paskal i Turbo Paskal[uredi | uredi izvor]

Epl Kompjuter je stvorio svoj Lisa Paskal za Lisa radionicu 1982. godine, a 1985. godine prenosio kompajler na Epl ? Makintoš i MPV. 1985. Lari Tesler, u konsultaciji sa Niklaus Virt, su definisali Objektni Paskal i ovi dodaci su uključeni u oba Lisa Paskal i Mek Paskal kompajlera.

Tokom 1980-ih, Anders Helsberg napisao je Blu Lejbl Paskal (eng. Blue Label Pascal) komppajler za Nascom-2. Ponovna primena ovog kompajlera za IBM PS prodata je pod imenom Kompas Paskal i Poli Paskal pre nego što je kupio Borland i preimenovan u Turbo Paskal.

Turbo Paskal postao je veoma popularan, zahvaljujući agresivnoj strategiji cena, koja ima jedno od prvih integrisanih razvojnih okruženja u celom ekranu, i vrlo brzo vreme okončanja (samo sekunde za kompajliranje, povezivanje i pokretanje) . Pisano je i visoko optimizovano u asemblerskom jeziku, čineći ga manjim i bržim.

Godine 1986. Anders je poslao Turbo Paskal na Makintoš i inkorporirao Eplovu Objekt Paskal ekstenziju u Turbo Paskal. Ove ekstenzije su zatim dodate nazad u PS verziju Turbo Paskala za verziju 5.5. U isto vreme Majkrosoft je takođe implementirao Objekt Paskal kompajler.[6][7] Turbo Paskal 5.5 imao je veliki uticaj na zajednicu Paskala, koja je počela da se koncentrira uglavnom na IBM PS krajem osamdesetih. Mnogi PS hobisti u potrazi za strukturiranom zamenom za Bejsik su koristili ovaj proizvod. Takođe je počela da ih usvajaju profesionalni programeri. U isto vreme je uvezeno više koncepta iz C-a kako bi Paskal programerima direktno koristili aplikaciju API iz Microsoft Windows-a. Ove ekstenzije uključuju nal-terminirane za string, pokazivačku aritmetiku, pokazivače na funkcije, operator-adresa i nebezbednu konverziju tipova.

Turbo Paskal i drugi derivati sa jedinice (eng. Unit) ili koncepti modula su modularni jezici. Međutim, on ne pruža koncept ugrađenog modula ili kvalifikovanog uvoza i izvoza određenih simbola.

Ostale varijante[uredi | uredi izvor]

Super Paskal je bila varijanta koja je dodala ne-numeričke etikete, povratnu izjavu i izraze kao imena tipova.

Univerziteti Viskansin-Medison, Cirih, Karlsrule i Vupertal su razvili Paskal-SC i Paskal-KSSC[8][9] and Pascal-XSC[10][11][12] ( Ekstenѕija ѕa naučna Izračunavanja ) kompilatori, namenjeni programiranju numeričkih izračunavanja. TMT Paskal prvi kompatibilan kompajler Borland za 32-bitni DOS zaštitni mod, OS / 2 i Vin32 operativni sistemi. Takođe je jezik TMT Paskal bio prvi koji je omogućio funkciju i preopterećenje operatora.[13] Razvoj za Paskal-SC je započeo 1978. godine koji podržava ISO 7185 Paskal nivo 0, ali podrška nivoa 2 je dodata kasnije. Paskal-SC je prvobitno ciljao na Z80 procesor, ali je kasnije ponovo napisan za DOS (k86) i 68000. Paskal-KSSC je u raznim vremenskim periodima prebačen u Juniks (Linuks, SunOS, HP-UKS, AIKS) i Majkrosoft/IBM (DOS sa EMKS , OS / 2, Windows) operativnih sistema. On radi tako što generiše srednji C izvorni kod koji se zatim sastavlja na izvornu izvršnu datoteku. Neke od proširenja jezika Paskal-SC su usvojene od strane GNU Paskal.

Paskal Sol je dizajniran oko 1983. godine od strane francuskog tima za implementaciju Juniks sistema sličnih Solama. To je bio standardni nivo Paskal-1 (sa parametriziranim granicama nizova), ali definicija je omogućila alternativne ključne reči i unapred definisane identifikatore na francuskom jeziku, a jezik je uključio nekoliko ekstenzija kako bi se olakšalo sistemsko programiranje (npr. eng. equivalent to lseek)[14]>.Sol tim je kasnije prešao u projekat KorusOS (eng. ChorusOS) za dizajniranje distribuirane operativne sistem.[15]

IP Paskal bila je implementacija programskog jezika Paskal koristeći Majkropolis DOS, ali je brzo pomeren na CP / M-80 koji se pokreće na Z80. Premešten je u tipove mašina 80386. 1994. godine i danas postoji kao implementacija Windows / KSP i Linuks. U 2008. godini sistem je doveden do novog nivoa, a rezultujući jezik nazvao je "Paskalina" (po Paskalovom kalkulatoru). Uključuje objekte, kontrole imenog prostora, dinamički niz, zajedno sa mnogim drugim ekstenzijama, i generalno imaju istu funkcionalnost i zaštitu tipa kao C Sharp. To je jedina takva implementacija koja je kompatibilna i sa originalnom implementacijom Paskala, koja je standardizovana kao ISO 7185.

Smart Mobile Studio [16] kreirao je Džon Asenden i sastavio je svoj dijalekt objekta Objekt Paskal u HTML5 / Javascript

[Smart Mobile Studio] ima IDE koji uključuje vizuelni C.

Programiranje[uredi | uredi izvor]

Primer pisanja jednostavnog programa

Sledeći jedostavan program upisuje "Здраво свете!" u standardnu izlaznu datoteku output:

PROGRAM Pozdrav(output);
BEGIN
  writeln('Здраво свете!')
END.

Standardni tipovi podataka[uredi | uredi izvor]

Tip u Paskal-u iu nekoliko drugih popularnih programskih jezika definiše promenljivu tako da definiše niz vrednosti koje promenljiva može sadržati i definiše skup operacija koje su dozvoljene za izvođenje na promenljiva te vrste.Tipovi podataka u paskalu mogu biti prosti i složeni. Predefinisani tipovi su:

Tip podatka Tip vrednosti koje je promenljiva sposobna za čuvanje
integer celobrojni tip
real realni tip, brojevi u pokretnom zarezu
boolean logički tip, vrednost Tačno ili Netačno (eng True or False)
char znakovni tip, jedan znak iz uređenog skupa znakova
string simbolni tip, grupa ili "niz" karaktera

Opseg vrednosti dozvoljenih za svaku (osim boolean) je definisana implementacijom. Funkcije su date za neke konverzije podataka.Za konverziju iz real u integer, dostupne su sledeće funkcije: round koji se zaokružuje na ceo broj koristeći bankerovo zaokruživanje) i trunc (zaokružuje ka nuli).

Programator ima slobodu da definiše druge standardne tipove podataka (npr. Bajt, string, itd.) U smislu unapred definisanih tipova koristeći Paskalov objekat deklaracije tipa, na primer:

type
  byte        = 0..255;
  oznaceni_byte = -128..127;
  string      = packed array[1..255] of char;

(Često korišćeni tipovi kao što su bajt i string su već definisani u mnogim implementacijama.)

Tipovi podopsega[uredi | uredi izvor]

Mogući su podopsezi bilo kog ordinalnog tipa podataka (svih standardnih tipova sem realnog):

var
  x : 1..10;
  y : 'a'..'z';

Set tipovi[uredi | uredi izvor]

Za razliku od drugih programskih jezika iz tog vremena, Paskal podržava set tip:

var
  Set1 : set of 1..10;
  Set2 : set of 'a'..'z';

Set je osnovni pojam moderne matematike i može se koristiti u mnogim algoritmima. Takva funkcija je korisna i može biti brža od ekvivalentne konstrukcije na jeziku koji ne podržava skupove. Na primer, za mnoge prevođače Paskala:

if i in [5..10] then ...

se izvršava brže nego:

if (i > 4) and (i < 11) then ...

Kompleti ne-susednih vrednosti mogu biti naročito korisni u pogledu performansi i čitljivosti:

if i in [0..3, 7, 9, 12..15] then ...

Za ove primere, koji uključuju skupove u malim domenima, poboljšane performanse obično postiže kompajler koji predstavlja skup vrijednosti kao bitnih vektora. Set operatora se zatim može efikasno implementirati kao operacije koda računarskih mašina.

Deklaracija tipa[uredi | uredi izvor]

Tipovi se mogu definisati preko drugih tipova koristeći deklaracije tipa:

type
  x = integer;
  y = x;
...

Složeni tipovi mogu biti konstruisani iz jednostavnih tipova:

type
  a = array[1..10] of integer;
  b = record
        x : integer;
        y : char
      end;
  c = file of a;


Datoteke[uredi | uredi izvor]

Kao što je prikazano u prethodnom primeru, Paskal datoteke su sekvence komponenti. Svaka datoteka ima bafer promenljivu koja je označena sa f ^ . Postupci get (za čitanje) i put (za pisanje) pomeraju promenljivu bafera na sljedeći element. Čitanje je uvedeno tako da je read(f, x) isto kao i : k: = f ^; dobi (f); . Pisanje je uvedeno tako da je write(f, x) isti kao f^ := x; put(f); . Iako bi varijabilna varijabla mogla biti korišćena za inspekciju sledećeg znaka koji će se koristiti (proverite cifru pre čitanja celog broja), to dovodi do ozbiljnih problema sa interaktivnim programima u ranim implementacijama, ali je kasnije riješeno sa "lenji I/O" koncept.

U Džensen i Virt Paskalu, stringovi su predstavljeni kao zapakovani nizovi karaktera; stoga imaju fiksnu dužinu i obično su prostorno obloženi.

Pokazivački tip[uredi | uredi izvor]

Paskal podržava upotrebu pokazivača-a:

type
  pNode = ^Node;
  Node  = record
          a : integer;
          b : char;
          c : pNode  {додатна тачка-зарез није потребна}
          end;
var
  NodePtr : pNode;
  IntPtr  : ^integer;

Ovde je promenljiva NodePtr pokazivač na tip podataka Node . Pokazivači se mogu koristiti pre nego što se proglase. Ovo je deklaracija unapred, izuzetak od pravila da stvari moraju biti deklarirane pre nego što se koriste.

Da kreirate novi rekord i dodijelite vrijednost 10 i znak A u polja a i b u zapisu i inicijalizirajte pokazivač c na NIL, komande bi bile:

New(NodePtr);
...

NodePtr^.a := 10;
NodePtr^.b := 'A';
NodePtr^.c := NIL;
...

To se takođe može učiniti korišćenjem izraza 'with' :

New(NodePtr);
...
with NodePtr^ do
begin
  a := 10;
  b := 'A';
  c := NIL
end;
...

Unutar obima izraza with , a i b se odnose na potpolje rekordnog pokazivača NodePtr , a ne na rekordni čvor ili na pokazivač tipa pNode.

Povezana lista, stek i redovi mogu biti kreirani uključivanjem polja tipa pokazivača (c).

Za razliku od mnogih jezika koji sadrže pokazivače, Paskal dozvoljava samo pokazivačima da referišu dinamički kreirane promenljive koji su anonimni i da im ne dozvoljava da referišu standardne statičke ili lokalne promenljive. Pokazivači takođe moraju imati pridruženi tip, a pokazivač jednoj vrsti nije kompatibilan sa pokazivačem na drugi tip (npr. Pokazivač na znak nije kompatibilan sa pokazivačem na ceo broj). Ovo pomaže u uklanjanju sigurnosnih problema tipa koji su inherentni drugim implementacijama pokazatelja, posebno onih koji se koriste za PL/I ili C. Takođe uklanja određene rizike koje izazivaju viseći pokazivači, ali mogućnost dinamičkog deallociranja referentnog prostora koristeći funkciju dispose (koja ima isti efekat kao i funkcija free biblioteke koja se nalazi u C) znači da rizik od visećeg pokazivača nije u potpunosti eliminisan kao što je to na jezicima kao što su Java i C #, koji obezbjeđuju automatsko sakupljanje smeća (ali koji u potpunosti ne uklanjaju srodni problem curenja memorije.[17]

Neka od ovih ograničenja mogu se podići na novije dijalekte.

Kontrolne strukture[uredi | uredi izvor]

Paskal je strukturno programski jezik, što znači da je tok kontrole strukturiran u standardne izraze, obično bez ' GoTo' komandi.

while a <> b do WriteLn('Cekanje');

if a > b then WriteLn('Uslov ispunjen') {није дозвољена тачка-зарез!}
           else WriteLn('Uslov nije ispunjen');

for i := 1 to 10 do {тачка зарез није дозвољена за појединачне изразе!}
  WriteLn('Iteracija: ', i);

repeat
  a := a + 1
until a = 10;

case i of
  0 : Write('nula');
  1 : Write('jedan');
  2 : Write('dva');
  3,4,5,6,7,8,9,10: Write('?')
end;

Procedure i funkcije u Paskalu[uredi | uredi izvor]

Procedure su izdvojene programske celine (potprogrami) koje na osnovu određenog algoritma transformišu parametre (podatke), ali ne vraćaju vrednost kao funkcije. Sledeći primer prikazuje izgled sintakse i strukture procedure u Paskal programu.

program ProcTest;
var
  x : integer;
 
procedure PrintProc(var y : integer);
begin
  read(y);
  { ... }
end;
 
begin
  { ... }
  PrintProc(x);
  { ... }
end.


Svaka procedura ili funkcija može imati svoje deklaracije o oznakama, konstantama, tipovima, promenljivama i drugim procedurama i funkcijama, koje moraju biti u tom redosledu. Ovaj zahtev za naručivanje prvobitno je bio namenjen da se omogući efikasna kompilacija pojedinačnog pasusa. Međutim, na nekim dijalektima (kao što je Embarkadero Delfi), strogo naručivanje zahteva odeljaka deklaracije je opušteno.

Tačka-zarez kao separatori izraza[uredi | uredi izvor]

Paskal je usvojio mnoge značajke sintakse jezika sa ALGOL jezika, uključujući korišćenje tačka-zareza kao separator izraza. Ovo je u suprotnosti sa drugim jezicima, kao što su PL / I, C itd. Koji koriste tačka-zarez kao terminator izraza. Kao što je ilustrovano u gore navedenim primerima, pre ključne reči end nije potrebna tačka s ikonama deklaracije tipa zapisa, blok ili case izraz; pre until ključna reč ponavljanja izraza; i pre ključne reči else izraz if.

Prisustvo dodatnor tačka-zareza nije bilo dozvoljeno u ranijim verzijama Paskala. Međutim, dodavanje ALGOL - kao praznih izraza u revidiranom izveštaju iz 1973. godine, a kasnije i promene jezika u ISO 7185: 1983 sada omogućavaju opcionalne tačka-zareze u većini slučajeva. Preko ključne reči "else'" još uvek nije dopuštena tačka-zarez u stavku "if", jer else prati jedan izraz, a ne sekvenca izraza . U slučaju ugnrždenih if-ova, tačka-zarez se ne može koristiti da bi se izbegao problem viseće else (gde unutrašnji if nema else, ali spoljašnji if ima), putno završava ugnježdeni ako je sa tačkom-zarezom - ovo umesto toga prekida oba if. Umesto toga, eksplicitni blok begin...end mora biti korišten.

Programeri obično uključuju ove dodatne tačka-zareze iz navike i da izbegavaju promenu poslednje linije sekvenci izraza kada se dodaju novi kodovi.

Osnovni znakovi jezika

  • U paskalu se koriste ASCII slova
  • A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  • a b c d e f g h i j k l m n o p q r s t u v w x y z
  • brojevi: 0 1 2 3 4 5 6 7 8 9
  • i specijalni znakovi: + - * / = < > [] . , ; : ^ () ‘ { }

Među specijalne znakove se ubraja i razmak (spejs).

Rezervisane reči u paskalu

  • Begin - se koristi za početak bloka.
  • End - se koristi za kraj bloka.
  • Var - se koristi za početak definisanja promenljivih.
  • Type - se koristi za definisanje tipova promenljivih.
  • Const - se koristi za definisanje konstanti.
  • Procedure - se koristi za definisanje procedure.
  • Function - se koristi za definisanje funkcije.

Standardne funkcije jezika paskal

  • Read(а), Readln(а) - je funkcija koja učitava vrednost za promenljivu a.
  • Write(а), Writeln(а) - je funkcija koja ispisuje vrednost promenljive a.

Paskal ne razlikuje velika i mala slova (tj. nije case sensitive).

Operatori[uredi | uredi izvor]

Aritmetički operatori[uredi | uredi izvor]

Aritmetički operatori podržani u Paskalu:

Operator Opis
+ Sabira dva operanda
- Oduzima drugi operand od prvog
* Množi dva operanda
div Deli brojilac imeniocom
mod Modulus operator i ostatak celobrojne podele

Relacioni operatori[uredi | uredi izvor]

Relacioni operatori podržani u Paskalu:

Operator Opis
= Proverava da li su vrednosti oba operanda jednaka i ako jesu onda uslov postaje tačan
<> Proverava da li su vrednosti oba operanda jednaka i ako nisu onda uslov postaje tačan
> Proverava da li je vrednost levog operanda veća od desnog i ako jeste onda uslov postaje tačan
< Proverava da li je vrednost levog operanda manja od desnog i ako jeste onda uslov postaje tačan
>= Proverava da li je vrednost levog operanda beća ili jednaka od desnog i ako jeste onda uslov postaje tačan
<= Proverava da li je vrednost levog operanda manja ili jednaka od desnog i ako jeste onda uslov postaje tačan

Logički operatori[uredi | uredi izvor]

Logički operatori podržani u Paskalu:

Operator Opis
and Ako su oba operanda tačna onda uslov postaje tačan
and then Slično je operateru and, međutim, garantuje redosled u kojem kompajler procenjuje logički izraz. Levo nadesno, i desni operandi ocenjuju se samo kada je to potrebno.
or Ako bilo koji od dva operanda su tačna onda uslov postaje tačan.
or else Slično je operatoru or, međutim, garantuje redosled u kojem kompajler ocenjuje logičan izraz. Levo nadesno, i desni operandi ocenjuju se samo kada je to potrebno.
<= Nazvan boolean NOT operator. Koristi se da se perokrene logičko stanje operanda. Ako uslov je tačan, a onda će LOGIČNO NIJE operator učiniti lažnim.


Bitovni operatori[uredi | uredi izvor]

Bitovni operatori podržani u Paskalu:

Operator Opis
& Kopira bit u rezultat ako postoji u oba operanda.
Kopira bit ako postoji u bilo kom operandu.
~ Ima efekat "obrtanja" bitova.
<< Binarni levi šift operater. Leva vrednost operanda se pomera levo za broj bitova koji je naveden desnim operandom.
>> Binarni desni smenarski operator. Leva vrednost operanda se pomera desno za broj bitova koji je naveden desnim operandom.

Tablica prioriteta[uredi | uredi izvor]

Operator Opis
1. ~, not
2. *, /, div, mod, and, &
3. , !, +, -, or
4. =, <>, <, <=, >, >=, in
5. or else, and then

Resursi[uredi | uredi izvor]

Kompilatori i prevodioci[uredi | uredi izvor]

Nekoliko kompilatora i prevodilaca Paskala dostupno je za opštu upotrebu:

  • Delfi je Embarkaderov (ranije Borland / KodGir) vodeći proizvod za brz razvoj aplikacija (engl. Rapid Application Development - RAD). Koristi Obdžekt Paskal jezik (nazvan "Delfi" od Borlanda), poreklom iz Paskala, za kreiranje aplikacija za Windows, Mac OS, iOS i Android. Podrška .NET koja je postojala od D8 do D2005, D2006 i D2007 je prekinuta i zamenjena je novim jezikom (Prism, koji je preimenovani Oksidžen, pogledajte u nastavku) koji nije potpuno unazad kompatibilan(eng. backward compatible). Poslednjih godina je dodata podrška i Unikod generici (D2009, D2010, Delfi KSE).
  • Slobodni (eng. Free) Paskal je multi-platformni kompajler napisan u Objektnom paskalu (i self-hosting). Njegov cilj je da obezbedi zgodan i moćan prevodilac, koji je sposoban da sastavi stare programe i da bude sredstvo za razvoj novih. Distribuira se pod GNU GPL, dok paketi i biblioteka izvršavanja potiču od modifikovanih GNU LGPL. Osim modova kompatibilnosti za Turbo Paskal, Delfi i Mek Paskal, on takođe ima sopstvene proceduralne i objektno orijentisane sintaksne modove sa podrškom za proširene funkcije kao što je operator preopterećenja. Podržava mnoge platforme i operativne sisteme. Trenutne verzije takođe sadrže ISO mod.
  • Modern Paskal je multi-platformni prevodilac i p-kod kompajler napisan u Slobodom (engl. Free) Paskalu. Njegov cilj je pružanje alternativnih rešenja za PHP i node.js, koristeći ili ISO standardni paskalni dijalekt ili hibridno podržavajuće JavaSkript / C operatore. Od CLI-a koristan je kao besplatni Paskal interpretator.
  • Turbo51 je besplatan Paskal kompajler za 8051 porodicu mikrokontrolera, sa Turbo Paskal 7 sintaksom.
  • Oksidžen (ranije poznat kao Hrom ) je Objektni Paskal kompajler za .NET i Mono platforme. Kreiran je i prodaje ga RemObdžekts Softver, a Embarkadero ga je neko vreme prodao kao predstavnik za Prism.
  • Kiliks je bio potomak Delphi, uz podršku operativnog sistema Linuks i poboljšane biblioteke objekata. Više nije podržano. Kompajler i IDE su sada dostupni za nekomercijalnu upotrebu.
  • GNU Paskal Kompajler (GPC) je Paskal kompajler GNU kolekcija kompajlera (GCC). Sam kompajler je napisan u C, biblioteka za izvršavanje uglavnom u Paskalu. Distribuiran pod GNU-ova opšta javna licenca, radi na mnogim platformama i operativnim sistemima. Podržava ANSI / ISO standardne jezike i ima delimičnu Turbo Paskal dijalekt podršku. Jedan od bolnijih propusta je odsustvo 100% Turbo Paskal-kompatibilnog (kratkog) tipa stringa. Podrška za Borland Delfi i druge jezičke varijante je prilično ograničena. Međutim, postoji Mek-paskal podrška.
  • DWScript DVSkript, od DelphiVebScript, je interpretator koji su stvorili Matthias Ackermann i Hannes Hernler 2000. Trenutna verzija pokreće dijalekt Objektnog Paskala koji je u velikoj meri kompatibilan sa Delphijem, ali i podržava jezičke konstruktivne elemente uvedene u Prismu. DVSkript kod se može ugraditi u Delfi aplikacije slične PaskalSkript-u, sastavljene u samostalnu aplikaciju koristeći SimplMobailStudio ili kompajlirane u JavaScript kod i stavljene na veb stranicu. [18]
  • Dr. Paskal je interpretator koji pokreće Standardni Paskal. Značajni su režim "vidljivo izvršenje" koji prikazuje program koji se pokreće i njegove promenljive, kao i opsežnu proveru greške izvršavanja. Pokreće programe, ali ne emituje poseban binarni izvršni program. Pokreće DOS, Windows u DOS prozoru i stari Makintoš.
  • Dr. Paskal Prošireni Paskal prevodilac testiran na DOS-u, Windows-u 3.1, 95, 98, NT.
  • Virtualni Paskal je kreirao Vitali Mirianov 1995. godine kao izvorni OS / 2 kompajler kompatibilan sa sintaksom Borland Paskal. Zatim je komercijalno razvio fPrint, dodavši Vin32 podršku, a 2000. godine postao je besplatan. Danas se može kompajlirati za Vin32, OS / 2 i Linuks, i uglavnom je kompatibilan sa Borland Paskal i Delfi. Razvoj je otkazan 4. aprila 2005. godine.
  • P4 kompajler, osnova za mnoge naredne Paskal-implementirane-u-Paskalu kompajlere. Primenjuje podskup punog Paskala.
  • P5 kompajler, je ISO 7185 (pun Paskal) prilagođavanje P4.
  • Smart Mobail Studio je Paskal za HTML5 / Javaskript kompajler
  • Turbo Paskal je bio dominantni Paskal prevodilac za PS računare tokom 1980-ih i ranih devedesetih godina prošlog veka, popularan i zbog svojih moćnih produženja i izuzetno kratkih vremena kompajliranja. Turbo Paskal je kompaktno napisan i mogao je prevoditi, pokrenuti i debagovati sve iz memorije bez pristupa disku. Spori disketni diskovi bili su uobičajeni za programera u to vreme, dodatno povećavajući prednost Turbo Paskal-a za brzinu. Trenutno, starije verzije Turbo Paskal (do 5,5) su dostupne za besplatno preuzimanje sa Borlandovog sajta.
  • IP Paskal Arhivirano na sajtu Wayback Machine (26. maj 2009) Primenjuje jezik "Paskalina" (imenovan po Paskalovom kalkulatoru), koji je visoko proširen Paskal kompatibilan sa originalnim Paskalom prema ISO 7185. To sadrži modele sa kontrolom imenskog prostora(eng. namespace), uključujući paralelne module zadataka sa semaforima, objektima, dinamičkim nizovima svih dimenzija koje se raspoređuju u vreme izvršavanja, preopterećenja, preklapanja i mnogih drugih ekstenzija. IP Paskal ima ugrađenu biblioteku prenosivosti koja je posebno prilagođena jeziku Paskal. Na primer, standardna aplikacija za izlaz iz teksta iz 1970.ih godina prvobitnog Paskala može se ponovo kompajlirati da bi radila u prozoru sa dodatim i grafičkim konstrukcijama.
  • Paskal-KST je kreirao Simens za svoje operativne sisteme mejnfrejm BS2000 i SINIKS.
  • PoketStudio je kompajler podskupova Paskal i RAD alatka za Palm OS i MC68xxx procesore sa nekim sopstvenim ekstenzijama za pomoć u povezivanju sa Palm OS API-jem. Liči na Delfi i Lazarus sa dizajnerom vizuelne forme, objektnim inspektorom i urednikom izvornog koda].
  • MIDletPaskal - Paskal kompajler i IDE koji generiše mali i brz Java bajtkod specijalno dizajniran za kreiranje softvera za mobilne uređaje
  • Vektor Paskal Vektor Paskal je jezik za SIMD skupove instrukcija kao što su MMKS i AMD 3d Nau, podržavajući sve Intel i AMD procesore i Soni PlejStejšn 2 Emoušn Endžin.
  • Morfik Paskal dozvoljava razvoj Veb aplikacija koje su u potpunosti napisane u Obdžekt Paskal-u (i od strane servera i od strane pretraživača).
  • VDSibil – Vizuelno razvojno okruženje i Paskal kompajler za Vin32 i OS / 2
  • PP Kompajler, kompajler za Palm OS koji radi direktno na ručnom računaru.
  • CDC 6000 Paskal kompajler Arhivirano na sajtu Wayback Machine (27. april 2010) je izvorni kod za prvi (CDC 6000) Paskal kompajler.
  • Paskal-S Arhivirano na sajtu Wayback Machine (15. oktobar 2017)[19]
  • AmigaPaskal je besplatan Paskal kompajler za računar Amiga.

Veoma detaljna lista može se naći na Paskalendu. Sajt je na francuskom, ali u osnovi je lista sa URL-ovima za kompajlere. Stranica, Paskal Central Arhivirano na sajtu Wayback Machine (10. mart 2010), sadrži informacije o Paskal-u sa Mek-om i bogatu kolekciju arhiva sa člancima, plus linkove za mnoge kompajlere i tutorijale koji takođe mogu biti veoma korisni.

Integrisana razvojna okruženja (IDE)[uredi | uredi izvor]

Biblioteke[uredi | uredi izvor]

  • WOL Biblioteke za kreiranje GUI aplikacija pomoću Free Paskal Kompajlera.

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ Milan Čabarkapa (2008), ‘’Računarstvo i informatika za 3. razred gimnazije”, Beograd. str. 1.
  2. ^ Hertzfeld, Andy. "Hungarian folklore.org: Macintosh Stories. Pristupljeno 06.02.2012.
  3. ^ Računari i računarstvo. Lična perspektiva. Niklausa Virta by Niklaus Wirth
  4. ^ "An Interview with JOHN BRACKETT AND DOUG ROSS"[mrtva veza], p15, Charles Babbage Institute, 2004
  5. ^ "AUSTRALIAN ATOMIC ENERGY COMMISSION RESEARCH ESTABLISHMENT, LUCAS HEIGHTS, NUCLEAR SCIENCE AND TECHNOLOGY BRANCH REPORT 1977, DIVISIONAL RESEARCH", pp. 22, International Atomic Energy Agency (IEAE)
  6. ^ Jon Udell, Crash of the Object-Oriented Pascals, BYTE, Jul, 1989.
  7. ^ M.I.Trofimov, The End of Pascal?, BYTE, Mart, 1990, pp. 36.
  8. ^ Rall, L.B. (1987). „An introduction to the scientific computing language Pascal-SC”. Computers. 14: 53—69. doi:10.1016/0898-1221(87)90181-7. 
  9. ^ PI (29. 08. 1986). „Cadmus jetzt mit Kulisch-Arithmetik - Uni Karlsruhe gibt Pascal-Compiler nach München” [Cadmus now comes with Kulisch arithmetic - University Karlsruhe delivers Pascal compiler to Munich]. Computerwoche (na jeziku: German). Munich / Karlsruhe, Germany: IDG Business Media GmbH. Arhivirano iz originala 30. 05. 2016. g. Pristupljeno 30. 05. 2016. 
  10. ^ „PASCAL-XSC: PASCAL for Extended Scientific Computing”. Arhivirano iz originala 05. 01. 2014. g. Pristupljeno 28. 11. 2017. 
  11. ^ „XSC Software”. Arhivirano iz originala 01. 11. 2015. g. Pristupljeno 11. 08. 2015. 
  12. ^ „Universitaet Wuppertal: Wissenschaftliches Rechnen / Softwaretechnologie”. Pristupljeno 11. 08. 2015. 
  13. ^ Bamberger, Lothar; Davenport, James H.; Fischer, Hans-Christoph; Kok, Jan; Schumacher, Günter; Ullrich, Christian; Wallis, Peter J. L.; Winter, Dik T.; Wolff von Gudenberg, Jürgen (1990). Wallis, Peter J. L., ur. Improving Floating-Point Programming (1st izd.). Bath, United Kingdom: John Wiley & Sons Ltd. ISBN 978-0-471-92437-1. 
  14. ^ Michel Gien, "The SOL Operating System", in Usenix Summer '83 Conference, Toronto, ON, (July 1983). str. 75-78
  15. ^ „cs.berkeley.edu” (PDF). Arhivirano iz originala (PDF) 07. 02. 2015. g. Pristupljeno 28. 11. 2017. 
  16. ^ Smart Mobile Studio | About | Smart Mobile StudioAbout - Smart Mobile Studio
  17. ^ J. Welsh, W. J. Sneeringer, and C. A. R. Hoare, "Ambiguities and Insecurities in Pascal", Software Practice and Experience 7. str. 685–696 (1977)
  18. ^ „Flock-JSCodeGenDemo.7z - dwscript - "Flock" DWScript / JavaScript CodeGen demo - Delphi Web Script general purpose scripting engine - Google Project Hosting”. Pristupljeno 11. 08. 2015. 
  19. ^ "Pascal-S: A Subset and Its Implementation", N. Wirth in Pascal – The Language and Its Implementation, by D.W. Barron, Wiley 1979.

Literatura[uredi | uredi izvor]

  • Bamberger, Lothar; Davenport, James H.; Fischer, Hans-Christoph; Kok, Jan; Schumacher, Günter; Ullrich, Christian; Wallis, Peter J. L.; Winter, Dik T.; Wolff von Gudenberg, Jürgen (1990). Wallis, Peter J. L., ur. Improving Floating-Point Programming (1st izd.). Bath, United Kingdom: John Wiley & Sons Ltd. ISBN 978-0-471-92437-1. 
  • Milan Čabarkapa, Osnovi programiranja u Paskalu (knjiga 1), Krug, u Beogradu 2001.

Dodatna literatura[uredi | uredi izvor]

  • Niklaus Wirth: The Programming Language Pascal. 35–63, Acta Informatica, Volume 1, 1971.
  • C. A. R. Hoare: Notes on data structuring. In O-J Dahl, E W Dijkstra and C A R Hoare, editors, Structured Programming, pages 83–174. Academic Press, 1972.
  • C. A. R. Hoare, Niklaus Wirth: An Axiomatic Definition of the Programming Language Pascal. 335–355, Acta Informatica, Volume 2, 1973.
  • Jensen, Kathleen; Wirth, Niklaus (1991). Pascal User Manual and Report: ISO Pascal Standard. Springer. ISBN 978-0-387-97649-5. 
  • Niklaus Wirth: Algorithms + Data Structures = Programs. Prentice-Hall. . 1975. ISBN 978-0-13-022418-7.  Nedostaje ili je prazan parametar |title= (pomoć).
  • Niklaus Wirth: An assessment of the programming language PASCAL. 23–30 ACM SIGPLAN Notices Volume 10, Issue 6, June 1975.
  • N. Wirth, and A. I. Wasserman, ed: Programming Language Design. IEEE Computer Society Press, 1980
  • D. W. Barron (Ed.): Pascal – The Language and its Implementation. John Wiley. Barron, D. W. (1981). PASCAL-The Language and Its Implementation. Wiley. ISBN 978-0-471-27835-1. 
  • Peter Grogono: Programming in Pascal, Revised Edition, Addison-Wesley, 1980
  • Richard S. Forsyth: Pascal in Work and Play, Chapman and Hall, 1982
  • N. Wirth, M. Broy, ed, and E. Denert, ed: Pascal and its Successors in Software Pioneers: Contributions to Software Engineering. Springer-Verlag. Broy, M. (2002). Software Pioneers: Contributions to Software Engineering. Springer. ISBN 978-3-540-43081-0. 
  • N. Wirth: Recollections about the Development of Pascal. ACM SIGPLAN Notices, Volume 28, No 3, March 1993.

Spoljašnje veze[uredi | uredi izvor]