Pascal (programski jezik)

Iz Wikipedije, slobodne enciklopedije
Idi na navigaciju Idi na pretragu

Pascal je programski jezik nastao na ETH Zürich institutu 1970. godine. Dizajnirao ga je Niklaus Wirth, švicarski računalni znanstvenik, i imenovao prema francuskom filozofu, fizičaru i matematičaru, Blaiseu Pascalu, koji je 1641. izumio mehanički kalkulator.

Pascal je imperativni i proceduralni programski jezik, smišljen s namjerom da omogući i popularizira strukturirano programiranje, a nastao je po uzoru na stariji jezik ALGOL, nakon pokušaja da se isti izmijeni i poboljša. Veliku popularnost stekao je tokom 70-ih i 80-ih godina 20. stoljeća, zahvaljujući svojoj zastupljenosti kao jezika na kojem se podučavalo programiranje na sveučilištima.

Kasnija izvedba jezika, Object Pascal, proširuje struktuiriranu imperativnu paradigmu, omogućujući pored proceduralnoga i objektno-orijentirano programiranje.

Povijest[uredi - уреди | uredi izvor]

Rani razvoj[uredi - уреди | uredi izvor]

Niklaus Wirth je sudjelovao u projektu ALGOL X, čija je svrha bila poboljšanje i standardizacija jezika ALGOL 60. Nakon što je njegov prijedlog izmjena pod nazivom ALGOL W odbijen 1968. godine, Wirth napušta projekt i dizajnira novi programski jezik koji dovršava 1970. Rad na Algolu i Pascalu poduzet je radi savladavanja poteškoća koje su se javljale programiranjem u dotadašnjim programskim jezicima (FORTRAN, COBOL, ALGOL i BASIC), zbog njihove strogo sekvencijalne i nestrukturirane naravi; postojala je potreba za malim i laganim programskim jezikom za učenje u školama i na sveučilištima koji bi omogućivao strukturirano programiranje, za razliku od BASIC-a koji je isto tako smišljen kao edukativni programski jezik, jer se FORTRAN pokazao kao vrlo težak studentima za učenje.

Prva specifikacija programskoga jezika Pascala objavljena je 1971, sledeća revizija napravljena je 1973. Već od 1972. Pascal se počinje izučavati na sveučilištima kao jezik prikladan za uvod u programiranje.[1] Prvobitna standardizacija jezika dogodila se 1983. (ISO 7185:1983).

Pascal uvodi paradigmu strukturiranoga i proceduralnoga programiranja, što znači da se programski kod razlaže na samostalne strukture - podatke i podprograme, koji se ne izvršavaju nužno u istom redoslijedu kako su i navedeni, niti je potrebno numeriranje redaka kao u sekvencijalnim programskim jezicima (BASIC, ranije specifikacije Fortrana itd), nego se po potrebi pozivaju i izvode. Uvođenjem podprograma izbjegava se nužnost da program sekvencijalno, to jest redoslijedno izvrši sve blokove koda dok ne dođe do naredbe koja označava kraj programa ili bezuvjetni skok (GoTo), što može uzrokovati probleme pri pisanju ili revidiranju ozbiljnijih programa, jer je korištenje goto naredbe vodilo do nepregledna i nečitljiva koda s jedne strane (fenomen nazvan Špageti-kod), s druge strane zahtijevalo učitavanje čitava programa u memoriju, umjesto pozivanja pojedinačnih procedura prema potrebi.

U isto vrijeme (1972.) Amerikanac Dennis Ritchie razvija programski jezik C zasnovan na istoj proceduralnoj filozofiji kao i Pascal, koji je za razliku od prvobitnoga Pascala, podržavao i osnovne tipove podataka kao što su realni brojevi dvostruke preciznosti (double). Kao što je programski jezik C poslužio Kenu Thompsonu i Dennisu Ritchieju za programiranje UNIX-a sedamdesetih godina, tako je UCSD izvedba Pascala korištena na University of California u San Diegu za pisanje p-Systema, prvoga virtualnoga stroja.[2] p-System se moglo prenijeti na veliki broj tadašnjih računala zahvaljujući činjenici da je trebalo samo isprogramirati module specifične za hardver računala. Program preveden na nekom p-stroju pomoću UCSD Pascal prevoditelja može se izvršavati na svakom računalu koje ima p-System.

Sedamdesetih godina Pascal stiče veliku popularnost jer se puno koristi za aplikacijsko i sistemsko programiranje. Operacijski sistemi za Apple računala Lisa i Macintosh s kraja sedamdesetih i početka osamdesetih bili su programirani u Pascalu,[3] zbog čega pisanje programa u C-u za navedene sisteme nije imalo puno smisla, jer su programi morali biti pisani tako da rade s tipovima podataka koje podržava standardni Pascal kao i API Apple OS-a. Prvobitni Object Pascal je najprije nastao u tvrtki Apple Computers, gdje je služio za sistemsko i aplikacijsko programiranje. Kasnije je Object Pascal proširen, nadopunjen i populariziran u Borlandu, kroz komercijalne verzije jezika Turbo Pascal i Delphi.

Do 1980-ih Pascal je izučavan na većini sveučilišta i fakulteta informatičkoga usmjerenja u svijetu.[4]

Borlandov Pascal[uredi - уреди | uredi izvor]

Godine 1983. pojavljuje se Turbo Pascal tvrtke Borland, prvo integrirano razvojno okruženje (IDE) za sisteme CP/M i DOS.[5] Turbo Pascal objedinjuje sve funkcije ciklusa razvoja softvera u jedan cjelovit program (pisanje koda, kompilacija, linkovanje, ispravljanje grešaka). To je doprinijelo još većoj popularizaciji Pascala u softverskoj industriji, jer su programeri do tad morali pokretati zasebno nekoliko različitih programa (editor, kompilator, linker) da bi dovršili konačan program. IDE Turbo Pascal je mnogo korišten, kako zbog mogućnosti velike uštede vremena pri razvoju softvera, tako i zbog svoje povoljne cijene i "knjižne licence" koja je omogućivala kupovinu samo jedne kopije proizvoda bez obzira na broj instalacija. Osim Turbo Pascala, Borland je prodavao i skuplju varijantu IDE-a pod nazivom Borland Pascal koja se od Turbo Pascala neznatno razlikovala po mogućnostima i imala uključen izvorni kod standardnih modula. Vremenom se Turbo Pascal razvija kao zasebna varijanta programskoga jezika i ostaje u širokoj uporabi sve do početka devedesetih, kada Pascal gubi prvenstvo u odnosu na C++ i Javu. Već 1999. Pascal je zamijenjen C-plus-plusom kao standardom na svim američkim sveučilištima.[6]

Od novosti koje uvodi Borland u Turbo Pascal dijalekt značajna je mogućnost dijeljenja koda na odvojene datoteke, takozvane module (unit). Ovaj koncept preuzet je iz Pascalu slična programskoga jezika Modula, odnosno Modula-2[7] (kasnija revizija jezika), za čije je kreiranje također zaslužan Niklaus Wirth, autor prvobitnoga Pascala. Mogućnost je dodana počev s verzijom 4.00 Turbo Pascal IDE-a, a u programski paket sadržavao je i standardnu zbirku modula, spočetka 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, WINDOS.

Posljednja verzija Turbo Pascala izišla je 1993. pod brojem 7.0. Nakon toga, Borland napušta dalji razvoj ovoga proizvoda[8] i umjesto njega 1995. izdaje Delphi za 16-bitni Windows 3x, RAD okružje za Borland Pascal koji se od tad razvija kao poseban programski jezik Delphi. Delphi, kao objektno-orijentirani Pascal osobito 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štenja i vizualnoga sučelja za kreiranje GUI-ja. Od 2006. razvojem Delphija bavi se CodeGear, Borlandova podružnica za razvojne programe ranije poznata kao Borland Developers Tool Group (DTG).[9] OpenSource alternativa Delphiju su Free Pascal Compiler i Lazarus IDE.

Sintaksa Pascala[uredi - уреди | uredi izvor]

Osnovni elementi Pascal programa su naredbe ili direktive (engl. statement), koje se mogu sastojati od izraza (ekspresija) i drugih direktiva. Izrazi se sastoje od operatora i operanada. Operandi mogu biti literalne (doslovne) vrijednosti, ili identifikatori. Identifikatori su imena deklariranih varijabli i potprograma (procedura i funkcija).

U direktive spadaju deklaracije (konstanti, varijabli, labela, procedura i funkcija), definicije (tipova podataka), te tri osnovne vrste naredbi za sekvenciju (tok), iteraciju (ponavljanje) i selekciju (izbor).

Po pravilu naredbe moraju završavati znakom točka-zarez (;), osim ako je naredba posljednja u dosegu (bloku, proceduri, funkciji ili programu), u kojem slučaju se može izostaviti, ali je dobra praksa ipak staviti ; iza svake naredbe, zbog eventualnih kasnijih dodavanja novih naredbi. Izuzetak je također posljednja naredba prije ključne riječi else u If-Then-Else konstrukciji, ali u ovom se slučaju može smatrati da je If-Then-Else jedna naredba, posebna vrsta i drugačija od If-Then. Za else naredbu, ako je dio case konstrukcije, ne vrijedi ovaj "izuzetak". Ovo je jedna od karakteristika Pascala koje ga razlikuju od jezika kao što su C i C++, koji zahtijevaju točka-zarez iza svake if-then naredbe, što praktično znači da se else u C/C++ prevodiocima smatra posebnom naredbom, umjesto dijelom jedne strukture If-Then-Else, kao u Pascalu, a točka-tarez služi kao terminator naredbi, umjesto kao separator, što je slučaj u Pascalu.

Blokovi naredbi se zatvaraju između ključnih riječi begin i end, što je još jedna od karakterističnih razlika Pascala u odnosu na jezike C, C++, C#, Java itd, koji koriste vitičaste zagrade { }. Ponekad se u programerskom žargonu ovi jezici nazivaju jezici vitičastih zagrada (engl. curly-brace languages).

Posljednja end naredba u programu završava točkom (.) umjesto točka-zarezom, i to je ujedno naredba zatvaranja bloka glavne procedure programa.

Deklaracije podataka[uredi - уреди | uredi izvor]

Konstante i varijable se deklariraju ključnim riječima const i var.

const
  PROG_NAME = 'Custom Program (C) 2019 by Custom Company';
  MAX_VALUE = 1024;

var
  SomeName: string;
  TheValue: Integer;
  By1, By2: Byte;

Izvedeni tipovi podataka deklariraju se pomoću ključne riječi type i drugih poznatih ili deklariranih tipova podataka. Npr:

type
  TShortString = array [1..128] of Char;

  TPhoneBookEntry = record
    Name: TShortString;
    Address: string;
    Phone: LongInt;
  end;

Naredbe izbora - grananja[uredi - уреди | uredi izvor]

Naredbe za izvršavanje izbora (grananja) toka programa su If-Then, If-Then-Else i Case.

If-Then[uredi - уреди | uredi izvor]

If-Then se koristi za odlučivanje o jednom od mogućih izhoda toka programa na osnovi uslova navedena u izrazu iza ključne riječi if. Ako je uslov ispunjen, izvršava se sledeća naredba ili blok nakon ključne riječi then, a ako nije, programski tok preskače naredbu ili blok iza then direktive, to jest nastavlja s izvršavanjem sledeće naredbe koja nije u sklopu If-Then strukture, ukoliko postoji.

if { izraz } then { naredba };

Za izvršenje višestrukih naredbi koristi se begin { ... } end blok:

if { izraz } then
begin
  { naredba1 };
  { naredba2 };
  { naredba3 };
  { ... }
end;

If-Then-Else[uredi - уреди | uredi izvor]

Za izbor između dvaju mogućih tokova programa koristi se If-Then-Else struktura; prvi tok izvršava se u slučaju da je ispunjen uslov napisan između if (ako) i then (onda), drugi u slučaju da nije, a stoji nakon ključne riječi else (inače):

if { izraz } then { naredba1 } else { naredba2 };

Ovdje vrijedi isto pravilo o zatvaranju blokova višestrukih naredbi između begin { ... } end; direktiva:

if { izraz } then
begin
  { naredba1 };
  { naredba2 };
  { naredba3 };
  { ... }
end { ovdje ne ide ";" }
else
begin
  { naredba4 };
  { naredba5 };
  { naredba6 };
  { ... }
end;

Case[uredi - уреди | uredi izvor]

Case grananje koristi se kao preglednija alternativa za izbor višestrukih izhoda toka programa.

case Varijabla of
  1: { naredba1 };
  2: { naredba2 };
  3: { naredba3 };
  4: { naredba4 };
     { ... etc. }
end; { case }

Naredbe ponavljanja - petlje[uredi - уреди | uredi izvor]

Naredbe ponavljanja su for, while i repeat, a njihova upotreba izgleda ovako:

for Counter := X to Y do { naredba };
while { izraz } do { naredba };
repeat { naredba } until { izraz };

Petlja for izvršava neku naredbu ili blok naredbi točno određen broj puta, a varijabla brojača se navodi kao područje između dviju cjelobrojnih vrijednosti, oddvojenih ključnom riječju to. Petlja while provjerava neki uvjet naveden u izrazu prije izvršavanja naredbe (engl. statement) ili bloka naredbi, za razliku od repeat petlje, koja najprije izvršava naredbu ili blok najmanje jedanput, a zatim provjerava uvjet u izrazu.

Operatori[uredi - уреди | uredi izvor]

Operatori se dijele, s obzirom na to koliko operanda obrađuju, na unarne (jedan operand) i binarne (dva operanda).

Pascal koristi operator := za pridruživanje vrijednosti, nasuprot jezicima kao što su C ili C++, gdje za to služi obični znak jednakosti (=). U Pascalu je znak = relacijski operator za logičke izraze - ekspresije (C/C++ za to upotrebljava dvostruki znak jednakosti, ==). Ova razlika može dovesti do konfuzije i grešaka u programiranju, naročito kod programera s iskustvom u Pascalu koji tek počinju programirati u jezicima C/C++, jer se izraz if (i = 0) (umjesto if (i == 0)) prevodi u C/C++ kompilatorima kao valjan statement.

Slijedi popis operatora u Pascalu.[10]

Aritmetički operatori[uredi - уреди | uredi izvor]

+    : sabiranje;
-    : oduzimanje;
*    : množenje;
/    : dijeljenje;
div  : cjelobrojno dijeljenje;
mod  : ostatak cjelobrojnoga dijeljenja (modulus);

Relacijski operatori[uredi - уреди | uredi izvor]

=    : jednako;
<>   : nejednako;
<    : manje;
<=   : manje ili jednako;
>    : veće;
>=   : veće ili jednako;

Logički operatori[uredi - уреди | uredi izvor]

not  : logička negacija;
and  : logičko i;
or   : logičko ili;
xor  : logičko ili s negacijom;

Operatori bitova[uredi - уреди | uredi izvor]

shl  : lijevo pomjeranje;
shr  : desno pomjeranje;

Ostali operatori[uredi - уреди | uredi izvor]

with : selekcija sloga (record);
in   : pripadnost skupu (set);
:=   : pridruživanje vrijednosti;

Vrste podataka[uredi - уреди | uredi izvor]

Tipovi podataka u Pascalu dijele se na osnovne (skalarne) i strukturirane (izvedene), koji se uglavnom definiraju kao polja i slogovi sastavljeni od osnovnih ili drugih strukturiranih podataka.

Osnovni tipovi[uredi - уреди | uredi izvor]

Skalarne vrste podataka u Pascalu su:

Nadalje, pojedini tipovi podataka se klasificiraju kao ordinarni, što znači da se mogu sortirati prema veličini i manipulirati standardnim funkcijama Pred, Succ, Ord. Od osnovnih tipova podataka, u ordinarne spadaju svi osim Real,[11] jer decimalni broj ne može imati predhodnika ili sljedbenika po veličini.

Strukturirani tipovi[uredi - уреди | uredi izvor]

U strukturirane vrste podataka spadaju:

Posebni tipovi[uredi - уреди | uredi izvor]

Pokazivač je metapodatak koji ukazuje na adresu nekoga podatka u memoriji. Ovisno o tome pokazuju li na specifični tip podatka ili samo na memorijsku lokaciju, pokazivači se dijele na tipizirane i generičke.

Enumeracije[uredi - уреди | uredi izvor]

Enumeracije ili pobrojani tip su izvedeni ordinarni tip podataka. Npr:[12]

type
  TMonth = (January, February, March, April, May, June,
            July, August, September, October, November, December);

Tipovi dosega[uredi - уреди | uredi izvor]

Pascal podržava varijable u određenom dosegu (području, podobsegu) nekoga drugoga ordinarnoga tipa podataka:

var
  SmallNum: 1..128;
  SmallLtr: 'a'..'z';

Moguće je također deklarirati varijablu u dosegu enumeriranoga tipa kojega smo predhodno definirali, pa s obzirom na gornji primjer definicije tipa možemo imati:

var
  Summer: June..August;

Ista se sintaksa za dosege, naravno, može upotrijebiti i za definiranje tipova:

type
  TDay = 1..31;

Setovi[uredi - уреди | uredi izvor]

Jedna od distinktivnih karakteristika Pascala u odnosu na druge programske jezike jest podrška za operacije sa skupovima, odnosno tip podataka set.

var
  SmallNum: set of 1..128;
  SmallLtr: set of 'a'..'z';

Ova vrsta sintaksnoga sladora (engl. sytactic sugar) omogućuje pisanje elegantnijega i konciznijega koda. Provjera pripadnosti elementa (vrijednosti varijable) nekom skupu vrši se pomoću operatora in. Dakle, možemo napisati ovo:

if Number in [1..128] then
  { ... }

... ili još bolje ovo, s obzirom da smo deklarirali SmallNum:

if Number in SmallNum then
  { ... }

... umjesto ovoga:

if (Number > 0) and (Number < 129) then
  { ... }

Ovo je naročito zgodno kad treba izvršiti provjeru pripadnosti u većem broju ne-susjednih područja vrijednosti:

if Number in [1..5, 17, 23, 25..32] then
  { ... }

Potprogrami (funkcije i procedure)[uredi - уреди | uredi izvor]

Pascal razlikuje dvije vrste potprograma, procedure i funkcije. Funkcije za razliku od procedura vraćaju neku vrijednost, pa se prema tipu podataka koji vraćaju razlikuju i tipovi funkcija, što se navodi u deklaraciji. Drugi programski jezici uglavnom sve potprograme nazivaju isto, funkcije, subrutine itd. Naprimjer, u programskom jeziku C, procedura je obična funkcija koja vraća vrijednost void (ništa). Primjeri deklaracija procedure i funkcije, bez definicija:

function FileExists(Name: string): Boolean;
procedure PrintFile(Name: string);

Parametri[uredi - уреди | uredi izvor]

Parametri neke funkcije ili procedure su deklarirane unosne vrijednosti, a deklariraju se u u malim zagradama iza imena funkcije ili procedure, na isti način kao i varijable u var sekcijama programa.

Parametri mogu biti vrijednosni ili varijabilni. Varijabilni parametri mijenjaju vrijednost varijable pristupajući joj direktno (poziv po referenci) umjesto da rade s njezinom kopijom (poziv po vrijednosti), što se specificira ključnom riječju var ispred deklaracije parametra.

procedure CheckIfFileExists(Name: string; var Exists: Boolean);
procedure MergeFiles(File1, File2: string; var NewFile: file);

Za razliku od vrijednosnih parametara, varijabilni parametri ne mogu prihvatiti konstantne vrijednosti (recimo neki broj ili string), nego samo identifikatore varijabli koje mijenjaju. Vrijednosni parametri mogu primati obje vrste argumenata, i doslovne vrijednosti, i imena varijabli.

Standardne procedure i funkcije[uredi - уреди | uredi izvor]

I/O[uredi - уреди | uredi izvor]

Standardne procedure za unos su Read i ReadLn; Read zahtijeva najmanje jedan parametar, naziv varijable čija se vrijednost učitava, dok ReadLn pravi novi redak za svaku učitanu varijablu. Primjer:

var
  Number: LongInt;

begin
  Write('Number? ');
  ReadLn(Number);
  WriteLn('Number: ', Number);
  ReadLn;
end.

Za ispis postoje procedure Write i WriteLn. Razlika između njih je u tome što ova druga ispisuje tekst skupa sa prijelomom reda (linije), odnosno znakom za novi red (CR/LF).

Aritmetičke operacije[uredi - уреди | uredi izvor]

Neke od standardno ugrađenih aritmetičkih funkcija u Pascalu su:

abs  : absolutna vrijednost broja (broj bez predznaka);
exp  : potenciranje;
sqr  : kvadrat;
sqrt : kvadratni korijen;
ln   : prirodni logaritam;
sin  : sinus;
cos  : kosinus;
tan  : tangens;
pred : predhodnik cijeloga broja;
succ : sljedbenik cijeloga broja;
round: zaokruživanje (vraća Integer);
trunc: odbacivanje decimala (vraća Integer);
int  : cijeli dio razlomka (vraća Real);
frac : decimalni dio razlomka (vraća Real);

Programski primjeri[uredi - уреди | uredi izvor]

"Dobar dan!"[uredi - уреди | uredi izvor]

Najjednostavniji program koji ispisuje pozdrav na zaslonu:

program DobarDan;

begin
  WriteLn("Dobar dan!");
  ReadLn;
end;

Fibonaccijevi brojevi[uredi - уреди | uredi izvor]

Program koji ispisuje Fibonaccijev niz:[13]

program fibonacci;

function fib(n:integer): integer;
begin
    if (n <= 2) then
        fib := 1
    else
        fib := fib(n-1) + fib(n-2);
end;

var
    i:integer;

begin
    for i := 1 to 16 do
        write(fib(i), ', ');

    writeln('...');
end.

Faktorijel[uredi - уреди | uredi izvor]

Naredni program računa Faktorijel zadanih brojeva:[14]

program factorial;

function fact(n: integer): real;
begin
    if (n = 0) then
        fact := 1
    else
        fact := n * fact(n - 1);
end;

var
    n: integer;

begin
    for n := 0 to 16 do
        writeln(n, '! = ', fact(n):-1:0);
end.

Varijante i dijalekti Pascala[uredi - уреди | uredi izvor]

  • ISO Pascal - standardni Pascal, prema specifikacijama ISO 7185 :1990. Sve druge implementacije manje ili više proširuju ISO izvedbu.
  • Turbo Pascal - uvodi mnoge nove mogućnosti kojih nema u ISO izvedbi, između ostalih podršku za objektno-orijentirano programiranje u jeziku Object Pascal (počev od verzije Turbo Pascal 5.5).[15]
  • Object Pascal - Objektno orijentirani Pascal, danas zastupljen u dvama dijalektima: Delphi i Free Pascal. Object Pascal prvi put je implementiran na Apple računalima 1985.[16]

Razvojna okruženja za programiranje u Pascalu[uredi - уреди | uredi izvor]

Besplatna[uredi - уреди | uredi izvor]

  • Lazarus IDE - Grafičko sučelje za Free Pascal Compiler (FPC) i vizualno Pascal/Delphi programiranje. Podržava Windows, Linux i MacOS. Lazarus je skoro u podpunosti o API-ju neovisna platforma, tako da se jedanput napisan izvorni kôd može prevoditi na svim sistemima s FPC-om ("Napiši jedanput, kompiliraj svugdje"[17]) [link]
  • MSEide - još jedan Free Pascal IDE, za Linux i Windows, no puno jednostavniji i manji od Lazarusa. [link]
  • Virtual Pascal - Samostalan projekt autora Allana Mertnera i Vitalyja Miryanova od 1995 do 2005. Virtual Pascal je razvojno okruženje za Windows i OS/2 s eksperimentalnom podrškom za Linux. Virtual Pascal Compiler (VPC) može linkovati 32-bitne egzekutivne datoteke za Windows (PE) i OS/2; u podpunosti je kompatibilan s Turbo Pascalom, dok VP IDE editor izgledom imitira Turbo Pascal IDE, pa je zbog svega toga VP svojevrsna prilagodba TP-a s 16-bitnoga DOS-a na 32-bitni Windows. [link] na arhiviranu web stranicu; Softpedia link za preuzimanje posljednje verzije 2.1.279 iz 2004.
  • Pascal Gladiator IDE - IDE za FPC na MacOS platformi; autor Gladiatora Ryan Joseph tvrdi da ga programira za osobnu uporabu i nudi besplatno za download i korištenje kao jednostavniju alternativu XCode editoru na MacOS-u. [link].

Komercijalna[uredi - уреди | uredi izvor]

Navodi[uredi - уреди | uredi izvor]

Vanjske poveznice[uredi - уреди | uredi izvor]

Povijesni dokumenti[uredi - уреди | uredi izvor]

Standardi[uredi - уреди | uredi izvor]

Tutorijali[uredi - уреди | uredi izvor]