言語プリプロセッサ (プリコンパイラとも呼ばれる) は、非標準の COBOL や、COBOL に埋め込まれた COBOL 以外のコードを、コンパイラが処理できる形式に変換するために使用します。
非統合プリプロセッサは、ソース ファイルを入力として取り込み、それを読み込み解析して、修正したソース ファイルを作成します。修正されたソース ファイルは、COBOL コンパイラに入力として渡されます。この方法には、次の欠点があります。
これらの要因により、開発サイクルにかなりの時間がとられることがあります。
統合プリプロセッサ インターフェイスでは、オリジナルと修正後のソース コードを関連付けることによって、これらの問題が克服されます。コンパイラが実際に処理するのは修正された COBOL ですが、表示されるのは元のソース コードのみです。
統合プリプロセッサ インターフェイスでは、プリプロセッサはソース ファイルを読み込み、修正したソース行をコンパイラに渡します。この方法により、このインターフェイスを完全な汎用インターフェイスとして使用できます。この方法の欠点は、プリプロセッサ自体が継続文、コピーブックの展開、REPLACE および REPLACING の影響などの COBOL の構文を処理する必要があることです。Micro Focus は REPLACE および REPLACING を処理できる CP プリプロセッサを用意しています。ただし、CP プリプロセッサでは、COPY 文が通常の COBOL 構文規則に準拠している必要があります。一方、コンパイラ側でソース ファイルを読み取り、トークン単位でプリプロセッサに渡す方法もありますが、トークンの形式や COPY 文 (または同等の文) の構文を一定のルールに従わせる必要があります。
実際にコンパイルされるソース コードは、元のソース コードとまったく異なるものになる可能性があります。その結果、次の問題が発生する場合があります。
プリプロセッサは、指令設定を切り替えるための $SET 文を含む行を生成できます。ただし、そのために問題が発生する場合があります。特に、ユーザーのコードで、プリプロセッサが選択した言語の予約語と競合するデータ項目の名前を使用している場合です。
付属のプリプロセッサを使ってソース ファイル (コピーファイルを含む) を読み取り、展開し、REPLACE および REPLACING の影響に関する情報をスタック内の他のプリプロセッサに返すことができます。