{{위키데이터 속성 추적}}
{{소프트웨어 정보
| name                   = 그누코볼<br />GnuCOBOL
| logo                   = Heckert GNU white.svg
| author                 = 니시다 게이스케, 로저 와일
| developer              = 사이먼 소비스치, 론 노먼, 에드워드 하트, 세르게이 케시린 등
| released               = {{시작 날짜와 나이|df=yes|2002|01|25}}
| latest release version = {{wikidata|property|preferred|references|edit|P348|P548=Q2804309}}
| latest release date    = {{시작 날짜와 나이|{{wikidata|qualifier|preferred|single|P348|P548=Q2804309|P577}}|df=yes}}
| repo                   = https://svn.code.sf.net/p/gnucobol/code/trunk
| programming language   = [[C (프로그래밍 언어)|C]] 및 [[C++]] 브랜치
| size                   = 2 MB
| website                = https://www.gnu.org/software/gnucobol/
| language               = 영어, 독일어, 이탈리아어, 일본어, 스페인어
| genre                  = [[프로그래밍 언어]]
| license                = [[GPL]] + [[LGPL]](런타임 라이브러리)
}}
'''그누코볼'''(GnuCOBOL, 과거 이름: 오픈코볼/OpenCOBOL)은 [[코볼]] 프로그래밍 언어의 자유 구현체이다. 니시다 게이스케가 원안 설계를 맡았고 개발은 로저 와일(Roger While)이 주도하였다. 최근 개발은 사이먼 소비스치, 론 노먼, 에드워드 하트, 세르게이 케시린 등이 주도하고 있다.<ref>{{웹 인용|last=Tiffin|first=Brian|title=OpenCOBOL FAQ|url=http://opencobol.add1tocobol.com/#what-is-the-development-history-of-opencobol|at=What is the development history of OpenCOBOL?|
date=2013-10-19|accessdate=2013-12-13}}</ref>

== 역사 ==
릴도 프라가나가 타이니코볼(TinyCOBOL)을 작업하는 동안 게이스케는 [[GNU 컴파일러 모음|gcc]]와의 연동에 적합한 코볼 컴파일러 시도를 결정하였다. 이는 곧 오픈코볼 프로젝트가 되었다. 게이스케는 2005년 버전 0.31까지 주 개발자로 지냈다. 로저는 주 개발권을 인계받아 2007년 12월 27일 오픈코볼 1.0을 출시하기에 이른다. 오픈코볼 1.1 프리릴리스는 2009년 2월까지 작업이 계속되었다. 2012년 5월, 개발은 [[소스포지]]로 이동되었고 2009년 2월 프리릴리스는 릴리스로 표기되었다.<ref>{{웹 인용|last=Tiffin|first=Brian|title=OpenCOBOL FAQ|url=http://opencobol.add1tocobol.com/#what-is-the-current-version-of-opencobol|at=What is the current version of OpenCOBOL?|date=2013-10-19|accessdate=2013-12-13}}</ref> 2013년 9월 말, 오픈코볼은 [[GNU 프로젝트]]로 수용되어 그누 코볼(GNU Cobol)로 이름이 변경되었다가 마침내 2014년 9월 그누코볼(GnuCOBOL)로 명칭이 변경되었다.<ref>{{웹 인용|last=Tiffin|first=Brian|title=GNU Cobol is now a real thing|url=http://sourceforge.net/p/open-cobol/discussion/109661/thread/e609011b/|accessdate=1 October 2013|archiveurl=https://web.archive.org/web/20131005013647/http://sourceforge.net/p/open-cobol/discussion/109661/thread/e609011b/ |archivedate=2013-10-05}}</ref>
론 노먼은 그누코볼 2.0의 한 브랜치로서 리포트 라이터 모듈을 추가하였으며 세르게이 케시린은 [[C (프로그래밍 언어)|C]] 대신 [[C++]] 중간체를 사용하는 버전을 개발하였다.<ref>{{웹 인용 | url=http://sourceforge.net/p/open-cobol/discussion/cobol/thread/7dc2941f/#40eb | title=Work in Progress | at=GNU Cobol 2.0 C++ | date=6 November 2013 | first=Simon | last=Sobisch | 확인날짜=2020-09-08 | archive-date=2020-05-10 | archive-url=https://web.archive.org/web/20200510184356/https://sourceforge.net/p/open-cobol/discussion/cobol/thread/7dc2941f/#40eb | url-status=dead }}</ref>

최신 릴리스는 현재 v3.1 파이널이며 2020년 7월 7일 출시되었다.

그누코볼 소스 코드(그누 코볼 및 오픈코볼 스펠링의 버전 포함)에 대한 [[자유 소프트웨어 재단]]으로의 저작권 이양은 2015년 6월 17일 마무리되었다.<ref>{{웹 인용|last=Tiffin|first=Brian|title=State of the Project|url=http://sourceforge.net/p/open-cobol/discussion/cobol/thread/7dc2941f/?page=1#3fcf|accessdate=23 July 2015|archive-date=2016-03-07|archive-url=https://web.archive.org/web/20160307214237/https://sourceforge.net/p/open-cobol/discussion/cobol/thread/7dc2941f/?page=1#3fcf|url-status=dead}}</ref>

== 예시 프로그램 ==
=== 역사적 ===
<syntaxhighlight lang="cobol">
000100* HELLO.COB GnuCOBOL example
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID. hello.
000400 PROCEDURE DIVISION.
000500     DISPLAY "Hello, world!".
000600     STOP RUN.
</syntaxhighlight>
컴파일 및 실행:
<syntaxhighlight lang="console">
$ cobc -x HELLO.COB
$ ./HELLO
Hello, world!
</syntaxhighlight>
=== 현대의 자유 포맷 ===
<syntaxhighlight lang="cobolfree">
*> GnuCOBOL Hello World example
id division.
program-id. hello.
procedure division.
display "Hello, world!" end-display
goback.
</syntaxhighlight>
컴파일 및 실행:
<syntaxhighlight lang="console">

$ cobc -x -free hello.cob
$ ./hello
Hello, world!
</syntaxhighlight>

=== 최단형 ===
그누코볼 2.0의 완화된 문법 옵션을 포함한 가장 짧은 형태의 유효한 코볼 프로그램은 빈 파일이다. 컴파일 및 실행은 다음과 같다:
<syntaxhighlight lang="console">

$ cobc -x -frelax-syntax ./empty.cob
./empty.cob: 1: Warning: PROGRAM-ID header missing - assumed
$ ./empty
$
</syntaxhighlight>
초기 버전 및 완화된 문법의 경우:
<syntaxhighlight lang="cobolfree">
display"Hello, world!".
</syntaxhighlight>
컴파일 및 실행:
<syntaxhighlight lang="console">

$ 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!
</syntaxhighlight>
문법 완화 없이(모든 버전의 그누 코볼, 그누 코볼, 오픈코볼에 해당. 고정 레이아웃 코볼 소스의 경우 7개의 공백이 줄 맨 앞에 선행한다):
<syntaxhighlight lang="cobol">
       program-id.h.procedure division.display "Hello, world!".
</syntaxhighlight>
오류 없이 컴파일:
<syntaxhighlight lang="console">

$ cobc -x smallest.cob
$ ./smallest
Hello, world!
</syntaxhighlight>

== 각주 ==
{{각주}}

== 외부 링크 ==
* [http://ftp.gnu.org/gnu/gnucobol/ GNU site, official releases of GnuCOBOL]
*{{SourceForge|open-cobol}}
* [http://www.osscons.jp/osscobol Open Source COBOL Consortium in Japan]
* [http://opencobol.add1tocobol.com/gnucobol GnuCOBOL FAQ]
* [http://add1tocobol.com Add1ToCOBOL Open Source Cobol and OpenCOBOL advocacy site]
*{{SourceForge|tiny-cobol|tiny-cobol}}
* [http://newcobug.com New COBOL Users Group]

[[분류:코볼]]
[[분류:컴파일러]]
[[분류:자유 컴파일러와 인터프리터]]
[[분류:GNU 프로젝트 소프트웨어]]