Home

Simon Sobisch Brian Tiffin

GnuCOBOL

GnuCOBOL is a free COBOL compiler. Built with GNU autotools, ./configure, make.

OpenCOBOL

GnuCOBOL is the new name for OpenCOBOL. September 27th, 2013 OpenCOBOL was accepted as an official GNU project, and renamed to GnuCOBOL (with the name GNU Cobol from September 2013 to September 2014).

latest stable

COBOL

Below is a copy of the long standing acknowledgment request that appears in all versions of the CODASYL COBOL Journal of Development and ANSI/ISO COBOL standards.

    Any organization interested in reproducing the COBOL standard and
    specifications in whole or in part, using ideas from this document as the basis
    for an instruction manual or for any other purpose, is free to do so.  However,
    all such organizations are requested to reproduce the following acknowledgment
    paragraphs in their entirety as part of the preface to any such publication:

with respect, the acknowledgement:

    COBOL is an industry language and is not the property of any company or group
    of companies, or of any organization or group of organizations.

    No warranty, expressed or implied, is made by any contributor or by the CODASYL
    COBOL Committee as to the accuracy and functioning of the programming system
    and language.  Moreover, no responsibility is assumed by any contributor, or by
    the committee, in connection therewith.

    The authors and copyright holders of the copyrighted materials used herein

        FLOW-MATIC (trademark of Sperry Rand Corporation), Programming for the UNIVAC
        (R) I and II, Data Automation Systems copyrighted 1958, 1959, by Sperry Rand
        Corporation; IBM Commercial Translator Form No. F28-8013, copyrighted 1959 by
        IBM; FACT, DSI 27A5260-2760, copyrighted 1960 by Minneapolis-Honeywell

    have specifically authorized the use of this material, in whole or in part, in
    the COBOL specifications.  Such authorization extends to the reproduction and
    use of COBOL specifications in programming manuals or similar publications.

    Any organization using a short passage from this document, such as in a book
    review, is requested to mention "COBOL" in acknowledgment of the source.

Many thanks to the original designers, supporting organizations and individuals.

Features of GnuCOBOL

Please see [GnuCOBOL Statements] for documentation on COBOL as understood by GnuCOBOL.

  • cobc translates COBOL source code to native executable using intermediate C sources. There is also a version, GnuCOBOL C++, gnu-cobol-cpp, that generates C++ intermediates.

    • This step in the compile chain, along with the GnuCOBOL dynamic CALL verb implementation, exposes nearly all existing C libraries for direct use by COBOL programmers. (C++ linker for gnu-cobol-cpp).
  • GnuCOBOL builds executable, shared library, object file and listing from a well integrated cobc command. COBOL and C sources can be mixed in compiler command lines.

  • GnuCOBOL passes over 9700 of the tests included in the National Institute of Standards and Technology COBOL 85 acceptance test suite.

  • supports many extensions from other COBOL compilers and adds some nice bits only available with GNU Cobol. FUNCTION SUBSTITUTE being one example of a very useful intrinsic.

  • While developed to be a useful, production ready COBOL programming tool, GnuCOBOL does NOT claim any level of official COBOL standard support or compliance.

License

The Free Software Foundation Inc, now holds the official copyrights to all OpenCOBOL, GNU Cobol, and GnuCOBOL source code, dating back to 2001. This legal paperwork was put in place in May of 2015.

Copyright (C) 2001-2016 Free Software Foundation, Inc.
Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch

The GnuCOBOL compiler is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

For Files in the libcob/ directory:

The GnuCOBOL runtime library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

The former license applies to current versions.
For GnuCOBOL / GNU Cobol and OpenCOBOL versions prior to 2.0 it is GPL version 2 or later for the compiler, LGPL 2 or later for the runtime.

Authors

GnuCOBOL was originally designed and written by Keisuke Nishida, Roger While took over lead development in 2005. cobc -V lists Ron Norman, Simon Sobisch as further authors, the AUTHORS file further lists Sergey Kashyrin, Joe Robbins, Brian Tiffin and Ed Hart among others.

Versions

Roger While took on the lead development of OpenCOBOL in 2004, from works first released by Keisuke Nishida in 2002. Frequent pre-releases were posted publicly up until February 2009. Due to life changes and circumstances, those releases became less public. The current, most widely distributed version of OpenCOBOL is likely 1.1 from February 2009.

Roger continued with closed releases up until September 2012.

GNU accepted the OpenCOBOL project as an official GNU project in September 2013 and OpenCOBOL was rebranded as GNU Cobol. At this point, the unpublished work in progress version of OpenCOBOL 2.0 was pre-released along with an official GNU Cobol 1.1 source kit, rebranded from the OpenCOBOL 1.1 February 2009 sources, with a few small fixes.

A GNU Cobol 1.1 release and the reveal of three years of closed 2.0 pre-release work made for two public versions in October of 2013.

Along with the works of Sergey, Joe, and Ron, there are now 5 working copies of GnuCOBOL.

  • GNU Cobol 1.1 has been marked release, with support for SCREEN SECTION

  • SourceForge SVN also hosts newer versions:

    • GnuCOBOL 2.0 - upcoming release
    • Report Writer branch (incorrectly stamped as 2.1, will be merged into 2.0 RC)
    • CPP with C++ source and generation
    • a fileio simplification
    • and an experimental feature branch
  • fileiorewrite is the work of Joe Robbins to simplify the ISAM runtime and extend it. It is a work in progress branch of GnuCOBOL 2.0. This project has a long term timeline, and will be folded into the official GNU Cobol release sequence, sometime in the future.

  • Being involved in the closed releases, Sergey developed a C++ intermediate version which was publicly released shortly after Roger's 2.0 source kit was published. This project also has a long term road map. GnuCOBOL is C based. GnuCOBOL likely will stay split as two branches, or if possible, developers will be allowed to choose, both emitters included in cobc, controlled by switches. The future will determine how this unfolds.

  • GnuCOBOL 1.1x is an experimental branch and is NOT for public consumption. A branch for running experiments with an Animator (source level debugger) soon.

  • GnuCOBOL 2.0 is the pre-release branch, Simon hard at work organizing the next official release here. Still a work in progress.

  • reportwriter is Ron Norman's extensions based on early OpenCOBOL 2.0 closed releases, and adds the Report Writer module to GnuCOBOL. This work will be folded into the official 2.0 source kit after the 2.0 release and will be the major change for the 2.1 release. Earlier marked as GNU Cobol 2.1, where it will be when "official", but changed back to GnuCOBOL reportwriter. There is no official 2.1 yet, we have to wait until the 2.0 release candidate is solidified.

  • GNU Cobol 1.1 release, is still trunk.

Deciding on a version? ALL of these branches (except for 1.1x) are working branches of GnuCOBOL. They all pass the integrity checks and the NIST COBOL 85 validation suite (leaving out RW for all but the one branch we have for it). Usually; works in progress being works in progress, and there may be commits that don't work out, usually, fixed quickly.

  • For stability: GNU Cobol 1.1 has the longest soak time, most bugs are known bugs (see the issue tracker for some).
  • For new features: GnuCOBOL 2.0 has Roger's lastest, passes tests, not all bugs known. All known bugs fixed or in the queue for a fix.
  • For RW features: Ron's Report Writer module, (old) 2.0 plus Report Writer.
  • For C++: Sergey's gnu-cobol-cpp version is based on GnuCOBOL 2.0, may have bugs and definitely has a bright future.
  • For some certain cases: fileiorewrite may be most appropriate, but this is background work with the ISAM runtime support that will merge into GnuCOBOL trunk step by step.

See http://sourceforge.net/p/open-cobol/code/HEAD/tree/branches/

Once again, ALL the branches, except for gnu-cobol-1.1x, are working COBOL compilers.

GNU Cobol 1.1 is currently official, with GnuCOBOL 2.0 on the horizon.

Oh, and you may bump into OpenCOBOL 1.0 and OpenCOBOL 1.1 versions in GNU/Linux repositories. Working COBOL compilers.

Documentation

Can be found at http://opencobol.add1tocobol.com/guides. Direct link to two docs:

As a GNU project, info cobc, after an install, will display online documentation as well as cobc supporting --help.

Contributors

As the copyrights for this GNU free software project are held by the Free Software Foundation, contributors are required to fill out copyright reassignment forms before contributions can be distributed as part of the official GnuCOBOL source kit. If you are interested, please see the [Copyright reassignment] page for details. That page has a choice of forms that can be emailed to the FSF legal department to request more formal signature documents. Contributors are also encouraged to read the [For Maintainers] page.

Please note that contributions need not be limited to just compiler related source code that require copyright reassignments. You can help the project in many ways; bug reports being a very helpful step, as is general COBOL documentation, tutorials, and GnuCOBOL promotional material. We still need a nice logo and webpage banner, hint hint, nudge nudge.

The GnuCOBOL project also includes a contrib/ source tree that accepts sample programs, tools and other materials that are not part of the compiler proper, but aid in development and educational areas. As long as the license is an acceptable free software license, just drop a note in the discussion forums and the project staff will be glad to provide write access to this repository. These entries do not require formal rights reassignments, but do need to be freely licensed.

Downloads

currently, version 1.1

More details

The wiki has pages for

SourceForge info

Project Admins:

Related

Discussion: GNU Cobol is now a real thing
Wiki: COBOL acknowledgement
Wiki: Copyright reassignment
Wiki: Features
Wiki: For Maintainers
Wiki: Gary Cutler Files
Wiki: GnuCOBOL Statements
Wiki: GnuCOBOL ToDone
Wiki: GnuCOBOL project members
Wiki: Install Guide
Wiki: Tasks
Wiki: User Manual

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks