Oracle ADF Busniessコンポーネントについて読んでいたときに、4GL(生成言語)という用語に出くわしました。 4GLとは正確に何を知りたいですか?
これは本の実際の引用です Oracle Fusion Guide :
Oracle ADF Business Componentsは、Oracle Fusionアプリケーション開発で選択されるビジネス・サービス層です。他の永続化レイヤーと比較して、ADF Business Componentsは、卓越した組み込みのビジネスアプリケーション機能と最大限に宣言的なエクスペリエンスを提供し、エンドツーエンドの第4世代言語(4GL)を求めるユーザーに完全に適合しますJava EE開発アーキテクチャ。
私はほとんどの場合、4GL言語をテクニカルアナリストでさえCASE(コンピュータ支援ソフトウェアエンジニアリング)ツールなどでプログラミングできる言語と呼んでいます。しかし、どうやら Wikipedia の場合よりもそれだけではありません。
私が勤務している会社はOracle ADFとかなり連携しており、モバイル開発用の独自のCASEツールを持っているため、独自の言語を4GL言語と呼んでいます。具体的には、IDEを含み、非常に単純なフローチャートとスクリプトに基づいてバックエンドでコードを生成するため、そのように呼んでいます。データベース、ファイルシステム、簡単にアクセスできる方法でのスクリプトのリポジトリ、アセット、プロモーション、履歴、および配布Oracle ADFにも同様のシステムがあります。
4GL言語は、開発の詳細をより高いレベルに抽象化して、生産性を高めたり、テクニカルアナリストがそれを処理したりできるようにする任意の言語だと思います。
4GLは少し曖昧な用語です。
プログラマーがドメイン固有の問題(ストレージ/メモリー/通信など)を心配する必要なく、ドメイン固有の問題を解決できる場合、それは言語を記述する試みです。これらすべての低レベルの構成要素は、言語によって抽象化されています。
これを達成するために長年にわたって多くの試みがあり、「非常に」成功したものはありませんでした。これは通常、言語がカバーする問題領域が非常に具体的であるためです(したがって、対象者が限られています(つまり、対象者が少ないというだけで人気がないわけではありません)。
もちろん、この用語は明確に定義されていないため、用語の乱用もいくつかあります。プラグインがドメインレベルのアイテムのみを処理する一方で、コードのモジュールをプラグインするだけで、インフラストラクチャがすべての低レベルのものを処理するフレームワークを定義するために使用できる場合があります。
最良の説明は、すべての世代をカバーするものです。
正直なところ、第3世代と第4世代の間に明確な境界線はもうありません。 C/C++(3番目)やSQL(4番目)のように、明らかにどちらか一方です。しかし、たとえば、Javaは、それ自体が「アプリケーション」であるプログラムを作成することを目的としているため、第3世代と見なされますか?または、Javaがマシンにコンパイルされていないため、第4世代ですか?コードではなく、バイトコードの中間言語に変換され、仮想マシン環境(そのほとんどはWebブラウザやWebサーバーなどの他のプログラムによってホストされます)によって解釈され、実際にプログラマのコードで指示されていることを実行しますか?同じことが、C#/ VBのような.NET言語、およびほとんどの関数型言語にも求められる可能性があります。これらのランタイムには、重要な命令ロジックと副作用をすべて隠すランタイムが必要なので、プログラマーはより数学的な評価用語で考えることができます。 。