Jump to content

ГнуКОБОЛ

ГнуКОБОЛ
Оригинальный автор(ы) Кейсуке Нисида, Роджер Уил
Разработчик(и) Эдвард Харт, Сергей Каширин, Рон Норман, Саймон Собиш и многие другие.
Первоначальный выпуск 25 января 2002 г .; 22 года назад ( 25 января 2002 )
Стабильная версия
3.2 [1]  Отредактируйте это в Викиданных / 28 июля 2023 г .; 12 месяцев назад ( 28 июля 2023 г. )
Репозиторий НФ .сеть /п /гнукобол /код
Написано в C с C++ веткой
Размер 2 МБ
Доступно в английский, немецкий, итальянский, японский, испанский
Тип Язык программирования
Лицензия GPL с библиотеками времени выполнения под лицензией LGPL
Веб-сайт ГНУ .org /программное обеспечение /гнукобол

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 года.

Философия

[ редактировать ]

Стремясь соответствовать стандартам 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 г. вместе с документацией.
  1. ^ Саймон Собиш (28 июля 2023 г.). «Выпуск GnuCOBOL 3.2» . Проверено 29 июля 2023 г.
  2. ^ «ЧИТАЙТЕ» . ftp.gnu.org .
  3. ^ Тиффин, Брайан (19 октября 2013 г.). «Часто задаваемые вопросы по OpenCOBOL» . Какая текущая версия OpenCOBOL? . Проверено 13 декабря 2013 г.
  4. ^ Тиффин, Брайан. «GNU Cobol теперь стал реальностью» . Архивировано из оригинала 5 октября 2013 года . Проверено 1 октября 2013 г.
  5. ^ Собиш, Саймон (6 ноября 2013 г.). «Работа в процессе» . GNU Кобол 2.0 С++. Архивировано из оригинала 10 мая 2020 года . Проверено 11 мая 2014 г.
  6. ^ Тиффин, Брайан. «Состояние проекта» . Архивировано из оригинала 7 марта 2016 года . Проверено 23 июля 2015 г.
  7. ^ «Часто задаваемые вопросы по OpenCOBOL» . 17 октября 2013 г. Насколько завершен OpenCOBOL? . Проверено 7 июня 2014 г. Хотя OpenCOBOL может соответствовать высоким стандартам качества и надежности, авторы НЕ утверждают, что это реализация COBOL, соответствующая стандарту.
  8. ^ «Часто задаваемые вопросы по OpenCOBOL» . Проходит ли OpenCOBOL набор тестов NIST? . Проверено 9 октября 2013 г.
  9. ^ Перейти обратно: а б Катлер, Гэри. «Руководство программиста OpenCOBOL» (PDF) . Opencobol.addltocobol.com . Проверено 20 ноября 2012 г.
  10. ^ «Компилятор COBOL с открытым исходным кодом» . ОпенКОБОЛ . Проверено 20 ноября 2012 г.
  11. ^ Катлер, Гэри. «Руководства по GnuCOBOL» . Opencobol.addltocobol.com . Проверено 22 июля 2015 г.
  12. ^ «GnuCOBOL — просмотр файлов на» . Sourceforge.net. 27 декабря 2007 года . Проверено 28 октября 2015 г.
  13. ^ Загрузки GnuCOBOL на SourceForge
  14. ^ Загрузки GnuCOBOL на SourceForge
  15. ^ «Debian — Подробная информация о пакете open-cobol в buster» . packages.debian.org .
  16. ^ Загрузки GnuCOBOL на SourceForge
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d8183660e325e93157c87c3519f61055__1719918300
URL1:https://arc.ask3.ru/arc/aa/d8/55/d8183660e325e93157c87c3519f61055.html
Заголовок, (Title) документа по адресу, URL1:
GnuCOBOL - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)