Cobol: програмски језик

COBOL (изговор: /ˈkoʊbɒl/; транскр.

кобол) је један од најстаријих виших програмских језика који су у данашњој употреби. Име му је изведено као акроним од енгл. COmmon Business-Oriented Language, што је дефинисано његовим применама — углавном служи за писање бизнис и финансијских апликација и као подршка административним системима у компанијама и владама. Најновија спецификација, COBOL 2002, садржи механизме објектно-оријентисаног програмирања и многе друге модерне могућности. Првобитно се користио у пословним, финансијским и административним системима за компаније и владе. Још увек има широку употребу у наслеђеним апликацијама развијеним на великим главним рачунарима као што су, апликације за обраду великих размера и трансакција. Али због смањене популарности и пензионисања искусних COBOL програмера, програми мигрирају на нове платформе, преписани на савремене језике, или бивају замењени софтверским пакетима. Већина програма у COBOL-у сада постоји само ради одржавања постојећих апликација.

COBOL
Cobol: Историја, Стандарди, Здраво, свете
Појавио се1959. год.; пре 65 година (1959)
Аутор(и)Хаувард Бромберг, Хаувард Дисконт, Вернон Ривс, Жан Е. Самет, Вилјам Селден, Гертруда Тјерни
Дизајнер(и)CODASYL, ANSI, ISO
Актуелна верзијаISO/IEC 1989:2014 / 2014
Систем типовастатички, јаки, сигурни, номинални
Имплементацијебизнис и финансијске апликације
УтицајиAIMACO, C++, COMTRAN, Eiffel, FACT, FLOW-MATIC, Smalltalk
Утицао наCobolScript, PL/I PL/B

COBOL је дизајниран 1959. године од стране CODASYL и делимично се базирао на претходном програмском језику који је дизајнирала Грејс Хопер, познатија као „COBOL-ова баба“. Направљен је као резултат рада Министарства одбране на стварању преносивог програмског језика за обраду података. Стандардизован је 1968. године и од тада је прерађиван четири пута. Проширења укњучују подршку за структурално и објектно-оријентисано програмирање. Тренутни стандард је ISO/IEC 1989:2014.

Историја

У касним 1950-им, корисници и произвођачи рачунара постали су забринути због пораста трошкова програмирања. Истраживања из 1959. године су открила да у било којој инсталацији за обраду података, програмирање кошта 800,00 $ у просеку и да ће програми за превођење на нови хардвер коштати 600,00$. У време када се број нових програмских језика повећава са све већом стопом, иста истраживања (анкете) сугеришу да би, уколико би се користио заједнички пословни језик, конверзија била далеко јефтинија и бржа.

Априла 1959. године Мери К. Хајвс је позвала представнике академије, кориснике и произвођаче рачунара на Универзитет у Пенсилванији како би организовали званични састанак на тему заједничких пословних језика. Представници су позвали Grace Hopper, изумитељку flow-matic-a, Жан Самет и Саул Горн. Група је затражила од Министарства одбране да спонзорише стварање заједничког пословног језика. Делегација је импресионирала Чарлса А. Филипса, директора одељења за истраживање система података при Министарству одбране, који је сматрао да су они детаљно проучили проблеме Министарства одбране. Министарство је имало у употреби 225 рачунара, и још додатних 175 било је наручено и чекала се испорука, а потрошено је 200 милиона долара на имплементације програма.

Преносиви програми би уштедели време, смањили трошкове и олакшали модернизацију. Филипс се сложио да спонзорише састанак и задао делегацији да изради дневни ред.

Стандарди

COBOL 60

У Пентагону је, 28. и 29. маја 1959. године, одржан састанак на којем се расправљало о стварању заједничког програмског језика за бизнис. Присуствовала је 41 особа, а председавао је Филипс. Министарство одбране је било забринуто око тога да ли ће резултати програма обраде података бити исти на различитим рачунарима. 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 је предложио Боб Бемер.

У октобру је комитет средњег ранга добио копије спецификација језика FACT који је створио Рој Нут. Његове карактеристике су имресионирале комисију, па су донели одлуку да COBOL базирају на њој. То је био ударац за одбор кратког домета, који је значајно напредовао у погледу спецификације. Упркос томе што је технички супериоран, FACT није створен са могућности преносивости . Представник RCA, Хаувард Бомберг је такође блокирао FACT, тако да рад RCA на имплементацији COBOL-a не би био узалудан.

Ускоро је постало очигледно да је одбор био сувише велики да би се убрзо учинио било какав напредак. Формиран је пододбор да би анализирао постојеће језике и био је састављен од шест појединаца:

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

Пододбор је већину посла посветио изради спецификација, остављајући комисији кратког домета да преиспита и модификује свој рад пре израде завршне спецификације.

Спецификације су одобрене од стране Извршног одбора 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 не даје никакву гаранцију, у погледу тачности и функционалности програмског система и језика. Осим тога, одговорност не преузима ни доприносилац нити одбор. Аутори и носиоци ауторских права за заштићени материјал који се овде користе су следећи:

   • 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 

Посебно су овластили употребу овог материјала, у целости или делимично, у COBOL спецификацијама. Такво одобрење проширује се на репродукцију и употребу COBOL спецификација у приручницима за програмирање или сличним публикацијама.

COBOL-61 до COBOL-65

Пронађени су многи логички недостаци у 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 -68

Почело је да се ради на стандардизацији COBOL-а која ће превазићи неусклађености између верзија. Крајем 1962. године ISO и Институт за стандарде Сједињених Америчких Држава (сада ANSI) су формирали групе за креирање стандарда. ANSI је произвела USA Standard COBOLX3.23 у Августу 1968, који је постао камен темељац за касније верзије. Ова верзија је позната као Амерички национални стандард (АNS) COBOL и усвојен је од стране ISO 1972. године.

Здраво, свете

Познати програм Hello World у COBOL-у изгледа слично као и у осталим језицима процедуралне парадигме:

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

Синтакса

COBOL има синтаксу сличну енглеском језику којом се дефинише скоро све у програмима који се у њему пишу, на пример исти услови се могу писати на следеће начине:

x IS GREATER THAN yx GREATER yx > y 

Комплекснији услови се могу скратити избацивањем поновљених услова и променљивих, на пример a > b AND a > c OR a = d се може записати као a > b AND c OR = d. Као последица овакве синтаксе, COBOL има више од 300 кључних (резервисаних) речи. Неке верзије су имале чак и 1100 кључних речи. Многе кључне речи се имају своје еквивалентне парове са којима се могу наизменично писати у програмима као IN и OF јер на енглеском језику имају исто значење, такође неке од њих имају и своје облике у множини као IS и ARE или VALUE и VALUES.

Сваки програм у Коболу се састоји садржи литерале, сликовни карактер-стрингови, стрингове и сепараторе.Речи представљају кључне речи или кориснички-дефинисани идентификатори који се састоје од до 31-ог карактера који могу бити слова, бројеви, цртиве или доње црте. Литерали су или бројеви или словне речи, а под сепараторима се подразумевају размаци, тачке, тачка-зарез...

Програми у Коболу се деле на 4 дивизије:

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

У идентификационој дивизији се наводи име и тип изворног елемента, ту се наводе и класе и интерфејси. У дивизији окружења се наводе особине програма које зависе од система на ком се покреће. У дивизији података се деклатишу променљиве и параметри. У процедуралној дивизији су садржане наредбе програма. Све дивизије су подељене у делове које чине параграфи.

Типови података

Типови података у стандардном COBOL-у су приказани у следећој табели.

Тип Декларација О типу
Алфабетски 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

COBOL 2002 (објектно-оријентисани COBOL)

Године 1997, Гартнер група је проценила да постоји 200 милијарди линија COBOL-a, што чини 80% свих пословних језика. Почетком 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.

Неке од њих су:

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

Извори

Tags:

Cobol ИсторијаCobol СтандардиCobol Здраво, светеCobol СинтаксаCobol Типови податакаCobol COBOL 2002 (објектно-оријентисани COBOL)Cobol ИзвориCobol ЛитератураCobol Види јошCobol Спољашње везеCobolAkronimЕнглески језикОбјектно-оријентисано програмирањеТранскрипција

🔥 Trending searches on Wiki Српски / Srpski:

ОмертаКоличник интелигенцијеАлбанијаНови ПазарМилан МладеновићПрви српски устанакСарајевоНови СадПредлогРајко МитићЛазар ХребељановићСрпско царствоСулејман ВеличанствениХанс Кристијан АндерсенЖарко ЛаушевићКрагујевацМалтаДанскаРатко ТанкосићЖељко ОбрадовићПатријарх српски ПавлеНародно позориште у БеоградуКипарВршацV ефекатСтеван Стојановић МокрањацЗорица БрунцликФудбалско игралиштеПавле ВуисићКарлес ПуџдемонТосканаКарађорђе ПетровићЈеврејиЈерменијаДанте АлигијериМанастир ГрачаницаЈован ДучићСавет безбедности Уједињених нацијаУбице мог оцаМостарВладимир Ђорђевић (аикидока)ЗемљаБранко ВидаковићМилена РадуловићБлиц (новине)Лепа ЛукићВукПакистанАлександар ВучићСуботицаЕстонијаВМРО-ДПМНЕСписак ликова серије Игра судбинеФК Интер МиланоСрбија против насиља (коалиција)СрбиВера МатовићИсламВелика средаНаоружање и опрема Војске СрбијеМарко НиколићУједињене нацијеTeya DoraМарко Краљевић и бег КостадинПобедник (споменик)Манастир Ђурђеви ступовиДруги светски ратТамара ВучићБеоградски синдикатАна МихајловскиМарија БергамЦрна свадба (2. сезона)Кожне болести пенисаМилош ЦрњанскиПарламентарни избори у Србији 2023.Списак телекомуникационих оператора у СрбијиПетар БожовићСједињене Америчке ДржавеСамед Баждар🡆 More