ГнуКОБОЛ
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
![]() | |
Оригинальный автор(ы) | Кейсуке Нисида, Роджер Уил |
---|---|
Разработчик(и) | Эдвард Харт, Сергей Каширин, Рон Норман, Саймон Собиш и многие другие. |
Первоначальный выпуск | 25 января 2002 г |
Стабильная версия | 3.2 [1] ![]() |
Репозиторий | НФ |
Написано в | C с C++ веткой |
Размер | 2 МБ |
Доступно в | английский, немецкий, итальянский, японский, испанский |
Тип | Язык программирования |
Лицензия | GPL с библиотеками времени выполнения под лицензией LGPL |
Веб-сайт | ГНУ |
GnuCOBOL (ранее OpenCOBOL и в течение короткого времени известный как GNU Cobol ) — это бесплатная реализация языка программирования COBOL , являющаяся частью проекта GNU . GnuCOBOL транскомпилирует исходный код COBOL в C перед его компиляцией с использованием собственного компилятора C. [2]
История
[ редактировать ]Работая с Рильдо Праганой над TinyCOBOL, Кейсуке Нисида решил попробовать создать компилятор COBOL, подходящий для интеграции с GCC . Вскоре это стало проектом OpenCOBOL. Нисида работал ведущим разработчиком до 2005 года и версии 0.31. Затем Роджер Уилл взял на себя руководство и выпустил OpenCOBOL 1.0 27 декабря 2007 года. Работа над предварительной версией OpenCOBOL 1.1 продолжалась до февраля 2009 года. В мае 2012 года активная разработка была перенесена на SourceForge , и был отмечен предварительный выпуск февраля 2009 года. как релиз. [3] В конце сентября 2013 года OpenCOBOL был принят как проект GNU , переименован в GNU Cobol, а затем, наконец, в GnuCOBOL в сентябре 2014 года. [4] Рон Норман добавил модуль Report Writer как ветвь GnuCobol 2.0, а Сергей Каширин разработал версию, которая использует элементы C++ вместо C. промежуточные [5]
Передача авторских прав Фонду свободного программного обеспечения на исходный код GnuCOBOL (включая версии с написанием GNU Cobol и OpenCOBOL) была завершена 17 июня 2015 года. [6]
Последней текущей версией является v3.2, выпущенная 28 июля 2023 года.
Философия
[ редактировать ]![]() | Фактическая точность частей этой статьи (относящихся к количеству пройденных тестов (теперь 9732?), см. Часто задаваемые вопросы по GnuCOBOL ) может быть поставлена под угрозу из-за устаревшей информации . ( апрель 2021 г. ) |
Стремясь соответствовать стандартам COBOL до текущей спецификации COBOL 2014 , а также включать функции, общие для существующих компиляторов, разработчики не заявляют о каком-либо уровне соответствия стандартам. [7] Несмотря на это, финальная версия 2.2 проходит более 9688 (99,79%) тестов, включенных в набор тестов NIST COBOL 85, из 9708 (поскольку 20 удалены). [8]
GnuCOBOL транслирует программу COBOL (исходный код) в C. программу Затем программу C можно скомпилировать в реальный код, используемый компьютером (объектный код), или в библиотеку, из которой другие программы могут вызывать ее (ссылаться на нее). В UNIX и подобных операционных системах (например , Linux ) компилятор GNU C. используется Для Windows пакет Microsoft Visual Studio Express предоставляет компилятор C. Двухэтапная компиляция обычно выполняется одной командой, но существует опция, позволяющая программисту остановить компиляцию после генерации кода C. [9]
Документация
[ редактировать ]Официальным домом команды разработчиков с 2002 по 2012 год был сайт opencobol.org, который был основным источником информации о разработке. [10] Однако недавние [ когда? ] разработки сейчас происходят в рамках проекта SourceForge в GnuCOBOL .
Руководство программиста GnuCOBOL, написанное Гэри Катлером, было опубликовано под лицензией свободной документации GNU . [9] Он был обновлен для включения GnuCOBOL с Report Writer и указан на странице обзора документации GnuCOBOL вместе с последними версиями в дереве кода. [11] В настоящее время его поддерживают Винсент Коэн и другие по мере выпуска каждой новой версии компилятора, и он доступен в проекте GnuCOBOL-GNU .
Примеры программ
[ редактировать ]Исторический
[ редактировать ]000100* HELLO.COB GnuCOBOL example
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID. hello.
000400 PROCEDURE DIVISION.
000500 DISPLAY "Hello, world!".
000600 STOP RUN.
Компиляция и исполнение:
$ cobc -x HELLO.COB
$ ./HELLO
Hello, world!
Современный, свободный формат.
[ редактировать ]*> GnuCOBOL Hello World example
id division.
program-id. hello.
procedure division.
display "Hello, world!" end-display
goback.
Компиляция и исполнение:
$ cobc -x -free hello.cob
$ ./hello
Hello, world!
Самый короткий
[ редактировать ]Самая короткая допустимая программа COBOL с опцией смягченного синтаксиса в GnuCOBOL 2.0 представляет собой пустой файл. Компиляция и исполнение:
$ cobc -x -frelax-syntax ./empty.cob
./empty.cob: 1: Warning: PROGRAM-ID header missing - assumed
$ ./empty
$
Для более ранних версий и с упрощенным синтаксисом:
display"Hello, world!".
Компиляция и исполнение:
$ cobc -x -frelax-syntax -free hello.cob
hello.cob: 1: Warning: PROGRAM-ID header missing - assumed
hello.cob: 1: Warning: PROCEDURE DIVISION header missing - assumed
$ ./hello
Hello, world!
Без упрощенного синтаксиса и с любой версией GnuCOBOL, GNU Cobol или OpenCOBOL. (Обратите внимание, что есть 7 начальных пробелов, соответствующих исходному коду COBOL с фиксированной компоновкой):
program-id.h.procedure division.display "Hello, world!".
Компиляция происходит без ошибок:
$ cobc -x smallest.cob
$ ./smallest
Hello, world!
Обратите внимание, что эти списки пустяков не следует рассматривать как хорошую форму COBOL; COBOL был разработан как читаемый английский язык программирования.
Выполнение
[ редактировать ]Парсер и лексический сканер используют Bison и Flex . Компилятор под лицензией GPL и библиотеки времени выполнения под лицензией LGPL написаны на C и используют C ABI для связывания внешних программ.
Упаковка сборки использует систему сборки GNU . Стандартные тесты с make check
используйте Autoconf , набор тестов ANSI85, запускаемый make test
использовать Perl- скрипты.
Сценарий настройки , настраивающий компиляцию GnuCOBOL, имеет следующие параметры:
- выбор компилятора C и его опций для посттрансляционной компиляции
- система управления базами данных для ISAM поддержки
- включение значка v
Доступность
[ редактировать ]- Релиз 1.0 от SourceForge. [12]
- Релиз 1.1 от SourceForge [13]
- Разрабатываемая версия 2.0 от SourceForge [14]
- с открытым кодом . Debian пакет [15]
- 2.2 Final, выпущенная 7 сентября 2017 г. на SourceForge. [16]
- 2.2 Документация, выпущенная в сентябре 2017 года из дерева кода SourceForge.
- 3.1 Выпущено в июле 2020 г. вместе с документацией.
- 3.2 Выпущено в июле 2023 г. вместе с документацией.
Ссылки
[ редактировать ]- ^ Саймон Собиш (28 июля 2023 г.). «Выпуск GnuCOBOL 3.2» . Проверено 29 июля 2023 г.
- ^ «ЧИТАЙТЕ» . ftp.gnu.org .
- ^ Тиффин, Брайан (19 октября 2013 г.). «Часто задаваемые вопросы по OpenCOBOL» . Какая текущая версия OpenCOBOL? . Проверено 13 декабря 2013 г.
- ^ Тиффин, Брайан. «GNU Cobol теперь стал реальностью» . Архивировано из оригинала 5 октября 2013 года . Проверено 1 октября 2013 г.
- ^ Собиш, Саймон (6 ноября 2013 г.). «Работа в процессе» . GNU Кобол 2.0 С++. Архивировано из оригинала 10 мая 2020 года . Проверено 11 мая 2014 г.
- ^ Тиффин, Брайан. «Состояние проекта» . Архивировано из оригинала 7 марта 2016 года . Проверено 23 июля 2015 г.
- ^ «Часто задаваемые вопросы по OpenCOBOL» . 17 октября 2013 г. Насколько завершен OpenCOBOL? . Проверено 7 июня 2014 г.
Хотя OpenCOBOL может соответствовать высоким стандартам качества и надежности, авторы НЕ утверждают, что это реализация COBOL, соответствующая стандарту.
- ^ «Часто задаваемые вопросы по OpenCOBOL» . Проходит ли OpenCOBOL набор тестов NIST? . Проверено 9 октября 2013 г.
- ^ Перейти обратно: а б Катлер, Гэри. «Руководство программиста OpenCOBOL» (PDF) . Opencobol.addltocobol.com . Проверено 20 ноября 2012 г.
- ^ «Компилятор COBOL с открытым исходным кодом» . ОпенКОБОЛ . Проверено 20 ноября 2012 г.
- ^ Катлер, Гэри. «Руководства по GnuCOBOL» . Opencobol.addltocobol.com . Проверено 22 июля 2015 г.
- ^ «GnuCOBOL — просмотр файлов на» . Sourceforge.net. 27 декабря 2007 года . Проверено 28 октября 2015 г.
- ^ Загрузки GnuCOBOL на SourceForge
- ^ Загрузки GnuCOBOL на SourceForge
- ^ «Debian — Подробная информация о пакете open-cobol в buster» . packages.debian.org .
- ^ Загрузки GnuCOBOL на SourceForge