第四世代言語(4GL)とは?
第四世代言語(4GL)は、FORTRANや
COBOLといった手続き型言語(第三世代言語)よりも高度な
プログラミング言語です。アプリケーション開発において、より効率的にプログラムを作成することを目的として設計されています。4GLは単体で利用されることは少なく、データベースシステムなどの特定のアプリケーション開発システムと連携して使用されるのが一般的です。OracleのPL/SQLなどがその代表例と言えるでしょう。
4GLの大きな特徴は、
プログラマーだけでなく、エンドユーザーも対話形式で簡単なパラメーターを指定するだけで、表計算のような業務処理やプログラムの作成が可能になる点です。これは、専門知識がなくても比較的簡単にプログラム開発に参加できることを意味し、開発の民主化に貢献しました。
4GLは、開発者の生産性向上に焦点を当てて設計されています。Capers Jonesによるファンクションポイント法の研究では、4GLは人月当たりのファンクションポイント数が12~20と評価されており、これはソースコードの行数に換算すると、ファンクションポイント当たり16~27行でコーディングできることを示しています。この生産性向上が、4GLが広く普及した大きな要因の一つです。
4GLは、
ドメイン固有言語(DSL)としばしば比較されます。DSLは特定のドメイン(例えば、金融取引や科学計算)に特化した
プログラミング言語であり、研究者によっては4GLをDSLのサブセットと見なす場合もあります。しかし、4GLはDSLよりも汎用性が高いと言えます。
また、
アセンブリ言語が最新の開発環境(例:MS Studio)でも使用されているように、今後も様々な世代の
プログラミング言語が混在して利用されることが予想されます。4GLはその中でも、特定の用途において高い生産性を発揮する言語として、今後も重要な役割を果たすと考えられます。
4GLの歴史
「4GL」という用語は、1982年のジェームズ・マーチンの著書『Applications Development Without Programmers』で初めて公式に使用されました。同書では、手続き型でない高級仕様記述言語を指していました。
初期の4GLとしては、
IBMのRPG(1960年)、InformaticsのMARK-IV(1967年)、スペリーのMAPPER(1979年)などが挙げられます。これらの言語は、パンチカード入力を前提とした設計がされており、1行72桁という制限がありました。しかし、少ないパンチカードで様々な処理が可能だったため、当時の3GLプログラムと比較して、大幅な開発効率の向上が実現しました。
コンピュータの進化に伴い、パンチカードから端末入力へと入力方法が変化しても、72桁の制限はしばらくの間残りました。その後、インタフェースの改善により、より長い文の入力や改行などが可能になり、4GLの表現力と能力はさらに向上していきました。
4GLの発展は、ハードウェアとオペレーティングシステムの制限に大きく影響を受けました。初期の4GLは、ハードウェアやOSによって開発環境がシステム固有のものになることが多くありました。しかし、MAPPERのように様々なアプリケーションに有効であることが証明され、最新のプラットフォームに移植されてきた例もあります。MARK-IVも現在ではCAからVISION:BUILDERとして販売されています。
アッチソン・トピカ・アンド・サンタフェ鉄道はシステム開発にMAPPERを用いました。これは4GLを用いたソフトウェアプロトタイピングであり、エンドユーザーによるプログラム開発プロジェクトの成功例として知られています。鉄道の専門家にMAPPERの使い方を教える方が、
プログラマに鉄道の専門知識を教えるよりも効率的であるという考えに基づいて実施されました。
その後、
コンピュータの進化に伴い、4GLはデータベースシステムと密接に関連付けられるようになり、初期の4GLとは異なる技法やリソースが用いられるようになりました。
4GLの具体例
4GLは、その用途や機能によって様々な種類があります。以下に、いくつかの具体例を示します。
汎用4GL: DataFlex、Forte 4GL、IBM Cross System Product、PowerBuilder、WinDevなど
データベース問い合わせ言語: FOCUS、Informix-4GL、NATURAL、Progress OpenEdge、SQLなど
報告書生成: BuildProfessional、LINC、METAFONT、Oracle Reports、Progress OpenEdge、RPG-IIなど
データ操作/解析/報告: Ab Initio、ABAP、Clarion、FOCUS、IDL、Informix-4GL、MATLAB、PL/SQL、
R言語、SASなど
データベース駆動型GUIアプリケーション開発: Genexus、UNIFACEなど
画面生成: FOURGEN、Oracle Formsなど
GUI生成: 4th Dimension、MATLABのGUIDE、Omnis Studioなど
ウェブ開発: ColdFusionなど
4GLと関連技術
4GLは、
ドメイン固有言語(DSL)、RAD(Rapid Application Development)、ローコード、ノーコードといった技術と関連付けられることがあります。これらの技術は、いずれもアプリケーション開発の効率化を目的としていますが、そのアプローチや対象ユーザーは異なります。
4GLは、DSLよりも汎用性が高く、RAD、ローコード、ノーコードよりもプログラミングの知識をある程度必要とします。しかし、3GLと比較すれば、はるかに開発効率を向上させることができるため、多くのアプリケーション開発において重要な役割を果たしています。