COBOL

S Vikipedije, slobodne enciklopedije
COBOL
Pojavio se1959. god.; pre 65 godina (1959)
Autor(i)Hauvard Bromberg, Hauvard Diskont, Vernon Rivs, Žan E. Samet, Viljam Selden, Gertruda Tjerni
Dizajner(i)CODASYL, ANSI, ISO
Aktuelna verzijaISO/IEC 1989:2014 / 2014
Sistem tipovastatički, jaki, sigurni, nominalni
Implementacijebiznis i finansijske aplikacije
UticajiAIMACO, C++, COMTRAN, Eiffel, FACT, FLOW-MATIC, Smalltalk
Uticao naCobolScript,[1] PL/I[2] PL/B

COBOL (izgovor: /ˈkoʊbɒl/; transkr. kobol) je jedan od najstarijih viših programskih jezika koji su u današnjoj upotrebi. Ime mu je izvedeno kao akronim od engl. COmmon Business-Oriented Language, što je definisano njegovim primenama — uglavnom služi za pisanje biznis i finansijskih aplikacija i kao podrška administrativnim sistemima u kompanijama i vladama. Najnovija specifikacija, COBOL 2002, sadrži mehanizme objektno-orijentisanog programiranja i mnoge druge moderne mogućnosti.[3] Prvobitno se koristio u poslovnim, finansijskim i administrativnim sistemima za kompanije i vlade. Još uvek ima široku upotrebu u nasleđenim aplikacijama razvijenim na velikim glavnim računarima kao što su, aplikacije za obradu velikih razmera i transakcija. Ali zbog smanjene popularnosti i penzionisanja iskusnih COBOL programera, programi migriraju na nove platforme, prepisani na savremene jezike, ili bivaju zamenjeni softverskim paketima.[4] Većina programa u COBOL-u sada postoji samo radi održavanja postojećih aplikacija.

COBOL je dizajniran 1959. godine od strane CODASYL i delimično se bazirao na prethodnom programskom jeziku koji je dizajnirala Grejs Hoper, poznatija kao „COBOL-ova baba“.[5][6][7] Napravljen je kao rezultat rada Ministarstva odbrane na stvaranju prenosivog programskog jezika za obradu podataka.[8] Standardizovan je 1968. godine i od tada je prerađivan četiri puta. Proširenja uknjučuju podršku za strukturalno i objektno-orijentisano programiranje. Trenutni standard je ISO/IEC 1989:2014.[9]

Istorija[uredi | uredi izvor]

U kasnim 1950-im, korisnici i proizvođači računara postali su zabrinuti zbog porasta troškova programiranja. Istraživanja iz 1959. godine su otkrila da u bilo kojoj instalaciji za obradu podataka, programiranje košta 800,00 $ u proseku i da će programi za prevođenje na novi hardver koštati 600,00$. U vreme kada se broj novih programskih jezika povećava sa sve većom stopom, ista istraživanja (ankete) sugerišu da bi, ukoliko bi se koristio zajednički poslovni jezik, konverzija bila daleko jeftinija i brža.

Aprila 1959. godine Meri K. Hajvs je pozvala predstavnike akademije, korisnike i proizvođače računara na Univerzitet u Pensilvaniji kako bi organizovali zvanični sastanak na temu zajedničkih poslovnih jezika.[10] Predstavnici su pozvali Grace Hopper, izumiteljku flow-matic-a, Žan Samet i Saul Gorn. Grupa je zatražila od Ministarstva odbrane da sponzoriše stvaranje zajedničkog poslovnog jezika. Delegacija je impresionirala Čarlsa A. Filipsa, direktora odeljenja za istraživanje sistema podataka pri Ministarstvu odbrane, koji je smatrao da su oni detaljno proučili probleme Ministarstva odbrane. Ministarstvo je imalo u upotrebi 225 računara, i još dodatnih 175 bilo je naručeno i čekala se isporuka, a potrošeno je 200 miliona dolara na implementacije programa.

Prenosivi programi bi uštedeli vreme, smanjili troškove i olakšali modernizaciju. Filips se složio da sponzoriše sastanak i zadao delegaciji da izradi dnevni red.

Standardi[uredi | uredi izvor]

COBOL 60[uredi | uredi izvor]

U Pentagonu je, 28. i 29. maja 1959. godine, održan sastanak na kojem se raspravljalo o stvaranju zajedničkog programskog jezika za biznis. Prisustvovala je 41 osoba, a predsedavao je Filips.[11] Ministarstvo odbrane je bilo zabrinuto oko toga da li će rezultati programa obrade podataka biti isti na različitim računarima. FORTRAN, jedini „mainstream“ jezik u to vreme, nije imao mogućnost za pisanje takvih programa.

Predstavnici su sa entuzijazmom opisali jezik koji bi mogao raditi u raznim okruženjima, od bankarstva i osiguranja do komunalnih usluga i kontrole inventara. Jednoglasno su se složili da bi više ljudi trebalo da bude u mogućnosti da programira i da novi jezik ne bi trebalo ograničiti granicama savremene tehnologije. Većina se složila da bi jezik trebalo maksimalno da koristi engleski jezik, da bude sposoban za promene, nezavistan od mašina i jednostavan za korišćenje, čak i po cenu moći.

Sastanak je rezultirao stvaranjem Upravnog odbora kao i odbora za kratki, srednji i dugi niz godina. Komitet za kratki opseg je dobio rok do septembra (tri meseca) da daju specifikacije za privremeni jezik, koji bi zatim unapredili ostali komiteti. Njihova zvanična misija bila je da identifikuju snage i slabosti postojećih programskih jezika.

Upravni odbor se sastao 4. juna i složio da imenuju čitavu aktivnost kao Odbor za jezike podataka, ili CODASYL i formira izvršni odbor.} Komitet kratkog odbora sastojao se od članova predstavnika šest proizvođača računara i tri vladine agencije. Šest proizvođača računara su Burroughs Corporation, IBM, Minneapolis-Honeywell (Honeywell Labs), RCA, Sperry Rand i Sylvania Electric Products. Tri vladine agencije bile su Američko ratno vazduhoplovstvo, Navy’s David Taylor Model Basin i Nattional Bureau of Standards (sada National Institute of Standards and Technology). Odborom je predsedavao Džozef Vegstajn iz Nacionalnog biroa za standarde SAD. Rad je započeo istraživanjem opisa podataka, izjava, postojećih aplikacija i korisničkih iskustava. Komitet je uglavnom ispitivao FLOW-MATIC, AIMACO, COMTRAN programske jezike. Glavni doprinos FLOW-MATIC-a COBOL-u su duga imena promenljivih, engleske reči za naredbe i odvajanje podataka i uputstava. IBM-ov COMTRAN jezik, koji je izumeo Bob Bemer, je smatran konkurentom FLOW MATIC. Neke od njegovih karakteristika nisu bile uključene u COBOL, tako da ne bi izgledalo da IBM dominira dizajnom. Nakon što je Roj Goldfinger, autor priručnika COMTRAN i član komisije srednjeg ranga prisustvovao sastanku podkomiteta kako bi podržao njegov jezik i ohrabrio upotrebu algebarskih izraza, Grejs Hoper je poslala dopis odboru kratkog dometa potencirajući na naporima koje je ulagao Sperry Rand da stvori jezik zasnovan na engleskom.

Karakteristike iz COMTRAN-a koje je sadržao COBOL su uključivale formule, klauzulu PICTURE, i poboljšale IF izjavu, što je otklonilo potrebu za GO TO naredbom i robusnijim sistemom upravljanja datotekama.

Dok su neki članovi mislili da jezik ima previše kompromisa, drugi su smatrali da je bolji od sva tri ispitana jezika. Neki smatraju da je jezik suviše složen, a drugi da je suviše jednostavan. Karakteristike koje uključuju Bulovske izraze, formule i tabele indeksa su neki smatrali beskorisnim ili suviše naprednim za korisnike. Malo pažnje je posvećeno interaktivnosti, interakciji sa operativnim sistemima (nekoliko njih je postojalo u to vreme ) i funkcije.

Specifikacije su predstavljene Izvršnom odboru 4. septembra. Jozef Vegstajn je napomenuo da on sadrži grube mrlje i da zahteva neke izmene. Podkomitetu je dato da ga do Decembra poprave.

Na sastanku, sredinom Septembra, komitet je razmatrao ime novog jezika. Neki od predloga bili su “BUSY” (Business System), ”INFOSYL” (Information System Language),i “COCOSYL” (Common Computer System Language). Ime COBOL je predložio Bob Bemer.[12][13]

U oktobru je komitet srednjeg ranga dobio kopije specifikacija jezika FACT koji je stvorio Roj Nut. Njegove karakteristike su imresionirale komisiju, pa su doneli odluku da COBOL baziraju na njoj. To je bio udarac za odbor kratkog dometa, koji je značajno napredovao u pogledu specifikacije. Uprkos tome što je tehnički superioran, FACT nije stvoren sa mogućnosti prenosivosti . Predstavnik RCA, Hauvard Bomberg je takođe blokirao FACT, tako da rad RCA na implementaciji COBOL-a ne bi bio uzaludan.

Uskoro je postalo očigledno da je odbor bio suviše veliki da bi se ubrzo učinio bilo kakav napredak.[14] Formiran je pododbor da bi analizirao postojeće jezike i bio je sastavljen od šest pojedinaca:

   • Вилјам Селден  и Гертруда Тјерни, IBM,
   • Хаувард Бромберг и  Хаувард Дисконт, RCA,
   • Вернон Ривс и  Жан Е. Самет Sylvania Electric Products

Pododbor je većinu posla posvetio izradi specifikacija, ostavljajući komisiji kratkog dometa da preispita i modifikuje svoj rad pre izrade završne specifikacije.

Specifikacije su odobrene od strane Izvršnog odbora 3. januara 1960. Godine i poslate vladinoj štampariji koja ih je štampala kao COBOL 60. Navedeni ciljevi jezika su bili da omoguće lako pisanje prenosivih programa, kako bi se korisnicima omogućilo da ih prenose na nove sisteme uz minimalne napore i troškove, i da budu pogodni za neiskusne programere. Izvršni odbor CODASYL je kasnije stvorio COBOL sektor za održavanje, kako bi odgovorio na pitanja korisnika i proizvođača i poboljšao i proširio specifikacije. Tokom 60-ih porasla je lista proizvođača koji planiraju izradu kompilatora COBOL. Do Septembra još pet proizvođača se pridružilo CODASYL (Bendix, Control Data Corporation, General Electric (GE), National Cash Register Philco) i svi predstavljeni proizvođači su najavili kompilaciju COBOL-a. GE i IBM planiraju da integrišu COBOL na svoje jezike, GECOM i COMTRAN, respektivno. Nasuprot tome, Internacional Computer and Tabulators planiraju da zamene svoj jezik, CODEL sa COBOL-om.

U međuvremenu, RCA i Sperry Rand su radili na stvaranju kompilatora COBOL-a. Prvi COBOL program pokrenut je 17. avgusta na RCA 501. Isti COBOL program (sa manjim izmenama) je 6. I 7. decembra pokrenut na RCA računaru i Remington-Rand Univac računaru, dokazujući da se kompatibilnost može postići.

Uticaji na to koja će se verzija jezika koristiti i dan danas se nastavlja kroz preporučene savete u svim štampanim priručnicima za COBOL.

COBOL je industrijski jezik i nije vlasništvo bilo koje kompanije ili grupe kompanija, niti bilo koje organizacije ili grupe organizacija. Nijedna saradnica ili odbor CODASYL COBOL-a ne daje nikakvu garanciju, u pogledu tačnosti i funkcionalnosti programskog sistema i jezika. Osim toga, odgovornost ne preuzima ni doprinosilac niti odbor. Autori i nosioci autorskih prava za zaštićeni materijal koji se ovde koriste su sledeći:

   • FLOW-MATIC (Unisys Corporation), програмирање UNIVAC (R) I и II, систем за аутоматизацију података, заштићен ауторским правима 1958. 1959. Од стране  Unisys Corporation;
   • IBM Commercial Translator Form No. F28-8013, заштићен ауторским правима  1959. од стране  IBM;
   • FACT, DSI 27A5260-2760, заштићен ауторским правима  1960. Од стране  Minneapolis-Honeywell

Posebno su ovlastili upotrebu ovog materijala, u celosti ili delimično, u COBOL specifikacijama. Takvo odobrenje proširuje se na reprodukciju i upotrebu COBOL specifikacija u priručnicima za programiranje ili sličnim publikacijama.[15]

COBOL-61 do COBOL-65[uredi | uredi izvor]

Pronađeni su mnogi logički nedostaci u COBOL-u 60, Čarls Kac vođa Dženeral elektrika je upozorio da se to ne može nedvosmisleno tumačiti. Nevoljna kratkoročna komisija izvršila je potpuno čišćenje i od Marta 1963. godine prijavljeno je da je COBOL-ova sintaksa definisana kao ALGOL-ova, iako semantičke nejasnoće ostaju.

Rani kompilatori COBOL-a su primitivni i spori. US Navy Evaluation je 1962. godine pronašla kompilacioniu brzinu od 3-11 izjava u minuti. Do sredine 1964. godine povećali su na 11-1000 izjava u minuti. Bilo je primećeno da povećavanje memorije, drastično povećava brzinu i da su troškovi kompilacije različiti.

Kasne 1962. godine, IBM je objavio da će COBOL biti njihov primarni razvojni jezik i da će prestati sa razvojem COMTRAN-a.

Specifikacija COBOL-a revidirana je tri puta za pet godina. COBOL-60 zamenjen je COBOL-om -61 1961. godine. Onda je specifikacija COBOL-a -61 proširena 1963. godine, koja je uvela objekte za sortiranje i izvršavanje. COBOL izdanje 1965. godine donelo je dodatna pojašnjenja specifikacijama i uvedene su mogućnosti za rukovanje datotekama i tabelama.

COBOL -68[uredi | uredi izvor]

Počelo je da se radi na standardizaciji COBOL-a koja će prevazići neusklađenosti između verzija. Krajem 1962. godine ISO i Institut za standarde Sjedinjenih Američkih Država (sada ANSI) su formirali grupe za kreiranje standarda. ANSI je proizvela USA Standard COBOLX3.23 u Avgustu 1968, koji je postao kamen temeljac za kasnije verzije. Ova verzija je poznata kao Američki nacionalni standard (ANS) COBOL i usvojen je od strane ISO 1972. godine.[16]

Zdravo, svete[uredi | uredi izvor]

Poznati program Hello World u COBOL-u izgleda slično kao i u ostalim jezicima proceduralne paradigme:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO-WORLD.
       PROCEDURE DIVISION.
       MAIN.
           DISPLAY 'Zdravo, svete!'.
           STOP RUN.

Sintaksa[uredi | uredi izvor]

COBOL ima sintaksu sličnu engleskom jeziku kojom se definiše skoro sve u programima koji se u njemu pišu, na primer isti uslovi se mogu pisati na sledeće načine:

x IS GREATER THAN yx GREATER yx > y

Kompleksniji uslovi se mogu skratiti izbacivanjem ponovljenih uslova i promenljivih, na primer a > b AND a > c OR a = d se može zapisati kao a > b AND c OR = d. Kao posledica ovakve sintakse, COBOL ima više od 300 ključnih (rezervisanih) reči. Neke verzije su imale čak i 1100 ključnih reči.[17] Mnoge ključne reči se imaju svoje ekvivalentne parove sa kojima se mogu naizmenično pisati u programima kao IN i OF jer na engleskom jeziku imaju isto značenje, takođe neke od njih imaju i svoje oblike u množini kao IS i ARE ili VALUE i VALUES.

Svaki program u Kobolu se sastoji sadrži literale, slikovni karakter-stringovi, stringove i separatore.Reči predstavljaju ključne reči ili korisnički-definisani identifikatori koji se sastoje od do 31-og karaktera koji mogu biti slova, brojevi, crtive ili donje crte. Literali su ili brojevi ili slovne reči, a pod separatorima se podrazumevaju razmaci, tačke, tačka-zarez...

Programi u Kobolu se dele na 4 divizije:

   • идентификациона дивизија
   • дивизија окружења
   • дивизија података
   • процедурална дивизија

U identifikacionoj diviziji se navodi ime i tip izvornog elementa, tu se navode i klase i interfejsi. U diviziji okruženja se navode osobine programa koje zavise od sistema na kom se pokreće. U diviziji podataka se deklatišu promenljive i parametri. U proceduralnoj diviziji su sadržane naredbe programa. Sve divizije su podeljene u delove koje čine paragrafi.

Tipovi podataka[uredi | uredi izvor]

Tipovi podataka u standardnom COBOL-u su prikazani u sledećoj tabeli.[18]

Tip Deklaracija O tipu
Alfabetski PIC A(30) Sadrži slova i beline
Alfanumerički PIC X(30) Može sadržati bilo koje karaktere
Bulovski PIC 1 USAGE BIT Podaci sačuvani u obliku nula i jedinica kao binaran broj
Indeksni USAGE INDEX Koriste se za pristup elementima tabela
Nacionalni PIC N(30) Sličan alfanumeričkom, ali koristi proširen skup karaktera ( UTF-8 )
Numerički PIC 9(5)V9(5) Sadrži samo brojeve
Objektni USAGE OBJECT REFERENCE Može se odnositi na objekte ili NULL
Pokazivački USAGE POINTER

COBOL 2002 (objektno-orijentisani COBOL)[uredi | uredi izvor]

Godine 1997, Gartner grupa je procenila da postoji 200 milijardi linija COBOL-a, što čini 80% svih poslovnih jezika.[19] Početkom 1990-ih počeo je razvoj objektnog-orijentisanja u novoj verziji COBOL-a. Osobine objektnog-orijentisanja preuzete su iz C++-a i Smalltalk-a. Inicijalne procene su bile da će revizija i nacrt komiteta ISO biti gotovi do 1997. godine. Pojedini prodavci (Micro Focus, Fujitsu, IBM) su predstavili sintaksu objektno-orijentisanog programiranja na osnovu nacrta potpune revizije. Krajnji ISO standard je odobren i objavljen krajem 2002. godine. Kompanije Fujitsu/GT Software, Micro Focus i RainCode predstavili su objektno-orijentisane COBOL kompajlere koristeći .NET Framework.

Bilo je još dosta novih karakteristika, od kojih su se mnoge nalazile u CODASYL COBOL-u Journal of Development još od 1978. godine i nisu bile uključene u COBOL -85.[20]

Neke od njih su:

   • Слободна форма кода
   • Могућност корисничких функција
   • Рекурзија
   • Локална обрада података
   • Подршка за сет додатних карактера као што је UNICODE
   • Типови података са покретним зарезом и бинарни
   • Портабилни аритметички резултати
   • Bit, Boolean тип података
   • Показивачи и синтакса за добијање и ослобађање меморијског простора
   • Део екрана за кориснички интерфејс  базиран на тексту
   • Побољшана компатибилност са другим програмским језицима и фрејмворк окружења као што су .NET  и Java

Izvori[uredi | uredi izvor]

  1. ^ Imajo, Tetsuji; et al. (septembar 2000). COBOL Script: a business-oriented scripting language. Enterprise Distributed Object Computing Conference. Makuhari, Japan: IEEE. ISBN 978-0-7695-0865-8. doi:10.1109/EDOC.2000.882363. [Pretplata neophodna (pomoć)]. 
  2. ^ Radin, George (1978). Wexelblat, Richard L., ur. The early history and characteristics of PL/I. History of Programming Languages. Academic Press (objavljeno 1981). str. 572. ISBN 978-0-12-745040-7. doi:10.1145/800025.1198410. [Pretplata neophodna (pomoć)]. 
  3. ^ Komitet za standarde Kobol-a Arhivirano na sajtu Wayback Machine (31. mart 2004) (jezik: engleski)
  4. ^ Mitchell, Robert L. (14. 3. 2012). „Brain drain: Where Cobol systems go from here”. Computerworld. Pristupljeno 9. 2. 2015. 
  5. ^ Porter Adams, Vicki (5. 10. 1981). „Captain Grace M. Hopper: the Mother of COBOL”. InfoWorld. 3 (20): 33. ISSN 0199-6649. 
  6. ^ Betts, Mitch (6. 1. 1992). „Grace Hopper, mother of Cobol, dies”. Computerworld. 26 (1): 14. ISSN 0010-4841. 
  7. ^ Lohr, Steve (2008). Go To: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Maverick Scientists, and Iconoclasts--The Programmers Who Created the Software Revolution. Basic Books. str. 52. ISBN 978-0786730766. 
  8. ^ Ensmenger, Nathan L. (2009). The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise. MIT Press. str. 100. ISBN 978-0262050937. LCCN 2009052638. 
  9. ^ „ISO/IEC 1989:2014”. ISO. 2014. Pristupljeno 7. 6. 2014. 
  10. ^ Gürer, Denise (1. 6. 2002). „Pioneering Women in Computer Science”. SIGCSE Bull. 34 (2): 175—180. ISSN 0097-8418. doi:10.1145/543812.543853. 
  11. ^ „Early Meetings of the Conference on Data Systems Languages”. IEEE Annals of the History of Computing. 7 (4): 316. 1985. doi:10.1109/MAHC.1985.10047. [Pretplata neophodna (pomoć)]. 
  12. ^ Sullivan, Patricia (25. 6. 2004). „Computer Pioneer Bob Bemer, 84”. The Washington Post. str. B06. Pristupljeno 28. 6. 2014. 
  13. ^ Bemer, Bob. „Thoughts on the Past and Future”. Arhivirano iz originala 16. 5. 2014. g. Pristupljeno 28. 6. 2014. 
  14. ^ „COBOL Tombstone”. Computer History Museum. Pristupljeno 29. 6. 2014. 
  15. ^ Compaq Computer Corporation: Compaq COBOL Reference Manual, Order Number: AA–Q2G0F–TK October 2000, Page xviii; Fujitsu Corporation: Net Cobol Language Reference, Version 15, January 2009; IBM Corporation: Enterprise COBOL for z/OS Language Reference, Version 4 Release 1, SC23-8528-00, December 2007
  16. ^ Follet, Robert H.; Sammet, Jean E. (2003). Ralston, Anthony; Reilly, Edwin D.; Hemmendinger, David, ur. Programming language standards. Encyclopedia of Computer Science (4th izd.). Wiley. str. 1467. ISBN 978-0-470-86412-8. [Pretplata neophodna (pomoć)]. 
  17. ^ „Reserved Words Table”. Micro Focus Visual COBOL 2.2 COBOL Language Reference. Micro Focus. Pristupljeno 3. 3. 2014. 
  18. ^ ISO/IEC JTC 1/SC 22/WG 4 2014, § 8.5.2.
  19. ^ Robinson, Brian (9. 7. 2009). „Cobol remains old standby at agencies despite showing its age”. FCW. Public Sector Media Group. Arhivirano iz originala 27. 04. 2014. g. Pristupljeno 26. 4. 2014. 
  20. ^ „A list of Codasyl Cobol features”. Computerworld. 10. 9. 1984. str. ID/28. ISSN 0010-4841. Pristupljeno 8. 6. 2014. 

Literatura[uredi | uredi izvor]

Vidi još[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]