GnuCOBOL) OpenCOBOL سابق، و برای مدت کوتاهی به عنوان GNU Cobol شناخته می‌شود) یک اجرای رایگان زبان برنامه نویسی COBOL است، که در اصل توسط کیسوکه نیشیدا طراحی شده و توسعه آن توسط راجر وایل انجام شد. آخرین تحولات اکنون توسط سایمون سوبیش، ران نورمن، ادوارد هارت، سرگئی کشیرین و بسیاری دیگر هدایت می‌شود.

تاریخچه
-------

هنگام کار با RildoPragana روی TinyCOBOL، کیسوکه تصمیم گرفت یک کامپایلر COBOL مناسب برای ادغام با gcc را تست کند. این به زودی به پروژه OpenCOBOL تبدیل شد. کیسوکه تا سال 2005 و نسخه 0.31 به عنوان توسعه دهنده اصلی کار می کرد. سپس راجر به عنوان سرپرست فعالیت خود را آغاز کرد و OpenCOBOL 1.0 را در 27 دسامبر 2007 منتشر کرد. کار بر روی OpenCOBOL 1.1 پیش از انتشار تا فوریه 2009 ادامه داشت. در مه 2012، توسعه فعال به SourceForge منتقل و پیش از انتشار فوریه 2009 به عنوان یک نسخه اصلی مشخص شد.  اواخر سپتامبر 2013، OpenCOBOL به عنوان یک پروژه GNU پذیرفته شد، و به GNU Cobol تغییر نام یافت، و سپس سرانجام در سپتامبر 2014 به GnuCOBOL باز هم تغییر نام یافت.  رون نورمن ماژول Report Writer را به عنوان شاخه ای از GnuCobol 2.0 اضافه کرده و سرگئی کشیرین نسخه ای را توسعه داد که به جای C از واسطه های C ++ استفاده می کند. 

آخرین نسخه فعلی اکنون v3.1 نهایی است، که در 7 ژوئیه 2020 منتشر شده است.

انتقال کپی رایت به بنیاد نرم افزار آزاد از طریق کد منبع GnuCOBOL (شامل نسخه هایی با هجی های GNU Cobol و OpenCOBOL) در 17 ژوئن 2015 نهایی شد.

فلسفه
-----

با توجه به سعی در مطابقت استانداردهای COBOL با مشخصات فعلی COBOL 2014 و همچنین درج ویژگی های رایج در کامپایلرهای موجود، توسعه دهندگان ادعا نمی کنند که هیچ سطح مطابقت با استانداردها وجود دارد.  حتی در این صورت، نسخه 2.2 نهایی از بیش از 9،688 (99.79٪) آزمایش موجود در مجموعه آزمون NIST COBOL 85، 9708 آزمایش (که 20 مورد حذف شده اند) را به سلامت طی کرده اند. 

GnuCOBOL یک برنامه COBOL (کد منبع) را به یک برنامه C تبدیل می کند. سپس برنامه C می تواند در کد واقعی استفاده شده توسط رایانه (کد شی) یا در کتابخانه ای که سایر برنامه ها را دارا می باشد (به صورت هایپرلینک)، وارد شود. تحت UNIX و سیستم عامل های مشابه (مانند Linux)، از کامپایلر GNU C استفاده می شود. برای Windows، بسته Microsoft Visual Studio Express کامپایلر C را ارائه می دهد. تدوین دو مرحله ای معمولاً با یک دستور انجام می شود، اما گزینه ای وجود دارد که به برنامه نویس اجازه می دهد پس از توسعه کد C، تدوین را متوقف کند.

مستندسازی
---------

سایت opencobol.org از 2002 تا 2012 سایت رسمی تیم توسعه بود و بهترین منبع اطلاعات بالادستی توسعه را ارائه می داد.  با این حال، همه تحولات اخیر اکنون در فضای پروژه SourceForge در  اتفاق می افتد.

راهنمای برنامه نویس GnuCOBOL ، توسط گری کاتلر ، تحت مجوز GNU Free Documentation منتشر شد. و در ادامه به روز شده است تا شامل 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
id division.
program-id. hello.
procedure division.
display "Hello, world!" end-display
goback.

```
تدوین و اجرا:

```
$ cobc -x -free hello.cob
$ ./hello
Hello, world!

```

### کوتاهترین

کوتاهترین برنامه معتبر COBOL با گزینه توسعه در GnuCOBOL 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!

```
بدون تغییر و با هر نسخه از GnuCOBOL، GNU Cobol یا OpenCOBOL. (توجه داشته باشید، 7 فضای پیشرو برای مطابقت با منبع طرح COBOL ثابت وجود دارد):

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

```
تدوین بدون خطا رخ می دهد:

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

```
*لطفا توجه داشته باشید که این لیست چیزهای بی اهمیت به عنوان شکل خوب COBOL در نظر گرفته نمی شود. COBOL به عنوان یک زبان برنامه نویسی انگلیسی خواندنی طراحی شده است.*

پیاده سازی
----------

تجزیه کننده و اسکنر واژگانی از Bison و Flex استفاده می کنند. کامپایلرهای دارای مجوز GPL و کتابخانه های معتبر LGPL با C نوشته شده اند و از C ABI برای ارتباط برنامه خارجی استفاده می کنند.

بسته بندی Build از سیستم ساخت گنو استفاده می کند. تست های استاندارد با استفاده از تست Autoconf، ANSI85 و همچنین آزمون نسخه های Perl اعتبارسنجی می شود.

اسکریپت پیکربندی تنظیم کننده کامپایل GnuCOBOL گزینه هایی دارد که شامل موارد زیر است:

* انتخاب کامپایلر C و گزینه های آن برای تدوین تبدیل
* سیستم مدیریت پایگاه داده برای پشتیبانی ISAM
* توسعه iconv

دسترسی
------

* انتشار 1.0 از SourceForge.
* نسخه 1.1 از SourceForge
* نسخه توسعه 2.0 از SourceForge
* بسته cobolDebian.
* 2.2 نسخه نهایی منتشر شده در 7 سپتامبر 2017 از SourceForge
* 2.2 مستندسازی منتشر شده در سپتامبر 2017 از درخت کد SourceForge.
* 3.1 منتشر شده در در ژوئیه 2020 همراه با مستندسازی

منابع
-----

1. ↑  Tiffin, Brian (2013-10-19). "OpenCOBOL FAQ". What is the development history of OpenCOBOL?. Retrieved 2013-12-13.
2. ↑  Tiffin, Brian (2013-10-19). "OpenCOBOL FAQ". What is the current version of OpenCOBOL?. Retrieved 2013-12-13.
3. ↑  Tiffin, Brian. "GNU Cobol is now a real thing". Archived from the original on 2013-10-05. Retrieved 1 October 2013.
4. ↑  Sobisch, Simon (6 November 2013). "Work in Progress". GNU Cobol 2.0 C++. Archived from the original on 10 May 2020. Retrieved 13 December 2020.
5. ↑  Tiffin, Brian. "State of the Project". Archived from the original on 7 March 2016. Retrieved 23 July 2015.
6. ↑  "OpenCOBOL FAQ". 17 October 2013. How complete is OpenCOBOL?. Retrieved 7 June 2014. 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.
7. ↑  "OpenCOBOL FAQ". Does OpenCOBOL pass the NIST Test Suite?. Retrieved 9 October 2013.
8. 1 2  Cutler, Gary. "OpenCOBOL Programmer's Guide" (PDF). Opencobol.addltocobol.com. Retrieved 2012-11-20.
9. ↑  "An open-source COBOL compiler". OpenCOBOL. Retrieved 2012-11-20.
10. ↑  Cutler, Gary. "GnuCOBOL Guides". Opencobol.addltocobol.com. Retrieved 2015-07-22.

لینک های خارجی
--------------

* سایت GNU ، نسخه های رسمی GnuCOBOL
* جی ان یو کوبول on سورس‌فورج
* کنسرسیوم COBOL منبع باز در ژاپن
* سnالات متداول GnuCOBOL
* Add1ToCOBOL منبع باز Cobol و سایت OpenCOBOL
* tiny-cobol on سورس‌فورج
* گروه جدید کاربران COBOL