그누코볼(GnuCOBOL, 과거 이름: 오픈코볼/OpenCOBOL)은 코볼 프로그래밍 언어의 자유 구현체이다. 니시다 게이스케가 원안 설계를 맡았고 개발은 로저 와일(Roger While)이 주도하였다. 최근 개발은 사이먼 소비스치, 론 노먼, 에드워드 하트, 세르게이 케시린 등이 주도하고 있다.[1]

그누코볼
GnuCOBOL
원저자니시다 게이스케, 로저 와일
개발자사이먼 소비스치, 론 노먼, 에드워드 하트, 세르게이 케시린 등
발표일2002년 1월 25일(22년 전)(2002-01-25)
안정화 버전
3.1 / 2020년 7월 7일(3년 전)(2020-07-07)
미리보기 버전
3.1rc-1 / 2020년 7월 7일(3년 전)(2020-07-07)
저장소https://svn.code.sf.net/p/gnucobol/code/trunk
프로그래밍 언어CC++ 브랜치
크기2 MB
언어영어, 독일어, 이탈리아어, 일본어, 스페인어
종류프로그래밍 언어
라이선스GPL + LGPL(런타임 라이브러리)
웹사이트https://www.gnu.org/software/gnucobol/

역사 편집

릴도 프라가나가 타이니코볼(TinyCOBOL)을 작업하는 동안 게이스케는 gcc와의 연동에 적합한 코볼 컴파일러 시도를 결정하였다. 이는 곧 오픈코볼 프로젝트가 되었다. 게이스케는 2005년 버전 0.31까지 주 개발자로 지냈다. 로저는 주 개발권을 인계받아 2007년 12월 27일 오픈코볼 1.0을 출시하기에 이른다. 오픈코볼 1.1 프리릴리스는 2009년 2월까지 작업이 계속되었다. 2012년 5월, 개발은 소스포지로 이동되었고 2009년 2월 프리릴리스는 릴리스로 표기되었다.[2] 2013년 9월 말, 오픈코볼은 GNU 프로젝트로 수용되어 그누 코볼(GNU Cobol)로 이름이 변경되었다가 마침내 2014년 9월 그누코볼(GnuCOBOL)로 명칭이 변경되었다.[3] 론 노먼은 그누코볼 2.0의 한 브랜치로서 리포트 라이터 모듈을 추가하였으며 세르게이 케시린은 C 대신 C++ 중간체를 사용하는 버전을 개발하였다.[4]

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

그누코볼 소스 코드(그누 코볼 및 오픈코볼 스펠링의 버전 포함)에 대한 자유 소프트웨어 재단으로의 저작권 이양은 2015년 6월 17일 마무리되었다.[5]

예시 프로그램 편집

역사적 편집

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!

최단형 편집

그누코볼 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!

문법 완화 없이(모든 버전의 그누 코볼, 그누 코볼, 오픈코볼에 해당. 고정 레이아웃 코볼 소스의 경우 7개의 공백이 줄 맨 앞에 선행한다):

       program-id.h.procedure division.display "Hello, world!".

오류 없이 컴파일:

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

각주 편집

  1. Tiffin, Brian (2013년 10월 19일). “OpenCOBOL FAQ”. What is the development history of OpenCOBOL?. 2013년 12월 13일에 확인함. 
  2. Tiffin, Brian (2013년 10월 19일). “OpenCOBOL FAQ”. What is the current version of OpenCOBOL?. 2013년 12월 13일에 확인함. 
  3. Tiffin, Brian. “GNU Cobol is now a real thing”. 2013년 10월 5일에 원본 문서에서 보존된 문서. 2013년 10월 1일에 확인함. 
  4. Sobisch, Simon (2013년 11월 6일). “Work in Progress”. GNU Cobol 2.0 C++. 2020년 5월 10일에 원본 문서에서 보존된 문서. 2020년 9월 8일에 확인함. 
  5. Tiffin, Brian. “State of the Project”. 2016년 3월 7일에 원본 문서에서 보존된 문서. 2015년 7월 23일에 확인함. 

외부 링크 편집