汎用プログラミングをサポートする最初の言語


15

これは、ジェネリックプログラミングサポートを備えた最初の言語であり、ジェネリックサポートを備えた最初の主要な静的型付け言語(広く使用されている)です。

ジェネリックは、パラメーター化された型の概念を実装して、複数の型を許可します。総称という用語は、「クラスの大規模なグループに関係する、または適切な」ことを意味します。

「最初」の次の言及を見てきました。

一次パラメトリック多型は、静的型付けプログラミング言語の標準要素になりました。System F [20,42]および関数型プログラミング言語から始めて、構造体はJavaやC#などの主流言語への道を見つけました。これらの言語では、一次パラメトリック多型は通常ジェネリックと呼ばれます。

Generics of a Higher Kind」、Adriaan Moors、Frank Piessens、およびMartin Oderskyから

ジェネリックプログラミングは、後から指定する型に関してアルゴリズムが記述され、パラメーターとして提供される特定の型に必要なときにインスタンス化されるコンピュータープログラミングのスタイルです。1983年にAdaによって開拓されたこのアプローチ

ウィキペディアからジェネリックプログラミング

回答:



4

おそらくLisp。それは1960年代に多かれ少なかれそれをしていた。実際、もし質問が注目すべきことのほとんどをする最初の言語であったなら、おそらくあなたはそれがLispであることに気付くでしょう。言語Xのクールな新機能が実際には1960年のLispのクールな新機能であることを理解するのは、ちょっと怖いです!


7
Lispは静的に型付けされていなかったので、その文脈では「ジェネリック」も意味がありません。
ラッフルウインド14年

「ジェネリック」は、ある種の静的型付けにのみ意味があります。異なるプロパティを持つ多くの種類の型システムがあります。
ザカリーK 14年

@ZacharyK「ジェネリック」が意味する特定のタイプシステム機能は、パラメーター化された多態性であり、型付けされていない言語では意味がありません。
ジャック

3

ジェネリックの前にはテンプレートがあり、そのマクロ置換の前にありました。


テンプレートはパラメトリックなポリモーフィズムではありません。これは、ほとんどの人が型のコンテキストで「ジェネリック」と言うときの意味です。テンプレートとマクロは、型システムにも結び付けられていません。それらは完全に直交する機能です。
ジャック

この答えは、「Javaジェネリック」と「汎用プログラミング」を混同します。
カズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.