Разное

Язык программирования кобол: Знакомимся с COBOL — ч.1 / Хабр

Содержание

Знакомимся с COBOL — ч.1 / Хабр

Этой статьей я планирую начать целый цикл, который может быть со временем соберется в книгу. Информация про COBOL на русском представлена фактически статьей в Википедии и двумя советскими ГОСТами. Вы можете спросить меня зачем я начинаю “раскапывать труп” и прочие аналогичные вопросы. Ответ прост – а просто так. Потому что я люблю COBOL, потому что он вовсе не мертвый, потому что он интересный, потому что это часть важной истории и он продолжит оставаться частью будущего. Потому что COBOL – это событие. И пусть его ругает Дейкстра и другие, это ничуть не умаляет его объемов и его влияния на ИТ в бизнес.


Хватит введения, перейдем к самому изучаемому. COBOL – один из старейших языков программирования, расшифровывается его название как COmmon Business-Oriented Language, появившийся в 1959 году, благодаря “бабушке” Грейс Хоппер, и в основном применявшийся в различных финансовых и административных системах. Более подробно можно узнать его историю в ближайшем интернет-поисковике или (ну прям для совсем ленивых) — notes.sochi.org.ru/1333 (рус. яз.) или en.wikipedia.org/wiki/COBOL (eng.).

Для того, чтобы приступить к практическому изучению языка нам необходимо две вещи – редактор текстовый (1 шт.) и компилятор (1 шт.)

Если с редакторами все просто, тут подойдет даже Notepad и vi, emacs, nano и т.д. и т.п. Главное требование “классическое” это должен быть текстовые редактор, а не тексовый процессор (не помню что еще писали в достаточно старых книгах на эту тему 😉 ).

С компиляторами несколько сложнее, есть коммерческие, которые стоят безумных денег, есть студенческие версии коммерческих, есть версии старых компиляторов, есть даже несколько компиляторов с открытым кодом. Выбор остается за читателем, я лишь приведу список со своими комментариями.

www.opencobol.org OpenCOBOL (open-source, моя личная рекомендация, мультиплатформенный)
tiny-cobol.sourceforge.net TinyCobol (open-source, по сообщению автора 1 января 2011 года – прекратил развитие, да и до этого был не особо активен)
sourceforge.net/projects/cobolforgcc Cobol for GCC (open-source, преальфа, последние обновления 2009г.)
homepages.paradise.net.nz/jsoeberg COBOL 12 (freeware, 16-битный компилятор под DOS / Windows)
cev.cemotel.cz/cobol/cb_en/mx_all.htm Cevela MX COBOL (freeware, Windows)
www.microfocus.com/promotions/wwemvctd0510/default.aspx?page=form Micro Focus Visual COBOL R2 (trial, windows)
www.thekompany.com/products/kobol KOBOL (trial, linux, windows)

Также есть богатый выбор древних компиляторов под DOS.

Лично я использую OpenCOBOL, что в какой то мере единственный реальный вариант, на данный момент.

Теперь, когда вы все установили и готовы ринуться в бой – начнем. Естесственно, с Hello World.

Наберем в редакторе следующий код:

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300* --- Это пустая строчка. ---
000400 ENVIRONMENT DIVISION.
000500 DATA DIVISION.
000600 PROCEDURE DIVISION.
000700 BEGIN.
000800          DISPLAY “Hello World!”.
000900          STOP RUN.

Благополучно сохраняем это в файл с расширением .cob (или .cbl) – это самые популярные, исторические и логические расширения.

Далее в терминале или командной строке набираем cobc -x <файл> и получаем исполняемый файл. Запускаем его и оооооп!

Hello World!

Теперь давайте разберем этот код.

Начнем с внешнего вида. Это “классический” код. Со всеми требованиями, что были и 50 лет назад. Почему его использую я:

1. Код в таком формате подойдет любому компилятору.

2. Это “олдскулл”, “крутатенюшка” и просто мне нравится.

3. Всегда лучше начинаться со стандартных требований, а потом уже смотреть на возможности компилятора и собственный вкус.

Строка COBOL программы состоит из 80 символов.

Символ 1-6: номер строки (необязателен)

Символ 7: “индикатор”

* — строка комментарий,

— — строка “продолжение”,

D- строка debug.

Символ 8 – 11: Зона А. В ней должны начинаться DIVISION’ы, SECTION’ы, имена и заголовки параграфов, а также индикаторы и номера “уровней” (это все рассмотрим позже).

Символ 12-72: Зона Б. Собственно здесь должны начинаться сами по себе выражения “кода”.

Символ 73-80: Зона комментария. Не обрабатывается компилятором и полностью предоставлена програмисту.

С горизонтальной плоскостью разобрались, перейдем к вертикали.

Каждая COBOL программа содержит 4 раздела – DIVISION, идут они в строгом порядке и содержат определенные элементы.

DIVISION ПЕРВЫЙ. Вдохновляющий.

IDENTIFICATION DIVISION. — описывает программу и содержит такие параграфы, как

PROGRAM-ID. Helloworld.
AUTHOR. Beginner.
INSTALLATION. MyLocalCobolComputer.
DATE-WRITTEN. 19/03/2011.
DATE-COMPILED. 19/03/2011.
SECURITY. Iwillnottellanybodythiscode.

Содержимое этих параграфов представляет собой обычный комментарий и в принципе записать туда можно хоть “2011 год от Рождества Христова”.

DIVISION ВТОРОЙ. Мистический.

ENVIRONMENT DIVISION. — Описывает ту среду, как и следует из названия, в которой пишется программа. Состоит из двух секций.

CONFIGURATION SECTION. Которая включает в себя параграфы SOURCE-COMPUTER. и OBJECT-COMPUTER. и SPECIAL-NAMES. Первые два несут сугубо комментирующую функцию и описывают на каком компьютере, для какого компьютера программа написана.

SPECIAL-NAMES. представляет собой достаточно глубинную штуку, которая будет рассмотрена позже (или можете поискать пока на эту тему сами информацию).

INPUT-OUTPUT SECTION. Описывает, как следует из названия ввод-вывод, очень нужно, очень важно и очень скоро мы с этим уже встретимся. Включает в себя параграфы FILE-CONTROL. и I-O-CONTROL.

DIVISION ТРЕТИЙ. Законодательный.

DATA DIVISION. — Содержит описания всех переменных. Включает в себя 4 секции:

FILE SECTION. — описывает структуру файлов.

WORKING-STORAGE SECTION. — описывает переменные.

LOCAL-STORAGE SECTION. — описывает переменные, которые создаются и инициализируются каждый раз при выполнении (поподробней в следующие разы).

LINKAGE SECTION. — описывает данные, которые мы получаем при вызове других программ.

DIVISION ЧЕТВЕРТЫЙ. Рабочий.

PROCEDURE DIVISION. — Содержит “саму” программу, которая делится на пользовательские секции, параграфы, которые и содержат выражения. В нашем случае

BEGIN. — пользовательский параграф.

DISPLAY “Hello World!”.

STOP RUN. Собственно сами выражения.

И напоследок. Каждое выражение должно заканчиваться “точкой”.

Спасибо за внимание. Жду вопросов в комментариях, которые обязательно будут отвечены и включены либо в следующие, либо в правку этой статьи.

Воронцов “nerfur” Вячеслав. 2011.

Ходячие мертвецы. COBOL | GeekBrains

Актуальный язык из 50-х.

https://d2xzmw6cctk25h.cloudfront.net/post/1041/og_cover_image/9b100495cc0ce2abbd74a43ad67e531b

Вы возможно удивитесь, но в наше время актуальными и востребованными остаются языки, разработанные ещё на заре общедоступного компьютеростроения. О некоторых из них, таких как язык Ассемблера или Фортран, мы уже говорили, о других наверняка поговорим еще в будущем.

Сегодняшний герой — COBOL. Этот язык изучался в ВУЗах по всему миру несколько десятилетий, и даже сегодня, почти 60 лет спустя вы можете найти 20-30-летних гиков, которые аргументировано докажут, что COBOL ничуть не устарел, а специалисты по этому языку будут востребованы еще очень долго.

К сожалению, у меня поиски такого адепта прошли безуспешно, поэтому оперировать придется только общедоступными фактами.

Краткая справка

COBOL (аббревиатура от COmmon Business-Oriented Language) — императивный процедурный язык, созданный в 1959 году для разработки бизнес приложений. Одной из главных его особенностей является максимальная приближенность к английскому языку, что в конечном счёте привело к громоздкости каждого отдельного кода, а в 2006 году даже обнаружилось, что COBOL — абсолютный лидер по количеству написанных строк кода. Вот пример базовой программы:

$ SET SOURCEFORMAT»FREE»

IDENTIFICATION DIVISION.

PROGRAM-ID.  ShortestProgram.


PROCEDURE DIVISION.

DisplayPrompt.

   DISPLAY «I did it».

   STOP RUN.

Долгое время COBOL был не только базовым языком программирования в англоязычных странах из-за его удобочитаемости, но и главным инструментов различных финансовых систем. Вызвано, впрочем, это было во многом по той же причине.

Популярность

Вопреки мнению о неудобности и допотопности языка COBOL, он по-прежнему сохраняет уверенные позиции, как в сводных рейтингах, так и на рынке. Так, например, в мартовском рейтинге TIOBE он занял 25 место, причём летом прошлого года он находился на 6 позиций выше.

Здесь, конечно, стоит оговориться, что популярность COBOL в основном касается западных стран, в частности, США и Великобритании, где, как уже было сказано, во многих ВУЗах до сих пор его преподают, что в конечном счете накручивает счетчик поисковиков.

Самый сокрушительный удар по сомнениям относительно этого языка нанесли, как и положено, его нынешние разработчики — компания MicroFocus. Согласно отчёту, опубликованному в 2013 году, стало известно, что 90% из списка компаний Fortune 500 до сих используют COBOL, а ещё на этом языке проводится 85% транзакций. Да, эти цифры неизбежно снижаются, но говорить о том, что лучшие дни COBOL далеко позади, пока рано.

Причина жить

Сказать, чем COBOL настолько хорош, что его невозможно заменить, смогут действительно лишь преданные фанаты этого языка. Да, он удобочитаем, он надёжен (теоретически) и проверен временем, но всё же главная причина его сохраняющейся актуальности абсолютно в другом. Дело в том, что структура кода, его размеры, БД, вся система, заточенная под COBOL, просто физически не позволяют перевести все накопленные годами данные в какой-нибудь более удобоваримый язык, вроде Java, за относительно короткий промежуток времени. Соответственно, стоит задача — или искать человека, знающего COBOL, или нанимать штат классических программистов, которые всё переделают, но результат не гарантируют.

Но есть и приятная сторона COBOL. Было бы странно предполагать, что за 58 лет язык абсолютно не изменился и не появилось удобных сред разработки, которые бы не позволяли закрыть глаза на некоторые неудобства. Тот же MicroFocus создал для COBOL вполне удобные инструменты.

Вот и получается большой мыльный пузырь, который позволяет гуру COBOL иметь прекрасную зарплату, работать с достаточно  удобными и современными продуктами, и при этом иметь неплохие перспективы.

Впрочем,  повторюсь ещё раз: данная работа имеет штучный характер, как правило почти не мелькает на биржах, а территория благоприятных условий в основном ограничена западом. В России COBOL тоже имеет определённый спрос, но это точно не работы мечты.

Есть что почитать?

Конечно, загоревшись идеей выучить язык, с помощью которого можно зарабатывать в разы больше, чем будучи разработчиком на Python, вы в первую очередь озадачитесь списком хорошей литературы. Много хорошей информации, как и положено, есть на . Хабре. Официальный сайт языка cobol.com тоже игнорировать не стоит. Ну а книгу прочитайте вот эту, если позволяет знание языка. Ну а если нет, остаётся только жалеть об упущенной возможности, так как достойной литературы по COBOL на русском лично мне найти не удалось (если знаете вы — оставляйте ссылки в комментариях).

Ну а напоследок я очень рекомендую почитать вот эту историю, которая очень наглядно показывает, что творится в мире языка COBOL.

Вам стоит выучить COBOL / Хабр

Начинающие программисты (а вполне возможно, что и их коллеги с опытом), должно быть, часто спрашивают себя, нужно ли им учить JAVA, или знания JavaScript, Python или Ruby будет вполне достаточно в современном мире. Учитывая спрос на программистов в нынешней экономике, многие находят достойную работу еще учась в университетах, и зачем тогда, спрашивается, представителю этой профессии заглядывать в такое далекое прошлое, как COBOL?

Согласно исследованию Gartner от 2001 года (в случае с данным конкретным языком это вполне можно назвать «недавно»), 85% мирового объема бизнес-информации обрабатывалось на языке COBOL, а к текущему моменту объем кода, написанный этим языком программирования, начинает снова увеличиваться. Компания Micro Focus, занимающаяся разработкой и продажей инструментов модернизации COBOL, заявляет, что 70% мирового бизнеса до сих пор активно использует этот язык.

И хотя очевидно, что многие из приложений, изначально написанных на COBOL будут переписаны, в Micro Focus уверены, что большая часть оригинального кода все-равно останется в ходу, а приложения будут использоваться еще долгие годы. Они безопасны, стабильны, а компании использующие их, не готовы от них просто так отказаться. Программный менеджер Micro Focus по имени Арунн Рамадосс (Arunn Ramadoss) говорит: «Ни один другой язык неспособен представлять бизнес-данные так точно, как это делает COBOL».

И даже в дни запоздалого выхода на пенсию, инженеров, способных работать с этим языком, становится все меньше и меньше. Кто-то перестает работать, другие уходят на позиции связанные с менеджментом, а не разработкой.


Рамадосс считает, что крупнейшие мировые компании и агенства, в скором времени будут очень заинтересованы в молодых программистах, которые понимают COBOL, равно как и новые технологии, вроде .NET или HTML5, считая, что изучение этого языка программирования сослужит добрую службу всем студентам факультетов программирования, и их выпускникам, так как очень скоро на рынке появится достаточное количество интересных вакансий, связанных с COBOL. Не говоря о том, что этот язык программирования легок в изучении.

По-правде говоря, такие вакансии уже начинают появляться, и чаще всего с пометкой «срочно требуется».

«Дни, когда вы могли быть „исключительно Java-программистом“ или „только C-программистом“ ушли» — говорит Арунн: «Сегодня необходимо знать несколько языков и технологий, а так же то, как они могут быть интегрированы».

Интеграция — это, пожалуй, самая важная мелочь для человека, решившегося взяться за COBOL. Природа языка, и природа систем его использующих очень плотно завязана на бизнес-логике и процессах. Поэтому наибольшим испытанием для разработчика и программиста будет не изучение самого языка, но понимание того, как он может быть использован в современной корпоративной среде.

В качестве примера Рамадосс говорит о бизнес-процессе перевода средств с одного банковского счета, на другой — эта процедура нисколько не изменилась с момента ее создания. Но то, как люди взаимодействуют со своими банковскими счетами и транзакциями, претерпела значительные, если не кардинальные, изменения. Сегодня все хотят получить доступ к счету с помощью ПК или мобильного телефона.

В свою очередь, для компаний, использующих приложение написанные на COBOL, самым трудным моментом будет сохранение и передача накопленного опыта и знаний о существующих бизнес-процессах новым разработчикам. Те программисты, которые уже знают этот язык и понимают то, как он интегрируется в современные технологии будут выгодно выделяться на фоне своих коллег, даже несмотря на то, что в принципе это не самая сложная, для изучения, технология (а значит многие могут относится к ней несколько легкомысленно).

Так с чего же начать человеку, который заинтересовался в изучении этого старейшего языка программирования? Лучшим стартом будет веб-сайт cobol.com, где можно найти множество информации о том, как подступиться к этой технологии. Что касается литературы, то общепризнанным эталоном считается книга «The 21st Century COBOL Programmer» от авторов Нэнси Штэрн (Nancy Stern), Роберта Штэрна (Robert A. Stern) и Джеймса Лея (James P. Ley).

И конечно, прямо здесь, на любимом ресурсе, можно найти интересные материалы, касающиеся этого языка программирования.

via eWeek, RRW

в поисках свежей крови / Хабр

Говорят, хорошо написанная программа на COBOL читается как роман. Даже не программист вполне сможет понять происходящее в программе на этом языке, что значительно упрощает обслуживание, если код написан грамотно. В мире, где некогда находить время для документирования программ, COBOL является в значительной степени самодокументируемым. Простой на первый взгляд, COBOL, который начинал свою историю листингом с нумерацией строк, позволяет создавать собственными средствами очень мощный код.
Однако, поможет ли это языку сегодня?

Есть ли смысл в наши дни IT-специалисту приступать к изучению COBOL? Может показаться, что в этом столько же смысла, сколько и в том, чтобы начать изучать Windows XP. Но, это далеко не так, COBOL — один из старейших языков программирования в мире, он живет и здравствует поныне в огромном количестве программ в банковской, финансовой, промышленной и других сферах по всему миру.
COBOL не вышел на пенсию, нет, но вот поколение программистов, написавших все эти приложения — они уходят на заслуженный отдых. Именно поэтому образуется нехватка знаний, чтобы поддерживать эти программы и поддерживать их в актуальном состоянии.
В пресс-релизе, на веб-сайте Micro Focus, Кевин Брерли, отвечающий за управление программными продуктами в компании Micro Focus, сказал:

В настоящее время COBOL поддерживает 90% бизнес-систем, используемых корпорациями из списка Fortune 500 и используется в 85% всех ежедневных финансовых (бизнес) транзакций. Отсюда вывод — обучение языку COBOL в университетах даст студентам знания, полезные в жизни, они смогут их использовать дальше — в организациях, напрямую связанных с бизнесом. Без этого же, риски для бизнеса, использующего COBOL, будут повышаться.

Хорошей новостью является то, что Micro Focus расширила программу поддержки учебных заведений, предприятий и студентов с целью помочь образованию нового поколения разработчиков на языке COBOL.
По словам Micro Focus, новая программа поддержки будет стимулировать развитие языка COBOL в учебных заведениях, будут проводиться соревнования с последующими награждениями с возможностью стажировок.
Брерли также добавил, что предприятия сегодня должны понимать — мир движется вперед, и чтобы не отставать — необходимо преодолеть разрыв в уровнях квалификации между поколениями разработчиков, объединить их и их знания.

Micro Focus предоставляет эту программу бесплатно, включая продукты Enterprise Developer и Visual COBOL. А также всю необходимую документацию.

Статистика

В то же время, редактор известного журнала CRN, Sander Hulsman пишет, что в 73% университетов регулярное преподавание COBOL не развивается. Интересно, что такое положение дел не совпадает с мнением директоров высших учебных заведений. Из опрошенных по всему миру 119 директоров, 58% заявили, что преподавать и развивать Cobol необходимо. Также отметим, что 27% процентов университетов по-прежнему продолжают преподавать этот старейший язык программирования.

Увы, в учебных заведениях COBOL вытесяняется языками Java, C# и C++ (наиболее популярным языком является Java).

Это потверждает и Huib Klink, старший консультант по продажам компании Micro Focus: «Новые языки программирования, такие как Java и C#, очень популярны среди студентов. Но язык COBOL прочно закрепился на предприятиях и еще долго будет спрос на COBOL-программистов. Наше исследование показало, что семь из десяти университетов, по крайней мере в ближайшие десять лет, по-прежнему будут работать с приложениями, написанными на языке COBOL. А 25% вместо десяти называют двадцать лет».

И, повторяет, сказанные выше слова Кевина Брерли: если не изучать COBOL — повысятся риски, связанные с бизнесом.

Из постов на Хабре также может быть интересно интервью с Грейс Хоппер («бабушка COBOL») и высказывание Дейкстры об этом языке.

P.S. Пара примеров кода на COBOL

В списке, подсвечиваемых Хабром языков, нет Кобола, однако…
Самая короткая программа:

 $ SET SOURCEFORMAT"FREE"
IDENTIFICATION DIVISION.
PROGRAM-ID.  ShortestProgram.

PROCEDURE DIVISION.
DisplayPrompt.
    DISPLAY "Я сделал ЭТО".
    STOP RUN.

Умножить два введенных числа:

$ SET SOURCEFORMAT"FREE"
IDENTIFICATION DIVISION.
PROGRAM-ID.  Multiplier.

DATA DIVISION.

WORKING-STORAGE SECTION.
01  Num1                                PIC 9  VALUE ZEROS.
01  Num2                                PIC 9  VALUE ZEROS.
01  Result                              PIC 99 VALUE ZEROS.

PROCEDURE DIVISION.
    DISPLAY "Введите первое число : " WITH NO ADVANCING.
    ACCEPT Num1.
    DISPLAY "Введите второе число : " WITH NO ADVANCING.
    ACCEPT Num2.
    MULTIPLY Num1 BY Num2 GIVING Result.
    DISPLAY "Результат = ", Result.
    STOP RUN.

Материал переведен и обработан с сайтов:

  1. cfoworld.com.au (11.05.2013, автор не указан)
  2. computable.nl (14.05.2013, автор Sander Hulsman, доб. Dirk Munk)

Что такое COBOL, и почему так много учреждений полагаются на него

Возможно Вы слышали о COBOL — 60-летнем языке программирования. Что именно это? И почему он все еще является стержнем финансового мира, несмотря на то, что мало кто все еще знает, как его использовать?

Происхождение COBOL

Грейс Хоппер была феноменом. Она получила докторскую степень по математике в Йельском университете, была профессором в Вассаре и покинула военно-морской флот США в звании контр-адмирала. Ее вклад в области вычислительной техники можно судить по количеству фондов и программ, которые были созданы. Национальный научно-исследовательский вычислительный центр энергетики назвал ее суперкомпьютер Cray XE6. Военно-морской флот также назвал свой ракетный эсминец, USS Hopper, в ее честь. Девиз корабля «Aude et Effice» («Дерзай и делай») вполне мог быть придуман Хоппер.

Стремясь создать язык программирования, Хоппер разработала первый компилятор. Это открыло двери для первых скомпилированных языков, таких как FLOW-MATIC. Это принесло ей место в Конференции по языкам систем данных (CODASYL) 1959 года.

Она также сыграла важную роль в спецификации и разработке общего бизнес-ориентированного языка (COBOL). Первая встреча состоялась 23 июня 1959 года, а ее доклад и спецификация языка COBOL последовали в апреле 1960 года.

Кобол был радикальным

Кобол содержал некоторые новаторские концепции. Возможно, наиболее значимым из них была способность работать на оборудовании, произведенном различными производителями, что было беспрецедентным в то время.

Язык был сложным и предоставлял почти английский словарь для работы программистов. Он был разработан для обработки огромных объемов данных и был исключительно математически точным.

Его словарь зарезервированных слов (слов, составляющих язык) приближается к 400. Программист связывает эти зарезервированные слова вместе, чтобы они имели синтаксический смысл и создавал программу.

Любой программист, который знаком с другими языками, скажет Вам, что 400 — это невероятное количество зарезервированных слов. Для сравнения, язык C имеет 32, а Python — 33.

Еще одна особенность COBOL — это строгое требование, чтобы определенные строки программы начинались в определенных столбцах. Сегодня у программистов больше свободы при форматировании COBOL, и им больше не нужно вводить все прописными буквами. Это делает работу с ним менее сложной. Вот пример программы:

IDENTIFICATION DIVISION.
      PROGRAM-ID. Hello-World.
      DATA DIVISION.
      FILE SECTION.
      WORKING-STORAGE SECTION.
      PROCEDURE DIVISION.
      MAIN-PROCEDURE.
           DISPLAY "Hello world, from guidepc!"
           STOP RUN.
      END PROGRAM Hello-World.

КОБОЛ — это настоящий хит

Как бы неуклюже ни казалось сегодня, КОБОЛ был революционным. Он нашел пользу в финансовом секторе, федеральном правительстве и крупных корпорациях и организациях. Это было связано с его масштабируемостью, возможностями обработки пакетов и математической точностью. Он был установлен на мэйнфреймах по всему миру, укоренился и процветал.

Зависимость от систем, которые все еще работают на COBOL, удивительна. Reuters предоставила отчет за 2017 год со следующей статистикой:

  • На сегодняшний день используется 220 миллиардов строк кода COBOL.
  • COBOL является основой 43 процентов всех банковских систем.
  • Системы на базе COBOL обрабатывают 3 триллиона долларов в день.
  • COBOL обрабатывает 95 процентов всех операций с карточками банкоматов.
  • COBOL обеспечивает 80 процентов всех возможных транзакций по кредитным картам.

Кобол это проблема

Программисты, которые знают COBOL, либо уходят на пенсию, думают об уходе на пенсию, либо мертвы. Мы постоянно теряем людей, которые обладают навыками для поддержания этих жизненно важных систем в рабочем состоянии. Новые, более молодые программисты не знают COBOL. Большинство также не хотят работать на системах, для которых Вам нужно поддерживать древний код или писать новый код.

Это такая проблема, что Билл Хиншоу, ветеран COBOL, был вынужден уйти на пенсию, чтобы основать COBOL Cowboys. Эта частная консалтинговая фирма обслуживает отчаявшихся корпоративных клиентов, которые нигде не могут найти подкованных на COBOL кодеров. «Молодым» в COBOL Cowboys уже за 50. Они считают, что 90 процентов бизнес-систем Fortune 500 работают на COBOL.

Конечно, частные предприятия, корпорации и банки — не единственные, кому нужно колоссальное количество финансовых данных. Федеральные, провинциальные и местные органы власти предъявляют одинаковые требования. Как и все остальные, они используют для этого мэйнфреймы и COBOL.

Почему бы не мигрировать и не обновиться

Обновление этих устаревших систем не так просто, как кажется. Системы являются жизненно важными, работающие 24/7, на которых вращаются финансовый, правительственный и деловой мир. Код старый, многослойный и, часто, плохо или полностью недокументированный. Перспектива сравнивалась с тем, чтобы снять пропеллеры с самолета и попытаться оснастить его реактивными двигателями — в воздухе.

Помимо риска, экономический аргумент для перехода на современные системы также является жестким. Деньги, которые были потрачены на поддержание работоспособности этих мэйнфреймов и приложений COBOL, поразительны. Должны ли учреждения выбрасывать все это и начинать заново, пока этот код COBOL все еще работает и функционирует? Миграция с COBOL не будет ни дешевой, ни быстрой.

Все меняется, но перспектива сделать что-то с этим вряд ли привлекательна. Тем не менее, единственный способ улучшить ситуацию — это провести контролируемую, осторожную миграцию на современные программные и аппаратные средства.

Для достижения этого без сбоев, потери данных и простоев потребуются современные знания и деньги, что составляет 50 процентов от этого уравнения. Другая половина — это знания и время COBOL.

cobol — Начало работы с cobol

замечания

COBOL является СО MMON B usiness O riented программирование L anguage.

Несмотря на то, что он стал произносимым именем, COBOL по-прежнему рассматривается в качестве сокращенного документа комитетом по стандартам, а COBOL является предпочтительным написанием органами стандартов ISO и INCITS.

Стандартная спецификация

Текущая спецификация

ISO / IEC 1989: 2014 Информационные технологии. Языки программирования, их среда и системные программные интерфейсы. Язык программирования COBOL.

Этот документ был опубликован в мае 2014 года и может быть приобретен в различных подразделениях стандартных органов, официально

http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=51416

Основная область использования

Бизнес ориентирован. Это обычно означает обработку транзакций. Банковские, правительственные агентства и страховая отрасль являются основными областями применения приложений COBOL. В системах мейнфреймов IBM обычно установлен компилятор COBOL. Существует свыше 300 КОБЛОЛЬНЫХ диалектов, причем, возможно, 10 или около того, принимая львиную долю развертываний. Большинство из этих компиляторов являются проприетарными системами, но также доступно бесплатное ПО COBOL.

категория

COBOL — это процедурный, императивный, скомпилированный язык программирования. Начиная с спецификации COBOL 2002, в стандарт были добавлены объектно-ориентированные функции.

По замыслу дизайна COBOL — очень многоязычный язык программирования. Хотя алгебраическая форма разрешена:

COMPUTE I = R * B

первоначальное намерение состояло в том, чтобы использовать полные слова для вычислительных описаний и манипулирования данными:

MULTIPLY INTEREST-RATE BY BALANCE GIVING CURRENT-INTEREST ROUNDED MODE IS NEAREST-EVEN

Это дизайнерское решение имеет как чемпионов, так и хулителей. Некоторые считают, что это слишком многословно, в то время как другие утверждают, что синтаксис позволяет повысить удобочитаемость в бизнес-среде.

Десятичная математика

COBOL разработан вокруг десятичной арифметики, в отличие от большинства языков, использующих двоичное внутреннее представление. Спецификация COBOL требует очень точных десятичных вычислений с фиксированной точкой, одного из аспектов языка, который хорошо изучен в финансовых секторах. COBOL также позволяет использовать БИНАРЫ ИСПОЛЬЗОВАНИЯ, но опирается на десятичные (базовые 10) представления.

история

COBOL относится к концу 1950-х годов, с первоначальными реализациями, опубликованными в 1960 году.

ВМС США контр-адмирал Грейс Хоппер часто ассоциируется с COBOL и выступает от имени языка на ранних этапах разработки. Она была не единственным человеком, кто участвует в разработке и разработке COBOL, любыми средствами, но часто упоминается как Мать COBOL.

Благодаря ранней поддержке со стороны правительств и крупных корпораций, COBOL широко используется в течение многих десятилетий. Для некоторых это остается предметом гордости, а шип для других, которые считают это устаревшим. Истина, вероятно, лежит где-то между этими крайними взглядами. Когда применяется для обработки транзакций, COBOL находится дома. При применении к современным веб-экранам и сетевым приложениям это может показаться не таким комфортным.

Состав

Программы COBOL написаны в четырех отдельных подразделениях.

  • ИДЕНТИФИКАЦИОННОЕ ОТДЕЛЕНИЕ
  • ОТДЕЛЕНИЕ ОКРУЖАЮЩЕЙ СРЕДЫ
  • ОТДЕЛ ДАННЫХ
  • ПОРЯДОК ПРОЦЕДУРЫ

Описания данных

Будучи разработанным для обработки десятичных данных, COBOL разрешает описания данных на основе PICTURE в сгруппированных иерархиях.

01 record-group.
   05 balance        pic s9(8)v99.
   05 rate           pic 999v999.
   05 show-balance   pic $Z(7)9.99.

Это определяет balance как знаковое восьмизначное значение с двумя цифрами, принятыми после десятичной точки. rate составляет три цифры до и три цифры после предполагаемой десятичной точки. show-balance — это числовое поле редактирования, которое будет иметь знак основного доллара, семь цифр (с нулевым подавлением), по меньшей мере, с одной цифрой, обозначенной двумя цифрами после десятичной точки.

balance может использоваться в расчетах, show-balance предназначен только для целей отображения и не может использоваться в вычислительных инструкциях.

Процедурные утверждения

COBOL — это зарезервированное ключевое слово тяжелый язык. MOVE, COMPUTE, MULTIPLY, PERFORM длинные слова составляют основную часть стандартной спецификации. Более 300 ключевых слов и 47 операционных отчетов в спецификации COBOL 2014. Многие реализации компилятора добавляют еще больше к зарезервированному списку слов.

Привет, мир

HELLO * HISTORIC EXAMPLE OF HELLO WORLD IN COBOL
       IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO.
       PROCEDURE DIVISION.
           DISPLAY "HELLO, WORLD".
           STOP RUN.
 

Дни компоновки перфокарты и прописные только входные данные значительно отстают. Однако большинство реализаций COBOL по-прежнему обрабатывают один и тот же макет кода. Даже текущие реализации следуют одинаково (часто даже в верхнем регистре), скомпилированы и производятся.

Хорошо отформатированная современная реализация может выглядеть так:

*> Hello, world
identification division.
program-id. hello.

procedure division.
display "Hello, world"
goback.
end program hello.
 

С некоторыми реализациями COBOL это можно сократить до:

display "Hello, world".
 

Этот формат обычно требует, чтобы таймеры компиляции устанавливали компилятор COBOL в режим расслабленного синтаксиса, так как некоторые из обычно обязательных инструкций DIVISION отсутствуют.

COBOL предполагает источники FIXED формата по умолчанию, даже в текущей спецификации.

До 2002 года COBOL

колонка Площадь
1-6 Область номера последовательности
7 Область индикатора
8-12 Площадь A
12-72 Площадь B
73-80 Область названия программы

В некоторых случаях редакторы текста мейнфрейма IBM по-прежнему настроены для этой формы.

Сообщение 2002 и в COBOL 2014, Area A и B были объединены и расширены до столбца 255, а область Название программы была удалена.

колонка Площадь
1-6 Область номера последовательности
7 Область индикатора
8- Текст программы Площадь

Столбец 8 через определенную реализацию маржу R , обычно по-прежнему ограничивается столбцом 72, но допускается, чтобы спецификация запускалась до столбца 255.

COBOL 2002 ввел исходный текст FORMAT FREE . Нет области номера последовательности , нет области индикатора , а исходные строки могут быть любой длины (до определенного предела реализации Margin R , обычно менее 2048 символов в строке, обычно 255).

Но компилятор запускается в режиме FORMAT FIXED по умолчанию. Как правило, для источника бесплатного формата обычно используется компилятор или компиляторная директива .

bbbbbb >>SOURCE FORMAT IS FREE
 

Где bbbbbb представляет 6 пробелов или любые другие символы. (Они игнорируются как часть начального по умолчанию режима фиксированного формата.

Установите gnu-cobol на Mac OS X

gnu-cobol доступен через систему доморощенного.

Откройте окно терминала из /Applications/Utilities/Terminal или используйте команду Command+Space и введите "Terminal" .

Если у вас нет установленной системы домохозяйства, добавьте ее, введя или скопировав и вставив в свой терминал:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
 

После завершения команды введите:

brew install gnu-cobol
 

То есть, теперь вы можете скомпилировать программы Cobol на своем Mac.

Заложники COBOL и математика. Часть 1 / Блог компании RUVDS.com / Хабр

Посмотрим правде в глаза: никто не любит дробные числа — даже компьютеры.

Когда речь заходит о языке программирования COBOL — первый вопрос, который всплывает у всех в голове, всегда выглядит так: «Почему человечество всё ещё использует этот язык во множестве жизненно важных областей?». Банки всё ещё пользуются COBOL. Около 7% ВВП США зависит от COBOL в деле обработки платежей от CMS. Налоговая служба США (IRS), как всем хорошо известно, всё ещё использует COBOL. В авиации тоже используется этот язык (отсюда я узнала одну интересную вещь на эту тему: номер бронирования на авиабилетах раньше был обычным указателем). Можно сказать, что множество весьма серьёзных организаций, идёт ли речь о частном или государственном секторе, всё ещё используют COBOL.

→ Вторая часть

Автор материала, первую часть перевода которого мы сегодня публикуем, собирается найти ответ на вопрос о том, почему COBOL, язык, который появился в 1959 году, всё ещё настолько распространён.

Почему COBOL всё ещё жив?

Традиционный ответ на этот вопрос глубоко циничен. Организации — это лень, некомпетентность и тупость. Они гонятся за дешевизной и не склонны к тому, чтобы вкладывать деньги в переписывание своих программных систем на чём-то современном. В целом можно предположить, что причина того, что работа столь значительного количества организаций зависит от COBOL, представляет собой комбинацию инерции и недальновидности. И в этом, конечно, есть доля истины. Переписывание больших объёмов запутанного кода — это масштабная задача. Это дорого. Это сложно. И если существующее ПО, по-видимому, работает хорошо, у организации не будет особенно сильной мотивации для инвестирования в проект по обновлению этого ПО.

Всё это так. Но когда я работала на IRS ветераны COBOL рассказывали о том, что они пытались переписать код на Java и оказалось, что Java не может правильно выполнять вычисления.

Для меня это звучало крайне странно. Настолько странно, что у меня сразу же возникла паникёрская мысль: «Господи, значит IRS округляла всем налоговые платежи в течение 50 лет!!!». Я просто не могла поверить в то, что COBOL способен обойти Java в плане математических вычислений, необходимых IRS. В конце концов — людей-то в космос они не запускали.

Один из интересных побочных эффектов того, что летом я изучала COBOL, заключается в том, что я начала понимать следующее. Дело не в том, что Java не может правильно выполнять математические вычисления. Дело в том — как именно Java делает вычисления корректными. И когда понимаешь то, как вычисления выполняются в Java, и то, как то же самое делается в COBOL — начинаешь понимать и то, почему многим организациям так сложно избавиться от своего компьютерного наследия.

Над какими «i» надо расставить точки?

Я сейчас немного отойду от рассказа о COBOL и расскажу о том, как компьютеры хранили информацию до того, как двоичное представление данных стало стандартом де-факто (а вот материал о том, как пользоваться интерфейсом z/OS; это — нечто особенное). Я так думаю, что в деле рассмотрения нашего вопроса полезно будет уклониться от основной темы в эту сторону. В вышеупомянутом материале я рассказывала о различных способах использования двоичных переключателей для хранения чисел в двоичной, троичной, десятичной системах счисления, для хранения отрицательных чисел — и так далее. Единственное, чему я не уделила достаточно внимания — это то, как хранятся десятичные числа.

Если бы вы проектировали собственный двоичный компьютер — то вы могли бы начать работу с принятия решения о том, что будете пользоваться двоичной системой счисления. Биты слева от точки представляют целые числа — 1, 2, 4, 8. А биты справа — дробные числа — 1/2, 1/4, 1/8…

2.75 в двоичном представлении

Проблема тут заключается в том, чтобы понять — как хранить саму десятичную точку (на самом деле — мне следовало бы сказать «двоичную точку» — ведь, в конце концов, говорим-то мы о двоичных числах). Это — не какая-нибудь «компьютерная алхимия», поэтому вы вполне можете догадаться о том, что я говорю о числах с плавающей точкой и о числах с фиксированной точкой. В числах с плавающей точкой двоичная точка может быть поставлена где угодно (то есть — она может «плавать»). Положение точки сохраняется в виде экспоненты. Возможность перемещать точку даёт возможность хранения более широкого диапазона чисел, чем доступно при отсутствии подобной возможности. Десятичную точку можно переместить в самую заднюю часть числа и выделить все биты для хранения целых значений, представляя очень большие числа. Точку можно сместить в переднюю часть числа и выражать очень маленькие значения. Но эта свобода даётся ценой точности. Взглянем ещё раз на двоичное представление числа 2.75 из предыдущего примера. Переход от четырёх до восьми — это гораздо больше, чем переход от одной четвёртой к одной восьмой. Возможно, нам легче будет себе это представить, если переписать пример так, как показано ниже.

Я выбрала расстояния между цифрами на глаз — просто чтобы продемонстрировать мою идею

Разницу между числами несложно вычислить самостоятельно. Например, расстояние между 1/16 и 1/32 — это 0.03125, но расстояние между 1/2 и 1/4 — это уже 0.25.

Почему это важно? В случае двоичного представления целых чисел это значения не имеет — расстояние между соседними числами двоичной записи можно легко компенсировать, заполнив их соответствующими комбинациями битов и не потеряв в точности. Но в случае с представлением дробных чисел не всё так просто. Если попытаться «заполнить» «дыры» между соседними числами — что-нибудь может «провалиться» (и на самом деле проваливается) в эти дыры. Это ведёт к тому, что в двоичном формате не удаётся получить точные представления дробных чисел.

Это иллюстрирует классический пример числа 0.1 (одна десятая). Как представить это число в двоичном формате? 2-1 — это 1/2, или 0.5. Это — слишком большое число. 1/16 — это 0.0635. Это — слишком мало. 1/16+1/32 — это уже ближе (0.09375), но 1/16+1/32+1/64 — это уже больше, чем нам нужно (0.109375).

Если вы полагаете, что эти рассуждения можно продолжать бесконечно — то вы правы — так оно и есть.

Тут вы можете сказать себе: «А почему бы нам просто не сохранить 0.1 точно так же, как мы храним число 1? Число 1 мы можем сохранить без всяких проблем — так давайте просто уберём десятичную точку и будем хранить любые числа так же, как храним целые числа».

Это — отличное решение данной проблемы за исключением того, что оно требует фиксации двоичной/десятичной точки в некоем заранее заданном месте. В противном случае числа 10.00001 и 100000.1 будут выглядеть совершенно одинаково. Но если точка зафиксирована так, что на дробную часть числа выделено, скажем, 2 знака, то мы можем округлить 10.00001 до 10.00, а 100000.1 превратится 100000.10.

Только что мы «изобрели» числа с фиксированной точкой.

С представлением разных значений с помощью чисел с фиксированной точкой мы только что разобрались. Делать это просто. Можно ли, используя числа с фиксированной точкой, облегчить решение ещё каких-нибудь задач? Вспомним тут о наших хороших друзьях — о двоично-десятичных числах (Binary Coded Decimal, BCD). Кстати, чтобы вы знали, именно эти числа используются в большинстве научных и графических калькуляторов. От этих устройств, что совершенно ясно, ждут правильных результатов вычислений.

Калькулятор TI-84 Plus

Рекуррентное соотношение Мюллера и Python

Числа с фиксированной точкой считают более точными из-за того, что «дыры» между числами постоянны, и из-за того, что округление происходит лишь тогда, когда нужно представить число, для которого просто не хватает места. Но при использовании чисел с плавающей точкой мы можем представлять очень большие и очень маленькие числа, используя один и тот же объём памяти. Правда, с их помощью нельзя представить все числа в доступном диапазоне точно и мы вынуждены прибегать к округлению для того, чтобы заполнить «дыры».

COBOL был создан как язык, в котором, по умолчанию, используются числа с фиксированной точкой. Но значит ли это, что COBOL лучше современных языков подходит для выполнения математических вычислений? Если мы зацепимся за проблему наподобие результата вычисления значения 0.1+0.2 — то может показаться, что на предыдущий вопрос надо ответить «да». Но это будет скучно. Поэтому давайте пойдём дальше.

Мы собираемся поэкспериментировать с COBOL, используя так называемое рекуррентное соотношение Мюллера (Muller’s Recurrence). Жан-Мишель Мюллер — это французский учёный, который, возможно, сделал важнейшее научное открытие в сфере информационных технологий. Он нашёл способ нарушить правильность работы компьютеров с использованием математики. Я уверена, что он сказал бы, что изучает проблемы надёжности и точности, но нет и ещё раз нет: он создаёт математические задачи, которые «ломают» компьютеры. Одна из таких задач — это его рекуррентная формула. Выглядит она так:

Этот пример взят отсюда

Формула совсем не кажется страшной. Правда? Эта задача подходит для наших целей по следующим причинам:

  • Тут используются лишь простые правила математики — никаких сложных формул или глубоких идей.
  • Мы начинаем с числа, имеющего две цифры после десятичной точки. В результате легко представить себе то, что мы работаем со значениями, представляющими некие денежные суммы.
  • Ошибка, которая получается в результате вычислений — это не маленькая ошибка округления. Это — отклонение от правильного результата на целые порядки.

Вот небольшой скрипт на Python, которые вычисляет результаты рекуррентного соотношения Мюллера, используя числа с плавающей и фиксированной точкой:

from decimal import Decimal
def rec(y, z):
 return 108 - ((815-1500/z)/y)
 
def floatpt(N):
 x = [4, 4.25]
 for i in range(2, N+1):
  x.append(rec(x[i-1], x[i-2]))
 return x
 
def fixedpt(N):
 x = [Decimal(4), Decimal(17)/Decimal(4)]
 for i in range(2, N+1):
  x.append(rec(x[i-1], x[i-2]))
 return x
N = 20 
flt = floatpt(N)
fxd = fixedpt(N)
for i in range(N):
 print str(i) + ' | '+str(flt[i])+' | '+str(fxd[i])

Вот что получается в результате работы этого скрипта:

i  | floating pt    | fixed pt
-- | -------------- | ---------------------------
0  | 4              | 4
1  | 4.25           | 4.25
2  | 4.47058823529  | 4.4705882352941176470588235
3  | 4.64473684211  | 4.6447368421052631578947362
4  | 4.77053824363  | 4.7705382436260623229461618
5  | 4.85570071257  | 4.8557007125890736342039857
6  | 4.91084749866  | 4.9108474990827932004342938
7  | 4.94553739553  | 4.9455374041239167246519529
8  | 4.96696240804  | 4.9669625817627005962571288
9  | 4.98004220429  | 4.9800457013556311118526582
10 | 4.9879092328   | 4.9879794484783912679439415
11 | 4.99136264131  | 4.9927702880620482067468253
12 | 4.96745509555  | 4.9956558915062356478184985
13 | 4.42969049831  | 4.9973912683733697540253088
14 | -7.81723657846 | 4.9984339437852482376781601
15 | 168.939167671  | 4.9990600687785413938424188
16 | 102.039963152  | 4.9994358732880376990501184
17 | 100.099947516  | 4.9996602467866575821700634
18 | 100.004992041  | 4.9997713526716167817979714
19 | 100.000249579  | 4.9993671517118171375788238

Вплоть до 12 итерации ошибка округления выглядит более или менее незначительной, но потом начинается настоящий ад. Вычисления с плавающей точкой сходятся к числу, которое в двадцать раз больше того, что получается при вычислениях с фиксированной точкой.

Возможно, вы думаете, что маловероятно чтобы кто-то выполнял столь масштабные рекурсивные вычисления. Но именно это стало причиной катастрофы 1991 года, приведшей к гибели 28 человек, когда система управления ракетой Patriot неправильно рассчитала время. Оказалось, что вычисления с плавающей точкой случайно принесли немало вреда. Вот отличный материал о том, что, возможно, высокопроизводительные вычисления — это всего лишь более быстрый способ получения неправильных ответов. Почитайте эту работу в том случае, если вы хотите получить больше сведений об обсуждаемой тут проблеме и увидеть больше примеров.

Неприятность заключается в том, что объём оперативной памяти, который имеется у компьютеров, не бесконечен. Поэтому невозможно хранить бесконечное количество десятичных (или двоичных) позиций. Вычисления с фиксированной точкой могут быть точнее вычислений с плавающей точкой в том случае, если есть уверенность в том, что низка вероятность того, что понадобится больше чисел после точки, чем это предусматривает используемый формат. Если число в этот формат не поместится — оно будет округлено. Надо отметить, что ни вычисления с фиксированной точкой, ни вычисления с плавающей точкой не защищены от проблемы, которую демонстрирует рекуррентное соотношение Мюллера. И те и другие в итоге дают неверные результаты. Вопрос заключается в том — когда это происходит. Если увеличить число итераций в Python-скрипте, например, с 20 до 22, то итоговое число, полученное при вычислениях с фиксированной точкой, составит 0.728107. 23 итерации? -501.7081261. 24? 105.8598187.

В разных языках эта проблема проявляется по-разному. Некоторые, вроде COBOL, позволяют работать с числами, параметры которых заданы жёстко. А в Python, например, есть значения по умолчанию, которые могут быть настроены в том случае, если у компьютера есть достаточно памяти. Если мы добавим в нашу программу строчку getcontext().prec = 60, сообщив десятичному модулю Python о том, чтобы он использовал бы 60 позиций после точки, а не 28, как делается по умолчанию, то программа сможет без ошибок выполнить 40 итераций рекуррентного соотношения Мюллера.

Продолжение следует…

Уважаемые читатели! Сталкивались ли вы с серьёзными проблемами, возникшими из-за особенностей вычислений с плавающей точкой?

What is, History, Install, Program Example

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • Database Testing
      • JT4000 Тестирование базы данных
        • Назад
        • JUnit
        • LoadRunner
        • Ручное тестирование
        • Мобильное тестирование
        • Mantis
        • Почтальон
        • QTP
        • Назад
        • Центр качества
        • 000300030003 SoapUI
        • Управление тестированием
        • TestLink
    • SAP

        • Назад
        • ABAP
        • APO
        • Начинающий
        • Basis
        • BODS
        • BI
        • BPC
        • CO
        • Назад
        • CRM
        • Crystal Reports
        • QM4000
        • QM4
        • Заработная плата
        • Назад
        • PI / PO
        • PP
        • SD
        • SAPUI5
        • Безопасность
        • Менеджер решений
        • Successfactors
        • Учебники SAP

          • Apache
          • AngularJS
          • ASP.Net
          • C
          • C #
          • C ++
          • CodeIgniter
          • СУБД
          • JavaScript
          • Назад
          • Java
          • JSP
          • Kotlin
          • Linux
          • Linux
          • Kotlin
          • Linux
          • js

          • Perl
          • Назад
          • PHP
          • PL / SQL
          • PostgreSQL
          • Python
          • ReactJS
          • Ruby & Rails
          • Scala
          • SQL
          • 000

          • SQL
          • 000

            0003 SQL

            000

            0003 SQL

            000

          • UML
          • VB.Net
          • VBScript
          • Веб-службы
          • WPF
      • Обязательно учите!

          • Назад
          • Учет
          • Алгоритмы
          • Android
          • Блокчейн
          • Business Analyst
          • Создание веб-сайта
          • CCNA
          • Облачные вычисления
          • COBOL
        • COBOL
        • 900

          Учебное пособие по COBOL

          COBOL (Common Business Oriented Language), императивный и процедурный язык обычно используется в финансовых и административных системах коммерческого дома.

          Учебное пособие по COBOL

          Изучите COBOL с помощью этого наиболее полного учебного пособия по COBOL быстро и легко. Этот учебник, полезный для начинающих, объясняет все основные концепции с примерами, которые вам понадобятся, чтобы получить уверенность в программировании на языке COBOL.

          Для кого предназначено это Учебное пособие по COBOL?

          Это руководство будет очень полезно для всех новичков, желающих развить свои навыки программирования на COBOL. Первокурсникам, BCA, BE, BTech, MCA, студентам колледжей также будет полезно создавать заметки для подготовки к экзаменам, лабораторных упражнений, заданий и жизненных вопросов. Программисты, желающие работать с COBOL, также найдут это руководство очень полезным.

          Что мне нужно знать для начала?

          Базовое понимание любого языка программирования и JCL поможет вам быстро понять концепции COBOL.Программа

          COBOL, описанная в этом руководстве

          В этом руководстве рассматриваются: основы COBOL

          , типы данных, основные глаголы, макет данных, условный оператор, итеративные операторы, обработка строк, таблица, обработка файлов, глаголы обработки файлов, подпрограммы, внутренняя сортировка, интерфейс базы данных

          Изучение всего этого придаст вам уверенности в работе с COBOL. Итак, приступим!

          Введение в COBOL

          • COBOL означает COmmon Business Oriented Language.
          • Он был разработан в 1959 году группой компьютерных профессионалов, известной как Conference on Data System Language (CODASYL).
          • Этот язык используется для написания прикладной программы. Его нельзя использовать для написания системного программного обеспечения.
          • Американский национальный институт стандартов (ANSI) разработал стандарт языка в 1968 году.
          • После стандартизации в 1968 году он с тех пор несколько раз пересматривался.
          • Объектно-ориентированный COBOL был выпущен в 2002 году.

          Особенности COBOL

          • Это стандартный язык, который выполняется и компилируется на таких машинах, как персональный компьютер, IBM и т. Д.
          • COBOL предназначен для разработки бизнес-приложений.
          • Благодаря расширенным возможностям обработки файлов он может обрабатывать огромные объемы данных.
          • Логическая структура управления в COBOL упрощает чтение и изменение.
          • Различные инструменты отладки и тестирования доступны на всех компьютерных платформах, поэтому это надежный язык.
          • Легко отлаживать, потому что он имеет разные подразделения.

          Преимущества COBOL

          • Это первый широко используемый язык программирования высокого уровня.
          • Он совместим со своими прошлыми версиями.
          • COBOL может обрабатывать огромные объемы данных.
          • Устранение ошибок проще, потому что оно содержит эффективное сообщение об ошибке.
          • Используется как язык самодокументирования.

          Структура программы COBOL

          Различные разделы в структуре программы COBOL следующие:

          1.Разделы

          • Разделы являются логическим подразделением логики программы.
          • Раздел представляет собой собрание абзацев.

          2. Абзацы

          • Абзацы являются подразделом выделения.
          • Это определенное пользователем или предопределенное имя, за которым следует точка, а также включает ноль или более предложений.

          3. Предложения

          • Предложения — это комбинация одного или нескольких утверждений.
          • Они встречаются только в разделении процедур.
          • Предложение должно заканчиваться точкой (.).

          4. Операторы

          • Это содержательные операторы COBOL, и они выполняют некоторую обработку.

          5. Персонажи

          • Это самые низкие символы в иерархии, и их нельзя разделить.

          Программа COBOL включает четыре отдела

          1) Идентификационный отдел
          2) Отдел окружающей среды
          3) Отдел данных
          4) Отдел процедур

          1.Идентификационный отдел

          • Это первый и обязательный раздел каждой программы COBOL.
          • Компилятор и программист используют это разделение для распознавания программы.
          • PROGRAM-ID — единственный обязательный параграф в этом разделе.
          • Идентифицирует имя программы, содержащее символы.

          2. Отдел окружающей среды
          Он используется для идентификации входных и выходных файлов в программе.

          Раздел «Среда» состоит из двух разделов:

          a) Раздел конфигурации — Он предоставляет информацию о системе, в которой программа написана и выполняется.

          Раздел конфигурации включает два параграфа:
          i) Исходный компьютер — Эта система используется для компиляции программы.
          ii) Объектный компьютер — Эта система используется для выполнения программы. б) Секции ввода-вывода
          Предоставляет информацию о файлах, которые используются в программе.

          Включает два параграфа:
          i) Управление файлами — Предоставляет информацию о внешних наборах данных, используемых в программе.
          ii) I-O control — Предоставляет информацию о файлах, используемых в программе.

          3) Отдел данных
          Он используется для определения переменных, используемых в программе.

          Включает четыре раздела:

          a) Раздел файла — Он используется для определения структуры записи файла.
          b) Раздел рабочего хранилища — Этот раздел используется для объявления временных переменных и файловых структур, которые используются в программе.
          c) Раздел локального хранилища — Аналогичен разделу локального рабочего хранилища. Разница в том, что переменные инициализируются и выделяются каждый раз, когда программа начинает выполнение.
          d) Раздел связи — Он описывает имена данных, полученных из внешнего хранилища.

          4) Отдел процедуры

          • Используется для включения логики программы.
          • Включает в себя исполняемые операторы с использованием переменной, определенной в разделе данных.
          • Абзацы и названия разделов определяются пользователем в этом разделе.
          • В разделе процедур должна быть хотя бы одна выписка.
          • Последний оператор программы — STOP RUN (используется в вызывающих программах) или EXIT PROGRAM. (используется в вызываемой программе)

          .

          cobol — Начало работы с cobol

          COBOL — это CO mmon B usiness O заданное программирование L язык.

          Несмотря на то, что название COBOL стало произносимым, комитет по стандартизации по-прежнему рассматривает его как аббревиатуру, а органы по стандартизации ISO и INCITS предпочитают COBOL.

          Стандартные спецификации

          Текущая спецификация —

          ISO / IEC 1989: 2014 Информационные технологии. Языки программирования, их среды и интерфейсы системного программного обеспечения. Язык программирования COBOL

          .

          Этот документ был опубликован в мае 2014 года и может быть приобретен в различных отделениях стандартных организаций, официально расположенных по адресу

          .

          http: // www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=51416

          Основная сфера применения

          Бизнес-ориентированный. Обычно это означает обработку транзакций. Банки, государственные учреждения и страховая отрасль — основные области развертывания приложений COBOL. В мэйнфреймах IBM обычно установлен компилятор COBOL. Существует более 300 диалектов COBOL, из которых около 10 версий занимают львиную долю развертываний. Большинство этих компиляторов являются проприетарными системами, но также доступно бесплатное программное обеспечение COBOL.

          Категория

          COBOL — это процедурный императивный компилируемый язык программирования. Согласно спецификации COBOL 2002 к стандарту были добавлены объектно-ориентированные функции.

          По замыслу проекта COBOL — очень подробный язык программирования. Хотя алгебраическая форма разрешена:

            ВЫЧИСЛИТЬ I = R * B
            

          первоначальное намерение состояло в том, чтобы использовать полные слова для вычислительных описаний и обработки данных:

            МНОЖЕСТВЕННАЯ ПРОЦЕНТНАЯ СТАВКА ПО БАЛАНСУ, ПРЕДОСТАВЛЯЮЩАЯ КРУГЛЫЙ РЕЖИМ ТЕКУЩИХ ПРОЦЕНТОВ, БЛИЖАЙШИЕ-ЧЕТНЫЕ
            

          У этого дизайнерского решения есть как защитники, так и противники.Некоторые считают, что он слишком подробный, в то время как другие утверждают, что синтаксис обеспечивает большую читаемость в бизнес-среде.

          Десятичная математика

          COBOL разработан на основе десятичной арифметики, в отличие от большинства языков, использующих внутреннее двоичное представление. Спецификация COBOL требует очень точных десятичных вычислений с фиксированной точкой — аспект языка, который хорошо известен в финансовых секторах. COBOL также допускает ИСПОЛЬЗОВАНИЕ BINARY, но склоняется к десятичным представлениям (с основанием 10).

          История

          COBOL датируется концом 1950-х годов, а первые реализации были опубликованы в 1960 году.

          Контр-адмирал ВМС США Грейс Хоппер часто ассоциируется с COBOL и отстаивает его на ранних этапах разработки. Она была не единственным человеком, участвовавшим в разработке и разработке COBOL, во всяком случае, ее часто называют матерью COBOL.

          Благодаря ранней поддержке со стороны правительств и крупных корпораций, COBOL широко используется в течение многих десятилетий.Для одних он остается предметом гордости, а для других — занозой для других, которые считают его устаревшим. Истина, вероятно, находится где-то между этими крайними взглядами. В применении к обработке транзакций COBOL — дома. При применении к современным веб-экранам и сетевым приложениям это может показаться не таким удобным.

          Строение

          программ на COBOL написаны в четырех отдельных частях.

          • ИДЕНТИФИКАЦИОННЫЙ ОТДЕЛ
          • ОТДЕЛЕНИЕ ОКРУЖАЮЩЕЙ СРЕДЫ
          • ПОДРАЗДЕЛЕНИЕ ДАННЫХ
          • ПОДРАЗДЕЛЕНИЕ ПРОЦЕДУР

          Описание данных

          Разработанный для обработки десятичных данных, COBOL позволяет создавать описания данных на основе PICTURE в сгруппированных иерархиях.

            01 запись-группа.
             05 баланс pic s9 (8) v99.
             05 оцените картинку 999v999.
             05 шоу-баланс рис $ Z (7) 9.99.
            

          Это определяет баланс как восьмизначное значение со знаком с двумя цифрами после десятичной точки. Скорость — это три цифры до и три цифры после предполагаемой десятичной точки. show-balance — это поле числового редактирования, которое будет иметь начальный знак доллара, семь цифр (ноль подавлен), причем, по крайней мере, одна цифра отображается перед двумя цифрами после десятичной точки.

          balance можно использовать в вычислениях, show-balance используется только для отображения и не может использоваться в вычислительных командах.

          Протоколы

          COBOL — это язык с зарезервированными ключевыми словами. Длинные слова в стиле MOVE, COMPUTE, MULTIPLY, PERFORM составляют большую часть стандартной спецификации. Более 300 ключевых слов и 47 операционных заявлений в спецификации COBOL 2014. Многие реализации компилятора добавляют еще больше к списку зарезервированных слов.

          Привет, мир

            ПРИВЕТ * ИСТОРИЧЕСКИЙ ПРИМЕР ПРИВЕТСТВЕННОГО МИРА НА КОБОЛЕ
                 ИДЕНТИФИКАЦИОННЫЙ ОТДЕЛ.
                 ПРОГРАММА-ID. ЗДРАВСТВУЙТЕ.
                 ПРОЦЕДУРА ОТДЕЛЕНИЯ.
                     ДИСПЛЕЙ «ПРИВЕТ, МИР».
                     СТОП БЕГ.
            

          Дни макета перфокарт и ввода только прописных букв остались далеко позади. Тем не менее, большинство реализаций COBOL по-прежнему обрабатывают один и тот же макет кода.Даже текущие реализации следуют одному и тому же (часто даже в верхнем регистре) при компиляции и производстве.

          Хорошо отформатированная современная реализация может выглядеть так:

            *> Привет, мир
          идентификационное подразделение.
          идентификатор программы. Здравствуйте.
          
          процедурное деление.
          отобразить "Привет, мир"
          вернитесь назад.
          конец программы привет.
            

          В некоторых реализациях COBOL это можно сократить до:

            отображение «Привет, мир».
            

          Для этого формата обычно требуются переключатели времени компиляции, чтобы перевести компилятор COBOL в режим ослабленного синтаксиса, поскольку некоторые из обычно обязательных операторов DIVISION отсутствуют.

          COBOL по умолчанию предполагает источники ФИКСИРОВАННОГО формата, даже в текущей спецификации.

          COBOL до 2002 г.

          Столбец Область
          1-6 Область порядкового номера
          7 Область индикатора
          8-12 Область

          Область B
          73-80 Область имени программы

          Текстовые редакторы мэйнфреймов IBM в некоторых случаях все еще настраиваются для этой формы.

          Post 2002 и COBOL 2014 области A и B были объединены и расширены до столбца 255, а область названия программы была удалена.

          Столбец Область
          1-6 Область порядкового номера
          7 Область индикатора
          8- Текст программы столбец Margin R , определенный реализацией, обычно по-прежнему ограничен столбцом 72, но спецификацией разрешено работать до столбца 255.

          COBOL 2002 представил FORMAT FREE исходного текста. Отсутствует область порядковых номеров , область индикатора , а строки исходного кода могут иметь любую длину (до определенного в реализации ограничения Margin R , обычно менее 2048 символов на строку, обычно 255).

          Но компилятор по умолчанию запускается в режиме FORMAT FIXED. Обычно перед распознаванием источника в свободном формате используется переключатель компиляции или оператор Compiler Directive Facility .

            bbbbbb >> ФОРМАТ ИСТОЧНИКА БЕСПЛАТНЫЙ
            

          Где bbbbbb представляет 6 пробелов или любые другие символы. (Они игнорируются как часть области порядковых номеров режима фиксированного формата по умолчанию.)

          Установите gnu-cobol в Mac OS X

          GNU-Cobol доступен через систему домашнего приготовления.

          Откройте окно терминала из / Приложения / Утилиты / Терминал или нажмите клавишу Command + Пробел и введите «Терминал» .

          Если у вас не установлена ​​система homebrew, добавьте ее, набрав или скопировав и вставив в свой терминал:

            рубин -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
            

          После завершения команды введите:

            brew install gnu-cobol
            

          Вот и все, теперь вы можете компилировать программы Cobol на вашем Mac.

          .

          Как написать, скомпилировать и выполнить программу Cobol в ОС Linux

          Рамеш Натараджан
          26 февраля 2010 г.

          Вопрос: Я хотел бы понять основы написания и выполнения программы Cobol в ОС Linux. Вы можете объяснить это на простом примере?

          Ответ: В этой статье давайте очень быстро рассмотрим, как написать базовую программу Hello World Cobol и выполнить программу cobol в ОС Linux или Unix.

          1. Напишите программу Cobol Hello World

          Создайте программу helloworld с помощью редактора Vim, как показано ниже.

           $ vim helloworld
          
          ИДЕНТИФИКАЦИОННЫЙ ОТДЕЛ.
          ПРОГРАММА-ID. ПРИВЕТ МИР.
          * простая программа hello world
          ПРОЦЕДУРА ОТДЕЛЕНИЯ.
              ДИСПЛЕЙ «Привет, мир!».
              СТОП БЕГ.
           

          Примечание : Комментарий в коболе начинается с * .

          2. Убедитесь, что в вашей системе установлен компилятор Cobol.

          Убедитесь, что в вашей системе установлен компилятор Cobol, как показано ниже.

           $ whereis cobc
          cobc: / usr / bin / cobc /usr/share/man/man1/cobc.1.gz
          
          $ which cobc
          / usr / bin / cobc
           

          Установка компилятора cobc

          Если у вас нет компилятора cobol, установите его, как показано ниже.

           $ sudo apt-get install open-cobol
           

          3. Скомпилируйте программу на коболе

          Скомпилируйте HelloWorld, который создаст исполняемый файл HelloWorld.

           $ cobc -free -x -o helloworld-exe helloworld
          
          $ ls
          helloworld helloworld-exe *
           
          • -free — использовать бесплатный исходный формат.Без этой опции программе cobol требуется определенный формат.
          • -x — собрать исполняемую программу.
          • -o ФАЙЛ — поместить выходной файл в указанный ФАЙЛ.

          4. Выполните программу cobol

          Выполнить, указав имя программы.

           $. / Helloworld-exe
          Привет мир!
           

          Если вам понравилась эта статья, возможно, вам также понравится ..

          Помечено как:
          cobc -бесплатно,
          Компилятор Cobol,
          Cobol Учебник,
          Программа Hello World Cobol,
          Примеры Hello World

          .

          Добавить комментарий

          Ваш адрес email не будет опубликован. Обязательные поля помечены *

          2024 © Все права защищены. Карта сайта