програмски језик From Wikipedia, the free encyclopedia
COBOL (изговор: //; транскр. кобол) је један од најстаријих виших програмских језика који су у данашњој употреби. Име му је изведено као акроним од енгл. , што је дефинисано његовим применама — углавном служи за писање бизнис и финансијских апликација и као подршка административним системима у компанијама и владама. Најновија спецификација, 2002, садржи механизме објектно-оријентисаног програмирања и многе друге модерне могућности.[3] Првобитно се користио у пословним, финансијским и административним системима за компаније и владе. Још увек има широку употребу у наслеђеним апликацијама развијеним на великим главним рачунарима као што су, апликације за обраду великих размера и трансакција. Али због смањене популарности и пензионисања искусних COBOL програмера, програми мигрирају на нове платформе, преписани на савремене језике, или бивају замењени софтверским пакетима.[4] Већина програма у -у сада постоји само ради одржавања постојећих апликација.
COBOL | |
---|---|
![]() | |
Појавио се | 1959. |
Аутор(и) | Хаувард Бромберг, Хаувард Дисконт, Вернон Ривс, Жан Е. Самет, Вилјам Селден, Гертруда Тјерни |
Дизајнер(и) | CODASYL, ANSI, ISO |
Актуелна верзија | ISO/IEC 1989:2014 / 2014 |
Систем типова | статички, јаки, сигурни, номинални |
Имплементације | бизнис и финансијске апликације |
Утицаји | AIMACO, C++, COMTRAN, Eiffel, FACT, FLOW-MATIC, Smalltalk |
Утицао на | CobolScript,[1] PL/I[2] PL/B |
је дизајниран 1959. године од стране CODASYL и делимично се базирао на претходном програмском језику који је дизајнирала Грејс Хопер, познатија као „COBOL-ова баба“.[5][6][7] Направљен је као резултат рада Министарства одбране на стварању преносивог програмског језика за обраду података.[8] Стандардизован је 1968. године и од тада је прерађиван четири пута. Проширења укључују подршку за структурално и објектно-оријентисано програмирање. Тренутни стандард је ISO/IEC 1989:2014.[9]
У касним 1950-им, корисници и произвођачи рачунара постали су забринути због пораста трошкова програмирања. Истраживања из 1959. године су открила да у било којој инсталацији за обраду података, програмирање кошта 800,00 $ у просеку и да ће програми за превођење на нови хардвер коштати 600,00$. У време када се број нових програмских језика повећава са све већом стопом, иста истраживања (анкете) сугеришу да би, уколико би се користио заједнички пословни језик, конверзија била далеко јефтинија и бржа.
Априла 1959. године Мери К. Хајвс је позвала представнике академије, кориснике и произвођаче рачунара на Универзитет у Пенсилванији како би организовали званични састанак на тему заједничких пословних језика.[10] Представници су позвали Grace Hopper, изумитељку flow-matic-a, Жан Самет и Саул Горн. Група је затражила од Министарства одбране да спонзорише стварање заједничког пословног језика. Делегација је импресионирала Чарлса А. Филипса, директора одељења за истраживање система података при Министарству одбране, који је сматрао да су они детаљно проучили проблеме Министарства одбране. Министарство је имало у употреби 225 рачунара, и још додатних 175 било је наручено и чекала се испорука, а потрошено је 200 милиона долара на имплементације програма.
Преносиви програми би уштедели време, смањили трошкове и олакшали модернизацију. Филипс се сложио да спонзорише састанак и задао делегацији да изради дневни ред.
У Пентагону је, 28. и 29. маја 1959. године, одржан састанак на којем се расправљало о стварању заједничког програмског језика за бизнис. Присуствовала је 41 особа, а председавао је Филипс.[11] Министарство одбране је било забринуто око тога да ли ће резултати програма обраде података бити исти на различитим рачунарима. FORTRAN, једини „mainstream“ језик у то време, није имао могућност за писање таквих програма.
Представници су са ентузијазмом описали језик који би могао радити у разним окружењима, од банкарства и осигурања до комуналних услуга и контроле инвентара. Једногласно су се сложили да би више људи требало да буде у могућности да програмира и да нови језик не би требало ограничити границама савремене технологије. Већина се сложила да би језик требало максимално да користи енглески језик, да буде способан за промене, независтан од машина и једноставан за коришћење, чак и по цену моћи.
Састанак је резултирао стварањем Управног одбора као и одбора за кратки, средњи и дуги низ година. Комитет за кратки опсег је добио рок до септембра (три месеца) да дају спецификације за привремени језик, који би затим унапредили остали комитети. Њихова званична мисија била је да идентификују снаге и слабости постојећих програмских језика.
Управни одбор се састао 4. јуна и сложио да именују читаву активност као Одбор за језике података, или CODASYL и формира извршни одбор.} Комитет кратког одбора састојао се од чланова представника шест произвођача рачунара и три владине агенције. Шест произвођача рачунара су Burroughs Corporation, IBM, Minneapolis-Honeywell (Honeywell Labs), RCA, Sperry Rand и Sylvania Electric Products. Три владине агенције биле су Америчко ратно ваздухопловство, Navy’s David Taylor Model Basin и Nattional Bureau of Standards (сада National Institute of Standards and Technology). Одбором је председавао Џозеф Вегстајн из Националног бироа за стандарде САД. Рад је започео истраживањем описа података, изјава, постојећих апликација и корисничких искустава. Комитет је углавном испитивао FLOW-MATIC, AIMACO, COMTRAN програмске језике. Главни допринос FLOW-MATIC-a COBOL-у су дуга имена променљивих, енглеске речи за наредбе и одвајање података и упутстава. IBM-ов COMTRAN језик, који је изумео Боб Бемер, је сматран конкурентом FLOW MATIC. Неке од његових карактеристика нису биле укључене у COBOL, тако да не би изгледало да IBM доминира дизајном. Након што је Рој Голдфингер, аутор приручника COMTRAN и члан комисије средњег ранга присуствовао састанку подкомитета како би подржао његов језик и охрабрио употребу алгебарских израза, Грејс Хопер је послала допис одбору кратког домета потенцирајући на напорима које је улагао Sperry Rand да створи језик заснован на енглеском.
Карактеристике из COMTRAN-а које је садржао COBOL су укључивале формуле, клаузулу PICTURE, и побољшале IF изјаву, што је отклонило потребу за GO TO наредбом и робуснијим системом управљања датотекама.
Док су неки чланови мислили да језик има превише компромиса, други су сматрали да је бољи од сва три испитана језика. Неки сматрају да је језик сувише сложен, а други да је сувише једноставан. Карактеристике које укључују Буловске изразе, формуле и табеле индекса су неки сматрали бескорисним или сувише напредним за кориснике. Мало пажње је посвећено интерактивности, интеракцији са оперативним системима (неколико њих је постојало у то време ) и функције.
Спецификације су представљене Извршном одбору 4. септембра. Јозеф Вегстајн је напоменуо да он садржи грубе мрље и да захтева неке измене. Подкомитету је дато да га до Децембра поправе.
На састанку, средином Септембра, комитет је разматрао име новог језика. Неки од предлога били су “BUSY” (Business System), ”INFOSYL” (Information System Language),и “COCOSYL” (Common Computer System Language). Име COBOL је предложио Боб Бемер.[12][13]
У октобру је комитет средњег ранга добио копије спецификација језика FACT који је створио Рој Нут. Његове карактеристике су имресионирале комисију, па су донели одлуку да COBOL базирају на њој. То је био ударац за одбор кратког домета, који је значајно напредовао у погледу спецификације. Упркос томе што је технички супериоран, FACT није створен са могућности преносивости . Представник RCA, Хаувард Бомберг је такође блокирао FACT, тако да рад RCA на имплементацији COBOL-a не би био узалудан.
Ускоро је постало очигледно да је одбор био сувише велики да би се убрзо учинио било какав напредак.[14] Формиран је пододбор да би анализирао постојеће језике и био је састављен од шест појединаца:
Пододбор је већину посла посветио изради спецификација, остављајући комисији кратког домета да преиспита и модификује свој рад пре израде завршне спецификације.
Спецификације су одобрене од стране Извршног одбора 3. јануара 1960. Године и послате владиној штампарији која их је штампала као COBOL 60. Наведени циљеви језика су били да омогуће лако писање преносивих програма, како би се корисницима омогућило да их преносе на нове системе уз минималне напоре и трошкове, и да буду погодни за неискусне програмере. Извршни одбор CODASYL је касније створио COBOL сектор за одржавање, како би одговорио на питања корисника и произвођача и побољшао и проширио спецификације. Током 60-их порасла је листа произвођача који планирају израду компилатора COBOL. До Септембра још пет произвођача се придружило CODASYL (Bendix, Control Data Corporation, General Electric (GE), National Cash Register Philco) и сви представљени произвођачи су најавили компилацију COBOL-а. GE и IBM планирају да интегришу COBOL на своје језике, GECOM и COMTRAN. Насупрот томе, Internacional Computer and Tabulators планирају да замене свој језик, CODEL са COBOL-ом.
У међувремену, RCA и Sperry Rand су радили на стварању компилатора COBOL-а. Први COBOL програм покренут је 17. августа на RCA 501. Исти COBOL програм (са мањим изменама) је 6. И 7. децембра покренут на RCA рачунару и Remington-Rand Univac рачунару, доказујући да се компатибилност може постићи.
Утицаји на то која ће се верзија језика користити и дан данас се наставља кроз препоручене савете у свим штампаним приручницима за COBOL.
COBOL је индустријски језик и није власништво било које компаније или групе компанија, нити било које организације или групе организација. Ниједна сарадница или одбор CODASYL COBOL-a не даје никакву гаранцију, у погледу тачности и функционалности програмског система и језика. Осим тога, одговорност не преузима ни доприносилац нити одбор. Аутори и носиоци ауторских права за заштићени материјал који се овде користе су следећи:
Посебно су овластили употребу овог материјала, у целости или делимично, у COBOL спецификацијама. Такво одобрење проширује се на репродукцију и употребу COBOL спецификација у приручницима за програмирање или сличним публикацијама.[15]
Пронађени су многи логички недостаци у COBOL-у 60, Чарлс Кац вођа Џенерал електрика је упозорио да се то не може недвосмислено тумачити. Невољна краткорочна комисија извршила је потпуно чишћење и од Марта 1963. године пријављено је да је COBOL-ова синтакса дефинисана као ALGOL-ова, иако семантичке нејасноће остају.
Рани компилатори COBOL-а су примитивни и спори. US Navy Evaluation је 1962. године пронашла компилациониу брзину од 3-11 изјава у минути. До средине 1964. године повећали су на 11-1000 изјава у минути. Било је примећено да повећавање меморије, драстично повећава брзину и да су трошкови компилације различити.
Касне 1962. године, IBM је објавио да ће COBOL бити њихов примарни развојни језик и да ће престати са развојем COMTRAN-а.
Спецификација COBOL-а ревидирана је три пута за пет година. COBOL-60 замењен је COBOL-ом -61 1961. године. Онда је спецификација COBOL-а -61 проширена 1963. године, која је увела објекте за сортирање и извршавање. COBOL издање 1965. године донело је додатна појашњења спецификацијама и уведене су могућности за руковање датотекама и табелама.
Почело је да се ради на стандардизацији COBOL-а која ће превазићи неусклађености између верзија. Крајем 1962. године ISO и Институт за стандарде Сједињених Америчких Држава (сада ANSI) су формирали групе за креирање стандарда. ANSI је произвела USA Standard COBOLX3.23 у Августу 1968, који је постао камен темељац за касније верзије. Ова верзија је позната као Амерички национални стандард (АNS) COBOL и усвојен је од стране ISO 1972. године.[16]
Познати програм Hello World у COBOL-у изгледа слично као и у осталим језицима процедуралне парадигме:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
MAIN.
DISPLAY 'Zdravo, svete!'.
STOP RUN.
COBOL има синтаксу сличну енглеском језику којом се дефинише скоро све у програмима који се у њему пишу, на пример исти услови се могу писати на следеће начине:
x IS GREATER THAN y
x GREATER y
x > y
Комплекснији услови се могу скратити избацивањем поновљених услова и променљивих, на пример a > b AND a > c OR a = d
се може записати као a > b AND c OR = d
. Као последица овакве синтаксе, COBOL има више од 300 кључних (резервисаних) речи. Неке верзије су имале чак и 1100 кључних речи.[17] Многе кључне речи се имају своје еквивалентне парове са којима се могу наизменично писати у програмима као IN
и OF
јер на енглеском језику имају исто значење, такође неке од њих имају и своје облике у множини као IS
и ARE
или VALUE
и VALUES
.
Сваки програм у Коболу се састоји садржи литерале, сликовни карактер-стрингови, стрингове и сепараторе.Речи представљају кључне речи или кориснички-дефинисани идентификатори који се састоје од до 31-ог карактера који могу бити слова, бројеви, цртиве или доње црте. Литерали су или бројеви или словне речи, а под сепараторима се подразумевају размаци, тачке, тачка-зарез...
Програми у Коболу се деле на 4 дивизије:
У идентификационој дивизији се наводи име и тип изворног елемента, ту се наводе и класе и интерфејси. У дивизији окружења се наводе особине програма које зависе од система на ком се покреће. У дивизији података се деклатишу променљиве и параметри. У процедуралној дивизији су садржане наредбе програма. Све дивизије су подељене у делове које чине параграфи.
Типови података у стандардном COBOL-у су приказани у следећој табели.[18]
Тип | Декларација | О типу |
---|---|---|
Алфабетски | PIC A(30) |
Садржи слова и белине |
Алфанумерички | PIC X(30) |
Може садржати било које карактере |
Буловски | PIC 1 USAGE BIT |
Подаци сачувани у облику нула и јединица као бинаран број |
Индексни | USAGE INDEX |
Користе се за приступ елементима табела |
Национални | PIC N(30) |
Сличан алфанумеричком, али користи проширен скуп карактера ( UTF-8 ) |
Нумерички | PIC 9(5)V9(5) |
Садржи само бројеве |
Објектни | USAGE OBJECT REFERENCE |
Може се односити на објекте или NULL |
Показивачки | USAGE POINTER |
Године 1997, Гартнер група је проценила да постоји 200 милијарди линија COBOL-a, што чини 80% свих пословних језика.[19] Почетком 1990-их почео је развој објектног-оријентисања у новој верзији COBOL-a. Особине објектног-оријентисања преузете су из C++-а и Smalltalk-а. Иницијалне процене су биле да ће ревизија и нацрт комитета ISO бити готови до 1997. године. Поједини продавци (Micro Focus, Fujitsu, IBM) су представили синтаксу објектно-оријентисаног програмирања на основу нацрта потпуне ревизије. Крајњи ISO стандард је одобрен и објављен крајем 2002. године. Компаније Fujitsu/GT Software, Micro Focus и RainCode представили су објектно-оријентисане COBOL компајлере користећи .NET Framework.
Било је још доста нових карактеристика, од којих су се многе налазиле у CODASYL COBOL-у Journal of Development још од 1978. године и нису биле укључене у COBOL -85.[20]
Неке од њих су:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.