4番目と5番目のプログラミング言語の世代とは何ですか?それらはもっとありますか?[閉まっている]


36

多くの場合、学校/大学レベルで分類されているため、一般的なプログラミング言語(C#、Java、C ++)はすべて第3世代の言語です(マシンの物理部分からの抽象度が高い)。また、アセンブリ言語は第2世代、機械言語は第1世代言語に分類されます。

最初は、SQLは第4世代言語と見なされるべきだと考えていました。これは、SQLがより抽象的であり、ループの詳細からはるかに離れており、より記述的だからです。

今、第4世代と第5世代の言語があることがわかりましたが、プログラミング言語またはテクノロジを第4世代または第5世代の言語として分類する根拠は何ですか?

また、第6世代または第7世代の言語もありますか?



12
ああ、n番目のGen言語を作るものに同意できる人だけがいる場合...本当に拘束できる基準はありません(上位言語が下位レベルよりもベアメタルからさらに削除されていると言うことを除いて-程度は同意していません)。
-Oded

5
Cはどの「世代」ですか?第4世代と第5世代の言語の例を挙げて、各世代の特徴を教えてください。つまり、言語を世代「n」と定義する基準は何ですか?
-Mawg

3
Tbh X世代の言語の概念は本当に関連があるとは思いません。
ピーターB

5
私は、14日の世代言語を作ってるんだ、それは....七息子の第七の息子だから、純粋な魔法になるだろう
デヴィッド・コンラッド

回答:


36

簡単な世代の概要:言語は、その構成要素が

  1. ビット
  2. 指示
  3. 抽象操作
  4. ドメインオブジェクト
  5. プログラムの目標

そのため、Google GoやApple Swiftのような新しい言語でさえ、堅実な第3世代です。正規表現はテキストマッチング言語であるため、第4世代の初期言語になります。この定義により、第4世代はDSLと密接に連携しています。ただし、C ++などの言語は、LengthおよびWeightに加えてfloatおよびなどの実世界の型を持つことができるため、doubleハイブリッドの第3/4世代になります。

第5世代の言語は、実際には実現されないAIのレベルを一般に必要とするため、実際には存在しません。プログラマーがまだ必要なのは、非プログラマーがコンピューターに正確に何を望んでいるかを伝えることができないためです。


1
最後の段落についてのNB:J.Pitratさんのブログは面白いAI&プログラマーに関連している
バジーレStarynkevitch

5
DONALD problemそのブログの問題のハイライトには、どのくらい我々は離れてからまだだsudo make me a sandwich、と困ったことにどれだけ進歩我々は過去50年間に行われました。
–MSalters

1
@AndrewHoffmann何が悪いの?橋を建設する場合は、構造に適した種類の材料を用意することをお勧めします。また、適切なサイズのリベットを使用することをお勧めします(サイズはいくつありますか?)。
ディディエック

1
@AndrewHoffman:AIは主に学界のCSトピックであり、ソフトウェアエンジニアリングのトピックではありません。実際のエンジニアリングが利益になると主張されるかもしれません。おそらく最初の自動運転車がグーグルのものであると思われる十分な理由があります。
–MSalters

6
@AndrewHoffman-自分で話してください。私はソフトウェアエンジニアであり、毎日かなり標準的なエンジニアリング手法を使用しています。また、私は認定エンジニアです。あなたのコメント全体は、実際に基づいているのではなく、個人的な経験に基づいているナンセンスだと思います。
エンジニアドレリー

88

「第n世代言語」は流行語です。これはマーケティング用語です。n> 2の「n世代」を正確に定義するものについて、一般に受け入れられている定義はありません。PerlやPythonなどの「スクリプト」言語を4GLに分類する人もいます。 4GLの特徴は、SQLなどのドメイン固有であることです。Java(オブジェクト指向とガベージコレクションとリフレクションに満ちた90年代半ばの言語)は、Fortran(50年代から)およびC(70年代から)と同じ「3GL」カテゴリに属する​​と考える人もいます。

「第4世代言語」などのように混同されている分類は役に立ちません。古い教科書で見ることも、80年代にプログラミングを始めた人から聞くこともありますが、「4GL」などのタグは、著者がそれによって何を意味するかについての説明がなければ意味がありません。

「4GL」の意味を誰もすぐには理解しないため、このような分類を使用しないでください。代わりに、具体的な用語を使用して、正確にあなたが言っていることを伝えます。たとえば、NASM、LLVM IR、およびJasminはすべてアセンブリ言語ですが、後者の2つはターゲットVMであり、最後の1つもオブジェクト指向プログラミング言語です。それらはすべて2GLですか?SQLは、80年代からのデータベースクエリ用の部分的に宣言的なドメイン固有の言語です。TeXは、70年代からの植字のためのドメイン固有の言語です。どちらもドメイン固有であるため、どちらも4GLですか?


22
8G言語を開発しています。それは驚くべきことです。...それは千切りフライですらあります。次の3つの簡単な支払いでライセンスを販売します
;;

10
プログラミング言語の世代はジェット戦闘機の世代に何とか対応するべきだと思う。この量のすごさは、主題に関するRFCを正当化するのに十分なようです。
トニエズウィエズ

11
ああ、これは思い出を呼び戻します。第5世代言語がすぐに使いやすくなり、ほとんどのプログラマーが失業するようになります。
ロボットをゲット

5
@Izkata A 1GLはバイナリマシンコード(amd64命令セットなど)です。2GLは、マシンコード(例:GAS)のニーモニックを提供するテキストアセンブリ言語です。3GLは、マシン命令を抽象化するものです。Fortranは、プログラマがのような式や変数を使用できるようにすることで、これを初めて実現しました(I + 7) * 3。ただし、3GLカテゴリがどこで終わるのか、4GLと5GLが具体的に何を意味するのかについてコンセンサスはありません。
アモン

5
「Java ...はFortranと同じ「3GL」カテゴリに属していると考える人もいます」そのスキームに関連する任意の基準に従って一緒に?;-p
スティーブジェソップ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.