ГнуКОБОЛ - GnuCOBOL

ГнуКОБОЛ
Heckert GNU white.svg
Оригинальный автор (ы)Кейсуке Нисида, Роджер Уайт
Разработчики)Эдвард Харт, Сергей Кашырин, Рон Норман, Саймон Собиш и многие другие.
изначальный выпуск25 января 2002 г.; 18 лет назад (2002-01-25)
Стабильный выпуск
3.1 / 11 ноября 2020; 15 дней назад (2020-11-11)
Предварительный выпуск
3.1rc-1/7 июля 2020; 4 месяца назад (2020-07-07)
Репозиторийhttps://svn.code.sf.net/p/gnucobol/code/trunk
Написано вC, с C ++ ответвляться
Размер2 МБ
Доступно вАнглийский, немецкий, итальянский, японский, испанский
ТипЯзык программирования
ЛицензияGPL с библиотеками времени выполнения под LGPL
Интернет сайтhttps://www.gnu.org/software/gnucobol/

ГнуКОБОЛ (ранее OpenCOBOL, и в течение короткого времени известный как GNU 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] Рон Норман добавил модуль Report Writer как ответвление GnuCobol 2.0, а Сергей Кашырин разработал версию, в которой используется C ++ промежуточные звенья вместо C.[4]

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

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

Философия

Стремясь соответствовать стандартам COBOL до нынешних КОБОЛ 2014 спецификации, а также включить функции, общие для существующих компиляторов, разработчики не претендуют на какой-либо уровень соответствия стандартам.[6] Несмотря на это, финальная версия 2.2 прошла более 9688 (99,79%) тестов, включенных в NIST Набор тестов COBOL 85 из 9708 (так как 20 удалены).[7]

GnuCOBOL переводит КОБОЛ программу (исходный код) в 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.[8]Он был обновлен и теперь включает GnuCOBOL с Report Writer и указан на обзорной странице документации GnuCOBOL с последними версиями в дереве кода.[10] Его поддерживают Винсент Коэн, Джеймс К. Лоуден и другие по мере выпуска каждой новой версии компилятора, доступной по адресу https://gnucobol.sourceforge.io/.

Примеры программ

Исторический

000100 * Пример HELLO.COB GnuCOBOL000200 ИДЕНТИФИКАЦИЯ РАЗДЕЛЕНИЕ.000300 ПРОГРАММА-ID. Привет.000400 ПРОЦЕДУРА РАЗДЕЛЕНИЕ.000500     ОТОБРАЖАТЬ "Привет, мир!".000600     ОСТАНОВКА ПРОБЕГ.

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

$ cobc -x HELLO.COB$ ./ПРИВЕТПривет, мир!

Современный, свободный формат

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

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

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

Самый короткий

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

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

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

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

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

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

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

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

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

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

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

Выполнение

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

Сборка упаковки использует Система сборки GNU. Стандартные тесты с сделать чек использовать Autoconf, Набор тестов ANSI85, выполняемый сделать тест использовать Perl скрипты.

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

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

Доступность

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

Рекомендации

  1. ^ Тиффин, Брайан (19 октября 2013 г.). "OpenCOBOL FAQ". Какова история развития OpenCOBOL?. Получено 13 декабря 2013.
  2. ^ Тиффин, Брайан (19 октября 2013 г.). "OpenCOBOL FAQ". Какая текущая версия OpenCOBOL?. Получено 13 декабря 2013.
  3. ^ Тиффин, Брайан. «GNU Cobol теперь реальная вещь». Архивировано из оригинал 5 октября 2013 г.. Получено 1 октября 2013.
  4. ^ Собищ, Симон (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. ^ а б Катлер, Гэри. «Руководство программиста 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

внешняя ссылка