그누코볼
그누코볼(GnuCOBOL, 과거 이름: 오픈코볼/OpenCOBOL)은 코볼 프로그래밍 언어의 자유 구현체이다. 니시다 게이스케가 원안 설계를 맡았고 개발은 로저 와일(Roger While)이 주도하였다. 최근 개발은 사이먼 소비스치, 론 노먼, 에드워드 하트, 세르게이 케시린 등이 주도하고 있다.[2]
원저자 | 니시다 게이스케, 로저 와일 |
---|---|
개발자 | 사이먼 소비스치, 론 노먼, 에드워드 하트, 세르게이 케시린 등 |
발표일 | 2002년 1월 25일 |
안정화 버전 | 3.2[1]
/ 2023년 7월 28일 |
저장소 | https://svn.code.sf.net/p/gnucobol/code/trunk |
프로그래밍 언어 | C 및 C++ 브랜치 |
크기 | 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월 프리릴리스는 릴리스로 표기되었다.[3] 2013년 9월 말, 오픈코볼은 GNU 프로젝트로 수용되어 그누 코볼(GNU Cobol)로 이름이 변경되었다가 마침내 2014년 9월 그누코볼(GnuCOBOL)로 명칭이 변경되었다.[4] 론 노먼은 그누코볼 2.0의 한 브랜치로서 리포트 라이터 모듈을 추가하였으며 세르게이 케시린은 C 대신 C++ 중간체를 사용하는 버전을 개발하였다.[5]
최신 릴리스는 현재 v3.1 파이널이며 2020년 7월 7일 출시되었다.
그누코볼 소스 코드(그누 코볼 및 오픈코볼 스펠링의 버전 포함)에 대한 자유 소프트웨어 재단으로의 저작권 이양은 2015년 6월 17일 마무리되었다.[6]
예시 프로그램
편집역사적
편집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!
각주
편집- ↑ "Release of GnuCOBOL 3.2"; 저자 이름: Simon Sobisch; 저작물·명칭의 언어: 영어; 출판 날짜: 2023년 7월 28일; 확인한 날짜: 2023년 7월 29일.
- ↑ Tiffin, Brian (2013년 10월 19일). “OpenCOBOL FAQ”. What is the development history of OpenCOBOL?. 2013년 12월 13일에 확인함.
- ↑ Tiffin, Brian (2013년 10월 19일). “OpenCOBOL FAQ”. What is the current version of OpenCOBOL?. 2013년 12월 13일에 확인함.
- ↑ Tiffin, Brian. “GNU Cobol is now a real thing”. 2013년 10월 5일에 원본 문서에서 보존된 문서. 2013년 10월 1일에 확인함.
- ↑ Sobisch, Simon (2013년 11월 6일). “Work in Progress”. GNU Cobol 2.0 C++. 2020년 5월 10일에 원본 문서에서 보존된 문서. 2020년 9월 8일에 확인함.
- ↑ Tiffin, Brian. “State of the Project”. 2016년 3월 7일에 원본 문서에서 보존된 문서. 2015년 7월 23일에 확인함.