Кобол: различия между версиями
imported>YurikBot м добавлена ссылка на Лексему d:Lexeme:L117641 |
→Ссылки: уточнение |
||
| Строка 1: | Строка 1: | ||
__NOTOC__ | |||
{{ | {{Карточка языка программирования | ||
| name = '''Кобол''' | |||
=== | | paradigm = [[Процедурное программирование|процедурный]],<br> [[Объектно-ориентированное программирование|объектно-ориентированный]] | ||
{{ | | year = [[1959]] | ||
| | | designer = [[Хоппер, Грейс|Грейс Хоппер]], Вильям Селден, Гертруда Тирни, Говард Бромберг, Говард Дискаунт, Вернон Ривз, Джин Е. Саммет | ||
| | | последняя версия = ISO/IEC 1989:2014<ref>{{Cite news|title=ISO/IEC 1989:2014|url=https://www.iso.org/standard/51416.html|access-date=2022-04-05|archive-date=2022-04-05|archive-url=https://web.archive.org/web/20220405165243/https://www.iso.org/standard/51416.html}}</ref> | ||
| latest release version = COBOL 2002 | |||
| latest release date = 2002 | |||
| дата выпуска последней версии = {{start date and age|2014|06}} | |||
| typing = [[Строгая типизация|строгая]], [[Статическая типизация|статическая]] | |||
| implementations = [[GCC]] COBOL, [[GNU]] COBOL, [[IBM]] COBOL, [[Micro Focus International]] VisualCobol | |||
| dialects = HP3000 COBOL/II, COBOL/2, IBM OS/VS COBOL, IBM COBOL/II, IBM COBOL SAA, IBM Enterprise COBOL, IBM COBOL/400, IBM ILE COBOL, Unix COBOL X/Open, Micro Focus COBOL, Microsoft COBOL, Ryan McFarland RM/COBOL, Ryan McFarland RM/COBOL-85, DOSVS COBOL, UNIVAC COBOL, Realia COBOL, Fujitsu COBOL, ICL COBOL, ACUCOBOL-GT, DEC VAX COBOL, Wang VS COBOL, Visual COBOL | |||
| influenced_by = [[FLOW-MATIC]], [[COMTRAN]], [[FACT (язык программирования)|FACT]] | |||
| influenced = [[PL/I]], [[CobolScript]], [[ABAP]] | |||
}} | }} | ||
{{ | '''Кобол''' (''COBOL'', от {{lang-en|common business-oriented language}}; {{IPAc-en|ˈ|k|oʊ|b|ɒ|l|,_|-|b|ɔː|l}})<ref>{{cite web | title=New to COBOL | url=https://www.microfocus.com/documentation/visual-cobol/vc60/DevHub/GUID-F7908F35-6AD9-4A42-B710-25750904789E.html }}</ref> — [[Компилируемый язык программирования|компилируемый]] [[язык программирования]], созданный в 1959 году комитетом [[CODASYL]] как переносимый язык для обработки деловых данных. В качестве основы взят более ранний язык [[FLOW-MATIC]], созданный под руководством [[Хоппер, Грейс|Грейс Хоппер]] (известной в связи с этим как «бабушка Кобола»). | ||
=== | Язык использует англоязычные ключевые слова и его [[Синтаксис (программирование)|синтаксис]] приближен к целостным предложениям на английском языке, тем самым обеспечивается легкочитаемость и самодокументируемость программ; существовали также реализации с переводом ключевых слов на другие языки, в частности — на русский. Изначально — [[Императивное программирование|императивный]], [[Процедурный язык программирования|процедурный]], с 2002 года — также и [[Объектно-ориентированный язык программирования|объектно-ориентированный]]. | ||
Основные типы данных — числа, текстовые строки<ref>{{Cite web|url=http://cs.brown.edu/~adf/programming_languages.html|title=A History of Computer Programming Languages|website=cs.brown.edu|access-date=2021-10-02|archive-date=2021-07-26|archive-url=https://web.archive.org/web/20210726165920/https://cs.brown.edu/~adf/programming_languages.html|url-status=live}}</ref>, впервые в языках программирования введена структура данных «[[Запись (тип данных)|запись]]», впоследствии применённая в большинстве прочих языков. | |||
Программа на Коболе разделяется на четыре части (идентификация, среда, данные и процедура), содержащих жёсткую иерархию разделов, абзацев и предложений. | |||
=== | Начальное распространение языка во многом связано с инициативой [[Министерство обороны США|Министерства обороны США]], считавшего Кобол удобным и переносимым языком для обработки данных и требовавшего от производителей реализации Кобола в поставляемых машинах<ref>{{Книга|ссылка=https://books.google.com/books?id=VCcsTPQ738oC&pg=PA100|автор=Nathan L. Ensmenger|заглавие=The Computer Boys Take Over: Computers, Programmers, and the Politics of Technical Expertise|год=2012-08-24|издательство=MIT Press|страниц=331|isbn=978-0-262-30282-1}}</ref>. | ||
В 1960-х — начале 1970-х годов стал основным языком разработки деловых и экономических программных систем. | |||
Хотя с 1980-х годов считается устаревшим, к 1997 году активно использовалось около 240 млрд строк кода на Коболе, кодом на Коболе обрабатывалось около 90 % финансовых [[Транзакция (финансы)|транзакций]] в мире и 75 % коммерческих транзакций, общая стоимость используемого кода — 2 трлн долларов США<ref>{{Cite web |url=http://www.ddj.com/architect/210602491?pgno=2 |title=Is Your Next Language COBOL? |access-date=2009-06-04 |archive-date=2009-06-15 |archive-url=https://web.archive.org/web/20090615033535/http://www.ddj.com/architect/210602491?pgno=2 |url-status=live }}</ref>; по состоянию на 2020-е годы язык по-прежнему широко используется во многих приложениях, особенно для [[мейнфрейм]]ов от [[IBM]] (на иных не используется)<ref>{{Cite web|lang=en|url=https://www.computerworld.com/article/2502420/brain-drain-where-cobol-systems-go-from-here.html|title=Brain drain: Where Cobol systems go from here|author=Robert L. Mitchell|website=Computerworld|date=2012-03-14|access-date=2021-10-02|archive-date=2021-10-02|archive-url=https://web.archive.org/web/20211002192854/https://www.computerworld.com/article/2502420/brain-drain-where-cobol-systems-go-from-here.html|url-status=live}}</ref>. | |||
Большая часть современного программирования на Коболе предназначена для поддержки существующих приложений; однако многие крупные финансовые учреждения ещё в 2006 году всё ещё разрабатывали новые системы на языке<ref>{{Cite web|lang=en|url=https://www.computerworld.com/article/2554103/cobol--not-dead-yet.html|title=Cobol: Not Dead Yet|author=Robert L. Mitchell|website=Computerworld|date=2006-10-04|access-date=2021-10-02|archive-date=2021-10-02|archive-url=https://web.archive.org/web/20211002192853/https://www.computerworld.com/article/2554103/cobol--not-dead-yet.html|url-status=live}}</ref>; проблема заключается в том, что специалистов, владеющих этим языком, сейчас очень мало<ref>[https://www.ixbt.com/news/2026/02/24/akcii-ibm-ruhnuli-izza-togo-chto-ii-teper-mozhet-provesti-refaktoring-prilozhenij-napisannyh-na-ustarevshem-jazyke-cobol.html Акции IBM рухнули из-за того, что ИИ теперь может провести рефакторинг приложений, написанных на устаревшем языке COBOL] // 24-02-2026 </ref>. | |||
==== | Язык был стандартизирован в 1968 году и с тех пор пересматривался четыре раза. Расширения включают поддержку структурированного и объектно-ориентированного программирования. Текущий стандарт — ISO / IEC 1989: 2014<ref>{{Cite web|lang=en|url=https://www.iso.org/cms/render/live/en/sites/isoorg/contents/data/standard/05/14/51416.html|title=ISO/IEC 1989:2014|author=14:00-17:00|website=ISO|access-date=2021-10-02}}</ref><ref>{{Cite web|url=http://www.cobolstandard.info/wg4/wg4.html|title=ISO/IEC JTC1/SC22/WG4 - COBOL|website=web.archive.org|date=2014-02-14|access-date=2021-10-02|archive-date=2013-09-02|archive-url=https://web.archive.org/web/20130902053244/http://www.cobolstandard.info/wg4/wg4.html|url-status=dead}}</ref>. Стандарт языка определяет 43 оператора, 87 функций и один класс, зарезервировано 300 ключевых слов. | ||
В начале 2020-х IBM создала ПО ''watsonx Code Assistant for Z'' для переписи кода COBOL на [[Java]].<!-- ...это не решало вопрос монополии. На данный момент COBOL фактически работает только на мейнфреймах IBM и поддерживается только инженерами IBM. Само собой, монополия означает дороговизну соответствующих услуг.--> | |||
В 2026 г. <!-- компания Anthropic заявила что -->ИИ-инструменты [[Claude Code]] ускорили процесс [[рефакторинг]]а приложений, написанных на COBOL. | |||
==== | Основная критика языка связана с его «многословием» — программы в связи с синтаксическим решением оказываются громоздкими, например, присваивание, выражаемое в [[C-подобный синтаксис|Cи-подобных]] языках как {{Code|code=y = x;|lang=c}}, записывается как {{Code|code=MOVE x TO y|lang=cobolfree}}. Кроме того, в развитии языка, как ориентированного на коммерческое применение, практически не принимали участие академические круги, относившиеся к языку со скепсисом, доходящим до крайних форм, так, широко известно высказывание [[Эдсгер Вибе Дейкстра|Дейкстры]] «Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление». | ||
==== | == Hello world == | ||
<source lang="cobol"> | |||
IDENTIFICATION DIVISION. | |||
PROGRAM-ID. HELLO-WORLD. | |||
* | |||
ENVIRONMENT DIVISION. | |||
* | |||
DATA DIVISION. | |||
* | |||
PROCEDURE DIVISION. | |||
PARA-1. | |||
DISPLAY "Hello, world.". | |||
* | |||
EXIT PROGRAM. | |||
END PROGRAM HELLO-WORLD. | |||
</source> | |||
==== | == Примечания == | ||
{{примечания|2}} | |||
=== | == Литература == | ||
* {{книга | |||
| | |заглавие = Основные концепции языков программирования | ||
| | |часть = '''2.6. Компьютеризация коммерческих записей: язык COBOL''' | ||
| | |оригинал = Concepts of Programming Languages | ||
| | |автор = Роберт В Себеста | ||
| | |ссылка = https://archive.org/details/isbn_5845901928 | ||
|isbn = 5-8459-0192-8 | |||
|страницы = [https://archive.org/details/isbn_5845901928/page/n658 672] | |||
|год = 2001 | |||
|издание = 5-е изд | |||
|место = М. | |||
|издательство = [[Вильямс (издательство)|«Вильямс»]] | |||
}} | }} | ||
; Стандарты | |||
* [http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=28805 ISO/IEC 1989:2002 Information technology — Programming languages — COBOL] {{Wayback|url=http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=28805 |date=20121025041533 }} | |||
* ГОСТ 22558-89 Язык программирования КОБОЛ | |||
* Бабенко Л. П., Богданова Г. С., Загузова Л. К., Первин Ю. А., Романовская Л. М., Ющенко Е. Л. Государственный стандарт 22558-77 «Язык программирования Кобол». ГК стандартов СМ СССР, М., 1977. | |||
== | == Ссылки == | ||
* [http://bitsavers.informatik.uni-stuttgart.de/pdf/codasyl/ Отчёт комитета CODASYL 1960 года по языку COBOL] {{Wayback|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/codasyl/ |date=20160304204310 }}{{ref|en}} на сайте bitsavers.org | |||
* [http://www.csis.ul.ie/COBOL/ COBOL programming — tutorials, lectures, exercises, examples] {{Wayback|url=http://www.csis.ul.ie/COBOL/ |date=20050102030051 }} | |||
== | * [https://web.archive.org/web/20050814083835/http://www.cobug.com/ COBOL User Groups (COBUG)] /вебархив/ | ||
* [https://web.archive.org/web/20071103075537/http://www.compulenta.ru/300411/ Языку программирования COBOL скоро (в 2009) исполнится 50 лет] // 21 декабря 2006 /вебархив/ | |||
* [https://web.archive.org/web/20110122112520/http://www.cybersecurity.ru/net/113160.html Язык программирования Cobol заработал в облачной среде] // 1 января 2011 /вебархив/ | |||
{{ | |||
|en | |||
| | |||
{{перевести|en|COBOL}} | |||
{{внешние ссылки}} | |||
[[Категория:Кобол| ]] | |||
Текущая версия от 23:51, 24 февраля 2026
Шаблон:Карточка языка программирования
Кобол (COBOL, от англ. Шаблон:Lang-en2; Шаблон:IPAc-en)<ref>Шаблон:Cite web</ref> — компилируемый язык программирования, созданный в 1959 году комитетом CODASYL как переносимый язык для обработки деловых данных. В качестве основы взят более ранний язык FLOW-MATIC, созданный под руководством Грейс Хоппер (известной в связи с этим как «бабушка Кобола»).
Язык использует англоязычные ключевые слова и его синтаксис приближен к целостным предложениям на английском языке, тем самым обеспечивается легкочитаемость и самодокументируемость программ; существовали также реализации с переводом ключевых слов на другие языки, в частности — на русский. Изначально — императивный, процедурный, с 2002 года — также и объектно-ориентированный. Основные типы данных — числа, текстовые строки<ref>Шаблон:Cite web</ref>, впервые в языках программирования введена структура данных «запись», впоследствии применённая в большинстве прочих языков. Программа на Коболе разделяется на четыре части (идентификация, среда, данные и процедура), содержащих жёсткую иерархию разделов, абзацев и предложений.
Начальное распространение языка во многом связано с инициативой Министерства обороны США, считавшего Кобол удобным и переносимым языком для обработки данных и требовавшего от производителей реализации Кобола в поставляемых машинах<ref>Шаблон:Книга</ref>. В 1960-х — начале 1970-х годов стал основным языком разработки деловых и экономических программных систем. Хотя с 1980-х годов считается устаревшим, к 1997 году активно использовалось около 240 млрд строк кода на Коболе, кодом на Коболе обрабатывалось около 90 % финансовых транзакций в мире и 75 % коммерческих транзакций, общая стоимость используемого кода — 2 трлн долларов США<ref>Шаблон:Cite web</ref>; по состоянию на 2020-е годы язык по-прежнему широко используется во многих приложениях, особенно для мейнфреймов от IBM (на иных не используется)<ref>Шаблон:Cite web</ref>. Большая часть современного программирования на Коболе предназначена для поддержки существующих приложений; однако многие крупные финансовые учреждения ещё в 2006 году всё ещё разрабатывали новые системы на языке<ref>Шаблон:Cite web</ref>; проблема заключается в том, что специалистов, владеющих этим языком, сейчас очень мало<ref>Акции IBM рухнули из-за того, что ИИ теперь может провести рефакторинг приложений, написанных на устаревшем языке COBOL // 24-02-2026 </ref>.
Язык был стандартизирован в 1968 году и с тех пор пересматривался четыре раза. Расширения включают поддержку структурированного и объектно-ориентированного программирования. Текущий стандарт — ISO / IEC 1989: 2014<ref>Шаблон:Cite web</ref><ref>Шаблон:Cite web</ref>. Стандарт языка определяет 43 оператора, 87 функций и один класс, зарезервировано 300 ключевых слов.
В начале 2020-х IBM создала ПО watsonx Code Assistant for Z для переписи кода COBOL на Java. В 2026 г. ИИ-инструменты Claude Code ускорили процесс рефакторинга приложений, написанных на COBOL.
Основная критика языка связана с его «многословием» — программы в связи с синтаксическим решением оказываются громоздкими, например, присваивание, выражаемое в Cи-подобных языках как Шаблон:Code, записывается как Шаблон:Code. Кроме того, в развитии языка, как ориентированного на коммерческое применение, практически не принимали участие академические круги, относившиеся к языку со скепсисом, доходящим до крайних форм, так, широко известно высказывание Дейкстры «Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление».
Hello world
<source lang="cobol">
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
PROCEDURE DIVISION.
PARA-1.
DISPLAY "Hello, world.".
*
EXIT PROGRAM.
END PROGRAM HELLO-WORLD.
</source>
Примечания
Литература
- Стандарты
- ISO/IEC 1989:2002 Information technology — Programming languages — COBOL Шаблон:Wayback
- ГОСТ 22558-89 Язык программирования КОБОЛ
- Бабенко Л. П., Богданова Г. С., Загузова Л. К., Первин Ю. А., Романовская Л. М., Ющенко Е. Л. Государственный стандарт 22558-77 «Язык программирования Кобол». ГК стандартов СМ СССР, М., 1977.
Ссылки
- Отчёт комитета CODASYL 1960 года по языку COBOL Шаблон:WaybackШаблон:Ref на сайте bitsavers.org
- COBOL programming — tutorials, lectures, exercises, examples Шаблон:Wayback
- COBOL User Groups (COBUG) /вебархив/
- Языку программирования COBOL скоро (в 2009) исполнится 50 лет // 21 декабря 2006 /вебархив/
- Язык программирования Cobol заработал в облачной среде // 1 января 2011 /вебархив/