Prime lingue con supporto di programmazione generico


15

Qual è stato il primo linguaggio con supporto di programmazione generico, e qual è stato il primo linguaggio tipicamente statico (ampiamente utilizzato) con supporto generici.

I generici implementano il concetto di tipi parametrizzati per consentire più tipi. Il termine generico significa "pertinente o appropriato a grandi gruppi di classi".

Ho visto le seguenti menzioni di "prima":

Il polimorfismo parametrico del primo ordine è ora un elemento standard dei linguaggi di programmazione tipizzati staticamente. A partire da System F [20,42] e linguaggi di programmazione funzionale, i costrutti hanno trovato la loro strada in linguaggi tradizionali come Java e C #. In questi linguaggi, il polimorfismo parametrico di primo ordine è generalmente chiamato generici.

Da " Generics of a Higher Kind" , Adriaan Moors, Frank Piessens e Martin Odersky

La programmazione generica è uno stile di programmazione per computer in cui gli algoritmi sono scritti in termini di tipi successivi da specificare che vengono quindi istanziati quando necessario per tipi specifici forniti come parametri. Questo approccio, introdotto da Ada nel 1983

Da Wikipedia Programmazione generica

Risposte:



4

Probabilmente Lisp. Lo stava facendo più o meno negli anni '60. Infatti se la domanda è qual è stata la prima lingua a fare praticamente qualsiasi cosa degna di nota, probabilmente scoprirai che era lisp. È spaventoso rendersi conto che la nuova fantastica funzione in lingua X era in realtà la nuova fantastica funzionalità di lisp nel 1960!


7
Lisp non è stato tipizzato staticamente, quindi "generici" non ha nemmeno senso in quel contesto.
Rufflewind

Beh, "Generics" ha senso solo per alcuni tipi di tipizzazione statica. Esistono molti tipi di sistemi di tipi con proprietà diverse.
Zaccaria K,

@ZacharyK La caratteristica del sistema di tipo specifico intesa da "generici" è il polimorfismo paramterico , che non ha senso nei linguaggi non tipizzati.
Jack,

3

Prima dei generici c'erano dei modelli e prima di quella sostituzione delle macro.


I modelli non sono polimorfismi parametrici, che è ciò che la maggior parte delle persone intende quando dicono "generici" nel contesto dei tipi. Modelli e macro non sono nemmeno legati ai sistemi di tipi, sono una caratteristica ortogonale del tutto.
Jack,

Questa risposta confonde "generici Java" con "programmazione generica".
Kaz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.