GnuCOBOL

Free and open-source software主题 GnuCOBOL （曾称OpenCOBOL 、GNU Cobol ）是COBOL程式语言的免费版本，最初由Keisuke Nishida设计，由Roger While负责領導開發，最近的版本是由Simon Sobisch，Sergey Kashyrin，Ron Norman，Edward Hart和其他许多人领导。 在Tiny COBOL上与Rildo Pragana合作时，Keisuke决定尝试建立相容於GNU編譯器套裝的COBOL 语言编译器，很快便成立了OpenCOBOL。 Keisuke担任首席开发人员到2005年和版本0.31為止，接著由Roger While領導，并于2007年12月27日发布了OpenCOBOL 1.0。 OpenCOBOL 1.1预先發表版本的工作一直持续到2009年2月。 2012年5月，开发转移到SourceForge ，將2009年2月的预先發表版本标记为发行版本。 2013年9月下旬，OpenCOBOL 语言被接受为GNU项目 ，更名为GNU Cobol，最后于2014年9月更名为GnuCOBOL。 Ron Norman添加了一个Report Writer模块作为GnuCobol 2.0的一个分支，Sergey Kashyrin开发了一个使用C ++（而非C語言）作为中介的版本 。 目前最新的版本是2017年9月7日发布的v2.2 Final。 2015年6月17日，將GnuCOBOL 语言源代码（包括具有GNU Cobol和OpenCOBOL拼写的版本）的版权转让给自由软件基金会。 開發者力求与COBOL语言标准保持一致，符合当前的COBOL 2014规范，并包含现有编译器中常见的功能，但並不保證其標準一致性的程度。 即便如此，2.2最终版本通过了NIST COBOL 85测试套件中，9708個測試中的9,688個（99.79％），删除了20个。 GnuCOBOL将COBOL 语言程序（原始码）转换为C語言，然後將C語言程式碼编译成電腦使用的機器語言代码（目标码），或其他程序可以呼叫（链接到）的库。 在UNIX和类似的操作系统（例如Linux ）下，使用GNU C编译器；在微軟Windows系統 ，Microsoft的Visual Studio Express提供了C编译器。 两階段的编译通常可以由单个命令执行，但是使用者也可以選擇只編譯到C語言程式碼即可。 2002年至2012年开发团队的官方主页是opencobol.org网站，也是上游开发資料的最佳来源。 但是最近的开发工作都在SourceForge项目空间 （页面存档备份，存于互联网档案馆）内进行，其中也包含最新的GnuCOBOL 语言文件和信息。 由Gary Cutler撰写的OpenCOBOL程式設計指南是根据GNU自由文档许可证发布的， 已更新並包含GnuCOBOL 语言和Report Writer，并列在GnuCOBOL文件概述页面中。 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 identification division. program-id. hello. procedure division. display "Hello, world!" end-display. goback. 编译和执行： $ cobc -x -free hello.cob $ ./hello Hello, world! 使用GnuCOBOL 2.0中的寬鬆语法选项，最短的有效COBOL程式是一个空白文件。 编译和执行如下： $ 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个前导空格，以符合FIXED布局COBOL源（FIXED layout COBOL source））： 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 Build System 。 使用make check进行标准测试使用需要指定 Autoconf ，通过make test运行的ANSI85测试套件使用Perl脚本。 设置GnuCOBOL编译的configure脚本具有以下选项： 选择C编译器及其后期翻译编译选项 用于ISAM支持的数据库管理系统 包含iconv SourceForge发布1.0版。 1.1版，由SourceForge发布 SourceForge的2.0开发版本 open-cobol Debian包。 2.2最终，2017年9月7日从SourceForge发布 2.2源自SourceForge代码树的2017年9月发布的文档。 Tiffin, Brian. OpenCOBOL FAQ. 2013-10-19 [2013-12-13]. （原始内容存档于2020-11-26）.  Tiffin, Brian. OpenCOBOL FAQ. 2013-10-19 [2013-12-13]. （原始内容存档于2020-11-26）.  Tiffin, Brian. GNU Cobol is now a real thing. [2013-10-01]. （原始内容存档于2013-10-05）.  Sobisch, Simon. Work in Progress. 2013-11-06 [2019-08-10]. （原始内容存档于2020-05-10）.  Tiffin, Brian. State of the Project. [2015-07-23]. （原始内容存档于2016-03-07）.  OpenCOBOL FAQ. 2013-10-17 [2014-06-07]. （原始内容存档于2020-11-26）. While OpenCOBOL can be held to a high standard of quality and robustness, the authors DO NOT claim it to be a “Standard Conforming” implementation of COBOL.  OpenCOBOL FAQ. [2013-10-09]. （原始内容存档于2020-11-26）.  Cutler, Gary. OpenCOBOL Programmer's Guide (PDF). Opencobol.addltocobol.com. [2012-11-20]. （原始内容存档 (PDF)于2019-09-27）.  引用错误：带有name属性“ProgGuide”的<ref>标签用不同内容定义了多次 An open-source COBOL compiler. OpenCOBOL. [2012-11-20]. （原始内容存档于2015-09-11）.  Cutler, Gary. GnuCOBOL Guides. Opencobol.addltocobol.com. [2015-07-22]. （原始内容存档于2019-09-27）.  GnuCOBOL - Browse Files at. Sourceforge.net. 2007-12-27 [2015-10-28]. （原始内容存档于2019-08-10）.  GnuCOBOL downloads at SourceForge GnuCOBOL downloads at SourceForge Debian package details. [2019-08-10]. （原始内容存档于2019-08-10）.  GnuCOBOL downloads at SourceForge GNU站点，GnuCOBOL的官方发行版 （页面存档备份，存于互联网档案馆） SourceForge.net上的GnuCOBOL 日本开源COBOL联盟 （页面存档备份，存于互联网档案馆） GnuCOBOL常见问题 （页面存档备份，存于互联网档案馆） 添加1ToCOBOL开源Cobol和OpenCOBOL宣传网站（页面存档备份，存于互联网档案馆） SourceForge.net上的tiny-cobol 新的COBOL 语言用户组 （页面存档备份，存于互联网档案馆）