COBOLにおける予約語は、次のような特徴を持っている。
予約語の数が非常に多く、よく使われる英単語のうちかなりの数が予約語になっている。その理由として次のような点があげられる。
- 英語風の記述が出来ることを原則にしているために他の言語では関数の呼び出しで処理されるようなことがすべて文で処理されるため、関数名やパラメータに相当するものまですべて予約語になる。
- 他の言語では記号で書かれるものまで英単語で書く手段を用意するために予約語としている。
- 「PICTURE」と「PIC」のように、正規形と短縮形が、どちらも予約語とされている。
- 「ZERO」と「ZEROS」のように、単数形と複数形が、どちらも予約語になっている場合がある。
- 規格にある機能は、たとえそれを実装していなくても、予約語にしている。
またCOBOLの場合、言語仕様の改正にともなって予約語が増えたり予約語であったものが予約語ではなくなったりすることが多いのも特徴である。
- 環境部で使用するシステム名や装置名等も予約語になっていることが多い。
- 過去の規格にはあったが現在は廃止された機能に関連する予約語を互換性のために予約語にしていることがある。
- よく使われているCOBOLの方言に関連する予約語についても機能を実装していなくても予約語にしていることがある。
- 実際の各システムでは、予約語に相当する文字列であっても、明らかに当該予約語本来の使い方とは異なった使い方をしていると文脈上判断出来るときは、警告を出すだけで使用できるようになっていることもある。
- 上記のような理由からコンパイラのマニュアルには通常予約語の表が付いている。
以前は、算術演算子(+ - * / **)や比較文字(> < =)は予約語とされていた。
分類としては「特殊文字語」として「必須語」の中に入れていた。
特殊文字語以外の必須語を「必要語」と呼んだ。
現在、算術演算子や比較文字は予約語ではなく「特殊な記号」であるとされている。