Erste Sprachen mit generischer Programmierunterstützung

15

Welches war die erste Sprache mit generischer Programmierunterstützung und welche war die erste große statisch typisierte Sprache (weit verbreitet) mit generischer Unterstützung.

Generics implementieren das Konzept parametrisierter Typen, um mehrere Typen zu ermöglichen. Der Begriff "generisch" bedeutet "sich auf große Gruppen von Klassen beziehend oder für diese geeignet".

Ich habe die folgenden Erwähnungen von "first" gesehen:

Parametrischer Polymorphismus erster Ordnung ist heute ein Standardelement statisch typisierter Programmiersprachen. Beginnend mit System F [20,42] und funktionalen Programmiersprachen haben die Konstrukte den Weg in gängige Sprachen wie Java und C # gefunden. In diesen Sprachen wird parametrischer Polymorphismus erster Ordnung üblicherweise als generisch bezeichnet.

Aus " Generika der höheren Art" , Adriaan Moors, Frank Piessens und Martin Odersky

Generisches Programmieren ist ein Stil der Computerprogrammierung, bei dem Algorithmen in Form von zu spezifizierenden späteren Typen geschrieben werden, die dann instanziiert werden, wenn sie für bestimmte Typen benötigt werden, die als Parameter bereitgestellt werden. Dieser Ansatz wurde 1983 von Ada entwickelt

Aus Wikipedia Generic Programming

oluies
quelle

Antworten:

4

Vermutlich Lisp. Es war mehr oder weniger so in den 1960er Jahren. In der Tat, wenn die Frage ist, was die erste Sprache war, die so ziemlich alles Bemerkenswerte getan hat, werden Sie wahrscheinlich feststellen, dass es Lisp war. Es ist beängstigend zu bemerken, dass die coole neue Funktion in Sprache X tatsächlich die coole neue Funktion von lisp aus dem Jahr 1960 war!

Zachary K
quelle
7
Lisp war nicht statisch typisiert, so dass "Generika" in diesem Zusammenhang nicht einmal Sinn machen.
Rufflewind
Nun, "Generics" sind nur für einige Arten der statischen Typisierung sinnvoll. Es gibt viele Arten von Typsystemen, die unterschiedliche Eigenschaften haben.
Zachary K
@ZacharyK Die spezifische Typsystemfunktion, die mit "Generika" gemeint ist , ist der paramterische Polymorphismus , der in untypisierten Sprachen keinen Sinn ergibt.
Jack
3

Vor Generika gab es Vorlagen und vor dieser Makroersetzung.

Lüge Ryan
quelle
Vorlagen sind kein parametrischer Polymorphismus, was die meisten Leute meinen, wenn sie im Kontext von Typen "Generika" sagen. Vorlagen und Makros sind nicht einmal an Typsysteme gebunden, sondern eine orthogonale Funktion.
Jack
Diese Antwort verwechselt "Java Generics" mit "Generic Programming".
Kaz