# COBOL

| COBOL |
| --- |
| Клас мовы |
працэдурная, імператыўная, аб’ектна-арыентаваная |
| З’явілася ў | 1959 |
| Аўтар(ы) | Говард Бромберг, Норман Дыскаунт, Вернан Рыўз, Джын Самет, Уільям Сэлдэн, Гертруда Цірні, пры ўскосным удзеле Грэйс Хопер |
| Пашырэнне файлаў |
.cbl, .cob, .cpy |
| Тыпізацыя даных | слабая, статычная |
| Асноўныя рэалізацыі | GnuCOBOL, IBM COBOL, Micro Focus Visual COBOL |
| Зведала ўплыў | Першапачаткова: AIMACO, COMTRAN, FACT COBOL 2002: C++, Eiffel, Smalltalk |
| Паўплывала на |
CobolScript, PL/I |

**COBOL** (маўленне «кóбал», акронім ад англ. **co**mmon **b**usiness-**o**riented **l**anguage) — кампіляваная мова праграмавання высокага ўзроўню, прызначаная для выкарыстання ў бізнесе. Гэта імператыўная, працэдурная і, пачынаючы з 2002 года, аб’ектна-арыентаваная мова. COBOL выкарыстоўваецца пераважна ў сферы бізнесу, у фінансавых і адміністрацыйных сістэмах кампаній і ўрадаў. Да гэтага часу шырока выкарыстоўваецца ў састарэлых дадатках, разгорнутых на вялікіх ЭВМ, для такіх задач, як буйнамаштабная пакетная і транзакцыйная апрацоўка даных. Але праз зніжэнне папулярнасці і выхаду на пенсію дасведчаных праграмістаў на COBOL, праграмы пераносяць на новыя платформы, перапісваюць на сучасныя мовы, або замяняюць праграмнымі пакетамі. Цяперашняе праграмаванне на COBOL у большасці зводзіцца да падтрымкі наяўных дадаткаў.

Мова COBOL была распрацавана ў 1959 годзе, у асацыяцыі КОДАСІЛ (англ.: CODASYL) пад уплывам Грэйс Хопер, якую часам памылкова называюць «маці COBOL», і была часткова заснавана на яе папярэдняй працы па праектаванні мовы праграмавання. Мова з’явілася ў рамках намаганняў Міністэрства абароны ЗША па стварэнні пераноснай мовы праграмавання для апрацоўкі даных. У якасці часовай меры, міністэрства абароны неадкладна прымусіла вытворцаў камп’ютараў стварыць гэту мову, што прывяло да яе шырокага распаўсюджання. Мова была стандартызавана ў 1968 годзе і з таго часу перагледжана чатыры разы. Пашырэнні ўключаюць падтрымку структурнага і аб’ектна-арыентаванага праграмавання. Цяперашні стандарт — ISO/IEC 1989:2014.

COBOL мае сінтаксіс, падобны да англійскай мовы, які быў распрацаваны, каб быць самадакументаваным і добра чытэльным. Тым не менш, мова шматслоўная і выкарыстоўвае больш за 300 зарэзерваваных слоў. У адрозненне ад зараз распаўсюджанага сціслага сінтаксісу `y = x;`, COBOL мае больш англападобны сінтаксіс (у дадзеным выпадку, `MOVE x TO y`). Код у COBOL падзелены на чатыры часткі (ідэнтыфікатары, асяроддзе, даныя і працэдуры), якія змяшчаюць цвёрдую іерархію раздзелаў, параграфаў і выказванняў. Не маючы вялікай стандартнай бібліятэкі, стандарт вызначае 43 выказванні, 87 функцый і толькі адзін клас.

Акадэмічныя навукоўцы ў галіне інфарматыкі былі большай часткай незацікаўлены ў бізнес-дадатках, калі COBOL ствараўся, і не ўдзельнічалі ў яе распрацоўцы; мова практычна распрацавана з нуля, як камп’ютарная мова для бізнесменаў, з акцэнтам на ўвод і вывад, у якіх даныя разглядаюцца толькі як лічбы і радкі тэксту. COBOL крытыкавалі на працягу ўсяго яго існавання за такія рысы, як шматслоўе, працэс праектавання і благую падтрымку структурнага праграмавання, якія прывялі да маналітных і незразумелых праграм.

## Прыклад

Прыклад напісання праграмы Hello world у сучаснай імплементацыі COBOL:

```
  IDENTIFICATION DIVISION.
  PROGRAM-ID. hello-world.
  PROCEDURE DIVISION.
  DISPLAY "Hello, world!"
  .

```

Вышэйпададзены прыклад актуальны менавіта для сучаснай імплементацыі COBOL. Насамрэч прыклад праграмы «Hello, World!» быў упершыню апублікаваны ў 1978 годзе ў кнізе «Мова праграмавання C» і на той момант тэарэтычна мог быць створаны для COBOL на перфакарце ў наступным выглядзе:

```
//COBUCLG JOB (001),'COBOL BASE TEST', 00010000
// CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) 00020000
//BASETEST EXEC COBUCLG 00030000
//COB.SYSIN DD \* 00040000
 00000\* VALIDATION OF BASE COBOL INSTALL 00050000
 01000 IDENTIFICATION DIVISION. 00060000
 01100 PROGRAM-ID. 'HELLO'. 00070000
 02000 ENVIRONMENT DIVISION. 00080000
 02100 CONFIGURATION SECTION. 00090000
 02110 SOURCE-COMPUTER. GNULINUX. 00100000
 02120 OBJECT-COMPUTER. HERCULES. 00110000
 02200 SPECIAL-NAMES. 00120000
 02210 CONSOLE IS CONSL. 00130000
 03000 DATA DIVISION. 00140000
 04000 PROCEDURE DIVISION. 00150000
 04100 00-MAIN. 00160000
 04110 DISPLAY 'HELLO, WORLD' UPON CONSL. 00170000
 04900 STOP RUN. 00180000
//LKED.SYSLIB DD DSNAME=SYS1.COBLIB,DISP=SHR 00190000
// DD DSNAME=SYS1.LINKLIB,DISP=SHR 00200000
//GO.SYSPRINT DD SYSOUT=A 00210000
// 00220000

```

## Зноскі

## Літаратура

* *Савіцкі М.* Тлумачальны слоўнік па інфарматыцы. — Мн.: Энцыклапедыкс, 2009. — ISBN 978-985-6742-83-8