Из Википедии, бесплатной энциклопедии
  (Перенаправлено из OpenCOBOL )
Перейти к навигации Перейти к поиску

GnuCOBOL (ранее OpenCOBOL , и в течение короткого времени известный как GNU Cobol ) - это бесплатная реализация языка программирования COBOL . Первоначально разработанный Кейсуке Нисида, ведущую разработку взял на себя Роджер Уайт. Последние разработки сейчас возглавляют Саймон Собиш, Рон Норман, Эдвард Харт, Сергей Кашырин и многие другие. [1]

История [ править ]

Работая с Рилдо Прагана над TinyCOBOL, Кейсуке решил попробовать компилятор COBOL, подходящий для интеграции с gcc . Вскоре это стало проектом OpenCOBOL. Кейсуке работал ведущим разработчиком до 2005 года и до версии 0.31. Затем Роджер взял на себя руководство и выпустил OpenCOBOL 1.0 27 декабря 2007 года. Работа над предварительным выпуском OpenCOBOL 1.1 продолжалась до февраля 2009 года. В мае 2012 года активная разработка была перенесена на SourceForge , а предварительный выпуск от февраля 2009 года был отмечен как выпуск. [2] В конце сентября 2013 года OpenCOBOL был принят как проект GNU , переименован в GNU Cobol, а затем, наконец, в GnuCOBOL в сентябре 2014 года. [3] Рон Норман добавил модуль Writer отчетов в качестве филиала GnuCobol 2.0, и Сергей Kashyrin разработал версию , которая использует C ++ интермедиатов вместо C . [4]

Последний текущий выпуск теперь - v3.1 Final, выпущенный 7 июля 2020 года.

Передача авторских прав Free Software Foundation на исходный код GnuCOBOL (включая версии с написанием GNU Cobol и OpenCOBOL) была завершена 17 июня 2015 г. [5]

Философия [ править ]

Стремясь соответствовать стандартам COBOL до текущей спецификации COBOL 2014 , а также включать функции, общие для существующих компиляторов, разработчики не претендуют на какой-либо уровень соответствия стандартам. [6] Тем не менее, финальная версия 2.2 проходит более 9 688 (99,79%) тестов, включенных в набор тестов NIST COBOL 85, из 9 708 (так как 20 удалены). [7]

GnuCOBOL переводит программу COBOL (исходный код) в программу C. Затем программа C может быть скомпилирована в реальный код, используемый компьютером (объектный код), или в библиотеку, где другие программы могут вызывать ее (связывать). Под UNIX и аналогичными операционными системами (например, Linux ) используется компилятор GNU C. Для Windows пакет Microsoft Visual Studio Express предоставляет компилятор C. Двухэтапная компиляция обычно выполняется одной командой, но существует опция, позволяющая программисту остановить компиляцию после того, как код C. [8]

Документация [ править ]

Сайт opencobol.org был официальным домом для команды разработчиков с 2002 по 2012 год и был лучшим источником информации о восходящих разработках. [9] Однако все недавние [ когда? ] сейчас ведутся разработки в рамках проекта SourceForge по адресу https://sourceforge.net/projects/gnucobol/ .

Руководство программиста GnuCOBOL, написанное Гэри Катлером, было опубликовано под лицензией GNU Free Documentation License . [8] Он был обновлен и теперь включает GnuCOBOL с Report Writer и указан на обзорной странице документации GnuCOBOL с последними версиями в дереве кода. [10] Он поддерживается Винсентом Коэном, Джеймсом К. Лоуденом и другими по мере выпуска каждой новой версии компилятора и доступен по адресу https://gnucobol.sourceforge.io/ .

Примеры программ [ править ]

Исторический [ править ]

000100 * HELLO.COB GnuCOBOL пример 000200  ИДЕНТИФИКАЦИЯ  DIVISION . 000300 ИД  ПРОГРАММЫ .  привет . 000400  ПРОЦЕДУРА  DIVISION . 000500  ДИСПЛЕЙ «Привет, мир!» . 000600  СТОП  ПУСК .

Составление и исполнение:

$ cobc -x HELLO.COB $ ./HELLO Привет, мир!

Современный, свободный формат [ править ]

*> GnuCOBOL Hello World, пример разделения идентификаторов  . идентификатор программы . привет . процедурное деление . отображение "Привет, мир!" возвращение конечного дисплея .   

Составление и исполнение:

$ cobc -x -free hello.cob $ ./hello Привет, мир!

Самый короткий [ править ]

Самая короткая допустимая программа на COBOL с опцией упрощенного синтаксиса в GnuCOBOL 2.0 - это пустой файл. Составление и исполнение:

$ cobc -x -frelax-syntax ./empty.cob ./empty.cob: 1: Предупреждение: заголовок PROGRAM-ID отсутствует - предполагается, что $ ./empty $

Для более ранних версий и с упрощенным синтаксисом:

отображение "Привет, мир!" .

Составление и исполнение:

$ cobc -x -frelax-syntax -free hello.cob hello.cob: 1: Предупреждение: заголовок PROGRAM-ID отсутствует - предполагается hello.cob: 1: Предупреждение: заголовок PROCEDURE DIVISION отсутствует - предполагается $ ./hello Привет, мир!

Без упрощенного синтаксиса и с любой версией GnuCOBOL, GNU Cobol или OpenCOBOL. (Обратите внимание, есть 7 ведущих пробелов в соответствии с исходным кодом COBOL ФИКСИРОВАННОГО макета):

  идентификатор программы . ч . процедурное  деление . отображение "Привет, мир!" .

Компиляция происходит без ошибок:

$ cobc -x smallest.cob $ ./smallest Привет, мир!

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

Реализация [ править ]

Парсер и лексический сканер используют Bison и Flex . GPL лицензированного компилятора и LGPL лицензированы библиотеки времени выполнения записываются в C и использовать C ABI для внешней программы связи.

Пакетирование сборки использует систему сборки GNU . Стандартные тесты с make checkиспользованием Autoconf , набор тестов ANSI85, запускаемый с make testиспользованием сценариев Perl .

Сценарий configure, который устанавливает компиляцию GnuCOBOL, имеет следующие параметры:

  • выбор компилятора C и его параметров для компиляции пост-перевода
  • система управления базами данных для поддержки ISAM
  • включение iconv

Доступность [ править ]

  • 1.0 от SourceForge. [11]
  • Выпуск 1.1 от SourceForge [12]
  • Версия для разработки 2.0 от SourceForge [13]
  • open-cobol пакет Debian . [14]
  • 2.2 Final, выпущено 7 сентября 2017 г. на SourceForge [15]
  • 2.2 Документация, выпущенная в сентябре 2017 г. из дерева кода SourceForge.
  • 3.1 Выпущен в июле 2020 года вместе с документацией.

Ссылки [ править ]

  1. ^ Tiffin, Брайан (19 октября 2013). «OpenCOBOL FAQ» . Какова история развития OpenCOBOL? . Проверено 13 декабря 2013 года .
  2. ^ Tiffin, Брайан (19 октября 2013). «OpenCOBOL FAQ» . Какая текущая версия OpenCOBOL? . Проверено 13 декабря 2013 года .
  3. ^ Тиффин, Брайан. «GNU Cobol теперь реальная вещь» . Архивировано из оригинала на 5 октября 2013 года . Проверено 1 октября 2013 года .
  4. ^ Sobisch, Саймон (6 ноября 2013). «Работа в процессе» . GNU Cobol 2.0 C ++.
  5. ^ Тиффин, Брайан. «Состояние проекта» . Проверено 23 июля 2015 года .
  6. ^ "OpenCOBOL FAQ" . 17 октября 2013 г. Насколько завершен OpenCOBOL? . Дата обращения 7 июня 2014 . Несмотря на то, что OpenCOBOL может соответствовать высоким стандартам качества и надежности, авторы НЕ утверждают, что это реализация COBOL, соответствующая стандартам.
  7. ^ "OpenCOBOL FAQ" . Проходит ли OpenCOBOL набор тестов NIST? . Проверено 9 октября 2013 года .
  8. ^ a b Катлер, Гэри. «Руководство программиста OpenCOBOL» (PDF) . Opencobol.addltocobol.com . Проверено 20 ноября 2012 года .
  9. ^ "Компилятор COBOL с открытым исходным кодом" . OpenCOBOL . Проверено 20 ноября 2012 года .
  10. ^ Катлер, Гэри. "Руководства по GnuCOBOL" . Opencobol.addltocobol.com . Проверено 22 июля 2015 года .
  11. ^ «GnuCOBOL - Просмотр файлов в» . Sourceforge.net. 27 декабря 2007 . Проверено 28 октября 2015 года .
  12. ^ Загрузки GnuCOBOL на SourceForge
  13. ^ Загрузки GnuCOBOL на SourceForge
  14. ^ Детали пакета Debian
  15. ^ Загрузки GnuCOBOL на SourceForge

Внешние ссылки [ править ]

  • Сайт GNU, официальные выпуски GnuCOBOL
  • GnuCOBOL на SourceForge.net
  • Консорциум COBOL с открытым исходным кодом в Японии
  • GnuCOBOL FAQ
  • Add1ToCOBOL Open Source Cobol и пропагандистский сайт OpenCOBOL
  • tiny-cobol на SourceForge.net
  • Новая группа пользователей COBOL