جی ان یو کوبول
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 در https://sourceforge.net/projects/gnucobol/ اتفاق می افتد.
راهنمای برنامه نویس GnuCOBOL ، توسط گری کاتلر ، تحت مجوز GNU Free Documentation منتشر شد . و در ادامه به روز شده است تا شامل GnuCOBOL همراه با Report Writer شود و در صفحه مروری همراه با اسناد GnuCOBOL و آخرین نسخه ها در درخت کد ذکر شده است. با انتشار نسخه کامپایلر جدید، توسط وینسنت کوئن، جیمز ک. لودن و دیگران، این کد در https://gnucobol.sourceforge.io/ در دسترس است.
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!
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 ثابت وجود دارد): تدوین بدون خطا رخ می دهد:
$ cobc -x smallest.cob $ ./smallest Hello, world! "لطفا توجه داشته باشید که این لیست چیزهای بی اهمیت به عنوان شکل خوب COBOL در نظر گرفته نمی شود. COBOL به عنوان یک زبان برنامه نویسی انگلیسی خواندنی طراحی شده است."
تجزیه کننده و اسکنر واژگانی از Bison و Flex استفاده می کنند. کامپایلرهای دارای مجوز GPL و کتابخانه های معتبر LGPL با C نوشته شده اند و از C ABI برای ارتباط برنامه خارجی استفاده می کنند.
بسته بندی Build از سیستم ساخت گنو استفاده می کند. تست های استاندارد با استفاده از تست Autoconf، ANSI85 و همچنین آزمون نسخه های Perl اعتبارسنجی می شود.
اسکریپت پیکربندی تنظیم کننده کامپایل GnuCOBOL گزینه هایی دارد که شامل موارد زیر است: