第4世代プログラミング言語(4GL)は、第3世代プログラミング言語(3GL)の発展形として構想された言語群に属する高水準コンピュータプログラミング言語です。各世代のプログラミング言語は、内部コンピュータハードウェアの詳細をより高レベルで抽象化することを目指しており、言語をよりプログラマーフレンドリーで強力かつ汎用性の高いものにしています。4GLの定義は時代とともに変化してきましたが、ビットやバイトだけに焦点を当てるのではなく、一度に大量の情報を扱うことを特徴としています。4GLとされる言語には、データベース管理、レポート生成、数理最適化、グラフィカルユーザーインターフェース(GUI)開発、Web開発のサポートが含まれる場合があります。一部の研究者は、4GLはドメイン固有言語のサブセットであると述べています。[ 1 ] [ 2 ]
4GL の概念は 1970 年代から 1990 年代にかけて開発され、3GL の開発の大部分と重なっており、4GL は「非手続き型」または「プログラム生成型」言語として認識され、3GL はアルゴリズム型または手続き型言語であると区別されていました。C、C++、C#、Java、JavaScript などの 3GL は幅広い用途で依然として人気がありますが、当初定義された 4GL は、データベース、レポート、Web サイトに焦点を当てた用途が見つかりました。[ 3 ] Python、 Ruby 、 Perlなどの高度な 3GL は、汎用 3GL 環境内で 4GL の機能の一部を組み合わせており、[ 4 ] 4GL のような機能を持つライブラリが、最も人気のある 3GL のアドオンとして開発され、3GL と 4GL が混在する言語が生まれ、区別が曖昧になっています。[ 5 ]
1980年代から1990年代にかけて、第5世代プログラミング言語(5GL)の開発に向けた取り組みが行われた。
論文や議論では以前から使われていたものの、4GLという用語は、ジェームズ・マーティンが1981年の著書『Application Development Without Programmers』[ 6 ]で 、手続き型ではない高水準仕様言語を指すために初めて正式に使用した。初期の4GLは、 Informatics MARK-IV(1967年)製品やSperryのMAPPER(1969年社内使用、1979年リリース)に、ある程度原始的な形で含まれていた。
「4GL」の誕生と継続的な関心の動機はいくつかある。この用語は、幅広いソフトウェア製品群に適用できる。また、より高度な意味特性と実装能力を追求するアプローチにも適用できる。3GLがプログラマに大きな力を与えたように、4GLも開発環境をより幅広い層に開放した。
4GL の初期入力方式では、パンチカードの 72 文字制限(シーケンスに 8 バイト使用) 内でのデータ入力がサポートされており、カードのタグでタイプまたは機能が識別されました。少数のカードを適切に使用することで、4GL デッキはさまざまな処理およびレポート機能を提供できましたが、3GLでコード化された同等の機能は、おそらく 1 箱またはそれ以上のカードを必要とする可能性がありました。[ 7 ]
ハードウェアの進化に伴い、メモリ容量や端末インターフェースが大型化するにつれて、 72文字形式はしばらくの間使用され続けた。この方式には限界はあったものの、高度なアプリケーションを支えることができた。
インターフェースが改善され、より長いステートメントの長さと文法駆動の入力処理が可能になると、より大きなパワーがもたらされました。この例は、コンピュータ歴史博物館の NCSS に関するコメントで Nicholas Rawlings によって説明されています。[ 8 ]彼は、James Martin が、Rawlings に、Martin がエンジニアの問題と呼ぶ標準的な問題、「仕事の評価が平均 7 以上であるエンジニアに 6% の昇給を与える」に対する NOMAD による解決策を求めたと報告しています。Martin は「12 ページの COBOL と、 InformaticsのMark IVの 1 ページか 2 ページ」を提供しました。Rawlings は、一度に 1 つの操作を実行する単一のステートメントを提供しました。
4GL の開発はいくつかの要因に影響を受けましたが、ハードウェアとオペレーティングシステムの制約が大きな比重を占めていました。4GL が最初に導入されたとき、ハードウェアとオペレーティングシステムの混在により、販売を確実にするためにシステム固有のカスタム アプリケーション開発サポートが必要でした。 1 つの例は、Sperryが開発したMAPPERシステムです。そのルーツは初期の頃に遡りますが、このシステムは多くのアプリケーションで成功を収め、最新のプラットフォームに移植されています。最新のバージョンは、 Unisys のBIS [ 9 ]に組み込まれています。MARK -IVは現在 VISION:BUILDER として知られており、 Computer Associatesが提供しています。
サンタフェ鉄道は、 4GL、ラピッドプロトタイピング、ユーザーによるプログラミングの初期の例となるプロジェクトで、MAPPERを使用してシステムを開発しました。[ 10 ]鉄道の専門家にMAPPERの使い方を教える方が、プログラマーに「鉄道業務の複雑さ」を教えるよりも簡単だという考えでした。
4GLの特性を備えた初期の(そして移植性の高い)言語の1つに、数学ソフトウェア会社Mathematicaのジェラルド・C・コーエンが開発したRAMISがある。コーエンはMathematicaを退社し、Information Buildersを設立して、同様のレポート作成指向の4GLであるFOCUSを開発した。
後期の4GLタイプはデータベースシステムと密接に結びついており、時間の経過に伴うコンピューティング全般の進歩によってもたらされた技術やリソースの利用という点で、初期のタイプとは大きく異なっている。
4GLシーンにおける興味深い展開の一つは、グラフィカルインターフェースとユーザーが行う関連する推論が、十分に理解されていない「言語」を形成しているという認識である。
4GLには様々な種類が存在する。
一部の4GLには、必要なすべての情報を簡単に指定できる統合ツールが搭載されています。
21世紀には、4GLシステムが短期間での迅速なアプリケーション開発という課題に対する「ローコード」環境またはプラットフォームとして登場しました。ベンダーは、CRM、契約管理、バグ追跡などのサンプルシステムを提供することが多く、そこからほとんどプログラミングなしで開発を行うことができます。 [ 11 ]
レポート生成ツールは、ファイルやデータベースからデータを抽出し、さまざまな形式のレポートを作成する機能を提供します。