プログラミング言語の世代とは何ですか?
プログラミング言語の生成は、生成される実際のマシンコードからの全体的な距離、およびある意味ではプログラマーによる使いやすさに従ってコンピュータープログラミング言語を分類する方法です。 一般に受け入れられているプログラミング言語の世代は3つあり、その定義が明確に合意されていない世代もいくつかあります。 第一世代のコンピュータープログラミング言語は、抽象化のないストレートマシンコードです。 第二世代の言語は、アセンブリ言語などの抽象化されたマシンコードであり、特定のシステムアーキテクチャに関連付けられていますが、人間が読むことができ、コンパイルする必要があります。 第3世代言語は、CやJava®などの標準言語を含む最も一般的な形式ですが、第4世代以降の言語にはさまざまな定義があります。
プログラミング言語の世代が言語を記述するために最初に作成されたとき、用語は主に第三世代の言語を示すために使用されました。 つまり、第1世代および第2世代の言語は、第3世代の言語の機能を強調するために、そのようにのみ分類されました。 4番目と5番目のプログラミング言語の世代は、主に開発中の言語のマーケティングに関連する用語として使用されていました。 マーケティングや一部の学問分野では、1つの言語が他の言語よりも新しいか、より多くの機能を備えていることを示すために、高い番号の言語世代が非標準的な方法で使用されます。
プログラミング言語の最初の世代は、マシンコードを示しています。 これは、一連のバイト、または極端な場合はコンピューターで直接実行できるビットとしてプログラムを作成することを意味します。 ほとんどの場合、これはハードコードされたスイッチまたはその他の物理的メカニズムを介して入力を受け入れるシステムを指します。
第二世代のプログラミング言語は、アセンブリスタイルの言語と見なされます。 これらは人間が読めるコードとコマンドで記述された言語であり、特定のシステムアーキテクチャに関連付けられていますが、開発環境と抽象化が容易です。 アセンブリ言語は2011年の時点で使用が停止されることはなく、非常に強力であるだけでなく、高レベルプログラミング言語のインラインステートメントとしても使用できるため、言語の生成はその速度またはパワーに等しいという誤解を生じさせます。
第三世代のプログラミング言語は、コードをプロセッサからさらに大きく分離し、より読みやすいステートメントを使用したコードの開発を可能にしました。 さらに、1行のコードを複数のプラットフォームにわたる複数のアセンブリステートメントに変換し、最終的には数十個以上のマシンコード命令に変換できるコンパイラーが開発されました。 ネイティブバイナリ実行可能ファイルとライブラリをコンパイルできるほぼすべてのコンピューター言語は、第三世代の言語と見なされます。
一般に、第4世代の言語は、ユーザーにとって非常に自然な、ある種のプログラミング言語を使用することを目的とした言語と見なされています。 また、視覚的な要素を使用して最終的なプログラムを構築する言語として定義することもできます。 3番目の定義は、データベースプログラミング言語やRapid Application Development(RAD)言語など、特定の目的のために構築されたプログラミング言語です。
第5世代のコンピューター言語の大まかな定義は、プログラマーがコンピューターに問題を提示し、それを解決しようとするものです。 第5世代の言語としてリストされているほとんどの言語は、ほとんどが本質的に学術的です。 6番目や7番目など、他のプログラミング言語の世代は、マーケティング目的で商用言語開発者によって使用されています。