COBOLの特徴を簡単なコード例とともに示します。以下は、COBOLのいくつかの特徴を示す基本的なコードスニペットです。
この例では、Employee-Recordというデータ構造を定義しています。各フィールドはPIC（Picture）クラウスを使用してデータの型と桁数を指定しています。
IDENTIFICATION DIVISION.
PROGRAM-ID. SampleProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Employee-Record.
   05 Employee-ID      PIC 9(5).
   05 Employee-Name    PIC X(20).
   05 Employee-Salary  PIC 9(7)V99.
PROCEDURE DIVISION.
COBOLは構造化プログラミングをサポートしており、IF文を通じて条件分岐を行います。
IF Employee-Salary > 50000
    DISPLAY 'High Salary'.
ELSE
    DISPLAY 'Low Salary'.
上記の例では、COBOLがデータベースへのアクセスを可能にするためのSQL文を使用しています。
EXEC SQL
   DECLARE EmployeeCursor CURSOR FOR
      SELECT Employee-Name, Employee-Salary
      FROM EmployeeTable
      WHERE Department = 'IT'.
EXEC SQL
   OPEN EmployeeCursor.
PERFORM UNTIL SQLCODE NOT = 0
   EXEC SQL
      FETCH NEXT FROM EmployeeCursor
      INTO :Employee-Name, :Employee-Salary
   END-EXEC.
   DISPLAY 'Employee: ' Employee-Name 'Salary: ' Employee-Salary.
END-PERFORM.
EXEC SQL
   CLOSE EmployeeCursor.
以下は簡単なCOBOLのプログラムです。
[https://paiza.io/projects/TLWqnDzo0jQ0VBCz8EgLZA?language=cobol hello.cbl]:
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
PROCEDURE DIVISION.
DISPLAY "Hello World 12345!".
STOP RUN.
実行結果:
 Hello World!
{{コラム|オンラインのコンパイル・実行環境|2=
[https://paiza.io/  paiza.IO] の様な、オンラインのコンパイル・実行環境であればウェブブラウザーだけで、COBOLのプログラムをコンパイル・実行できます。
上の例の、[https://paiza.io/projects/TLWqnDzo0jQ0VBCz8EgLZA?language=cobol hello.cbl] のようなリンク先を開くと、ウェブブラウザー上でコンパイル・実行することが出来ます。
GnuCOBOL（旧OpenCOBOL、短期間GNU Cobolとして知られていました）は、COBOLのフリーな実装です。
GnuCOBOLは、ネイティブのCコンパイラを使用するCへのトランスコンパイラです。
ディストリビューションにより、パッケージマネージャとパッケージ体系に違いがありますが、例えば Fedora Linux では、
$ sudo dnf install gnucobol
$ cobc --version
cobc (GnuCOBOL) 3.1.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Edward Hart
Built     Jan 26 2021 00:00:00
Packaged  Dec 23 2020 12:04:58 UTC
C version "11.0.0 20210123 (Red Hat 11.0.0-0)"
loading standard configuration file 'default.conf'
で導入およびバージョンの確認できます。
FreeBSD Ports/Packages Collection の、ports/lang/gnucobol にあるので、
% sudo make -C /usr/ports/lang/gnucobol all install clean
でビルドしインストールできます。
また
% sudo pkg install gnu-cobol-3.1.2_1
でビルド済みパッケージをインストールできますが、GnuCOBOL自身のバージョンアップやportsのパッチレベルの更新で gnu-cobol-3.1.2_1の部分は変わるので、
% pkg search cobol
gnu-cobol-3.1.2_1              Open-source COBOL compiler
の様に、最初に最新のパッケージ名を確認してください。
バージョンを確認:
% cobc -V
cobc (GnuCOBOL) 3.1.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Keisuke Nishida, Roger While, Ron Norman, Simon Sobisch, Edward Hart
Built     Nov 12 2022 15:48:13
Packaged  Dec 23 2020 12:04:58 UTC
C version "FreeBSD Clang 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c)"
% _
簡単なCOBOLプログラムのソースコードを hello.cbl という名前で保存し、コンパイルし実行してみよう。
 % cobc -x hello.cbl
 % ls
 hello  hello.cbl
 % ./hello
 Hello World 12345!
-x をつけないとシェアードライブラリが出来、これは実行できません。
COBOLの正書法には、自由書式正書法と固定書式正書法の2種類があります。
それぞれの正書法には以下のような特徴があります。
固定形式正書法
一連番号領域、標識領域、プログラム記述領域など、行内の文字位置によって使い方が明確に定義されている書き方です。
自由書式正書法
一連番号領域や標識領域がなく、プログラムは行のどの位置にも書くことが出来ます。
処理系によっては、コマンドラインオプションなどで正書法の切り替えが可能な場合があるので、詳しくは使用している処理系のマニュアルを参照してください。
COBOLプログラムのトップレベルは
の４つのパートから構成され、順序もこの順序である必要があります。
IDENTIFICATION DIVISIONは、COBOLプログラムの最初のパートで、
プログラム名、作成者、作成日などのプログラム保守情報を含みます。
これらは、見出し部の段落として記述します。
IDENTIFICATION DIVISION.
PROGRAM-ID. SampleProgram.
AUTHOR. YourName.
ENVIRONMENT DIVISIONは、COBOLプログラムの2番目のパートで、
作成するプログラムをコンパイルして実行するコンピュータの名前、環境変数の受け渡しに関する情報、プログラムとの間で読み書きするファイルの名前と種類を定義します。
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC.
DATA DIVISIONはCOBOLプログラムの3番目のパートで、これまでのDIVISIONはCOBOLプログラムを構築するためのメタデータで、
DATA DIVISIONからが実際にプログラムを構築していくところだと言えます。
DATA DIVISIONでは、入出力ファイルの配置、データ項目（変数）、外部プログラムとのインタフェース（引数）など、プログラムで扱うすべてのデータを定義します。
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Employee-Name PIC X(30).
01 Employee-Age  PIC 9(3).
FILE SECTION.
01 Employee-File.
   05 Employee-ID      PIC 9(5).
   05 Employee-Salary  PIC 9(7)V99.
PROCEDURE DIVISIONは、COBOLプログラムの最後のパートで、プログラムが実行する処理を記述します。
PROCEDURE DIVISION.
    DISPLAY 'Enter employee name: '.
    ACCEPT Employee-Name.
    DISPLAY 'Enter employee age: '.
    ACCEPT Employee-Age.
    IF Employee-Age > 30
        DISPLAY 'Senior Employee'
    ELSE
        DISPLAY 'Junior Employee'.
前３つのDIVISIONとは異なり、手続き部には定義された節や段落の様な既定の構造はありません。
節や段落は、プログラマが必要に応じて作成します。
COBOLにおいて、FortranのSubroutineやC言語の関数に相当する構文は、主に「サブルーチン」と「関数」です。以下に、それぞれの概要を説明します。
COBOLにおいて、サブルーチンはプログラム内の再利用可能なブロックを指します。サブルーチンは、PERFORM文を使用して呼び出されます。サブルーチン内で実行される処理は、呼び出し元に戻るまで制御が戻りません。
IDENTIFICATION DIVISION.
PROGRAM-ID. MainProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Counter        PIC 9(3) VALUE 0.
PROCEDURE DIVISION.
    PERFORM Display-Message THRU Display-Message.
    DISPLAY 'Back in the main program.'.
Display-Message.
    ADD 1 TO Counter.
    DISPLAY 'Message number ' Counter.
上記の例では、Display-Messageがサブルーチンとなり、これをPERFORM文で呼び出しています。
COBOLにおいて、関数は一般的なプログラミング言語での関数と同様、特定の計算や処理を実行し、その結果を呼び出し元に返すものです。関数はFUNCTIONキーワードを使用して呼び出されます。
IDENTIFICATION DIVISION.
PROGRAM-ID. MainProgram.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Value-A        PIC 9(3) VALUE 10.
01 Value-B        PIC 9(3) VALUE 20.
01 Result         PIC 9(3).
PROCEDURE DIVISION.
    COMPUTE Result = Add-Values(Value-A, Value-B).
    DISPLAY 'The result is: ' Result.
FUNCTION Add-Values.
    PARAMETERS Value-X, Value-Y.
    COMPUTE Add-Values = Value-X + Value-Y.
上記の例では、Add-Valuesが関数となり、これをCOMPUTE文で呼び出しています。
COBOLのサブルーチンと関数は、プログラムの構造を明確にし、再利用性を高めるために使われます。
{{コラム|他言語のプログラマのCOBOLへの移行での注意点|2=他のプログラミング言語からCOBOLへの移行においては、特定のプログラマがCOBOLという異なる言語に適応するためのいくつかの注意点があります。
以下は、他の言語のプログラマがCOBOLに移行する際に留意すべき点です。
自然言語に近い文法:COBOLは英語に近い自然言語の文法を持つため、通常のプログラミング言語とは異なる表現があります。英文のような記述やDIVISION、SECTION、PARAGRAPHの概念に慣れる必要があります。
データ指向プログラミング:COBOLは主にデータ指向プログラミングに焦点を当てています。他のプログラミング言語でよく見られるオブジェクト指向プログラミングの概念とは異なります。データ構造やレコードの定義が特に重要です。
ビジネスアプリケーションの特性:COBOLは主にビジネスアプリケーションの開発に使用されており、金融や保険などの分野で広く利用されています。ビジネスルールの理解や、大規模なデータ処理、バッチ処理の概念について理解が必要です。
移植性の懸念:COBOLは主にメインフレームやミッドレンジコンピュータ上で実行されることが多いです。他の言語と異なる実行環境に適応するために、COBOLが実行されるプラットフォームに関する理解が必要です。
標準ライブラリの習得:COBOLの標準ライブラリは、ビジネスアプリケーションに特有の機能を提供します。他のプログラミング言語の標準ライブラリとは異なるため、これを理解し、活用することが必要です。
ツールや開発環境の違い:COBOL用の開発ツールや統合開発環境は他の言語とは異なるものがあります。これらのツールや環境に慣れる必要があります。
COBOLは長寿で広く使用されている言語ですが、他の言語からの移行者にとっては新しい概念や文法に適応する過程があるかもしれません。十分なトレーニングと実践が必要です。
COBOL（Common Business-Oriented Language）は、ビジネスアプリケーション向けに開発されたプログラミング言語で、1959年にアメリカ国防総省の委員会が設立したCODASYL（Conference on Data Systems Languages）委員会によって設計されました。以下に、COBOLの変遷について簡単に説明します。
初期の開発（1959年 - 1960年代）: COBOLは、ビジネスアプリケーションのニーズに対応するために開発されました。この時期、主にメインフレームコンピュータで使用され、COBOLプログラムはバッチ処理やファイル処理に利用されました。
COBOL 60
COBOLはANSI（American National Standards Institute）やISO（International Organization for Standardization）によって標準化され、これによって異なるベンダー間でのプログラムの互換性が向上しました。
1959年に初めてCOBOLが発表され、その初版として知られています。しかし、このバージョンはあまり広く使われませんでした。
COBOL 61 (Revised COBOL 60):COBOL 60の修正版として、1961年に発表されました。これはCOBOLの最初の主要なリリースで、いくつかの文法の変更や追加が行われました。
COBOL 65:1965年にはCOBOL 65が発表され、新しい機能や拡張が導入されました。
COBOL 68:1968年にCOBOL 68が登場し、いくつかの機能が改訂され、新しい機能も導入されました。このバージョンは標準規格として広く受け入れられました。
COBOL 74:1974年に発表され、COBOL 68をベースにしていくつかの変更や追加が行われました。これにより、ファイル操作などが改善されました。
COBOL 85:1985年にはCOBOL 85が発表されました。これは大規模なリファクタリングが行われ、構造化プログラミングや新しいデータ型の導入などが含まれました。COBOL 85はANSIとISOによって標準化されました。
COBOL 2002:COBOL 2002は、2002年に登場しました。このバージョンでは、オブジェクト指向プログラミングのサポートやXMLの処理などが追加されました。
COBOL 2014:2014年に発表されたCOBOL 2014では、新しい機能や改訂が導入され、モダンな開発環境に対応するための取り組みが行われました。
これらのバージョンは、COBOLの進化を示しています。それぞれの規格で新しい機能や改善が導入され、COBOLは長い間にわたって広く利用され続けています。