Primeros idiomas con soporte genérico de programación


15

Cuál fue el primer lenguaje con soporte de programación genérico, y cuál fue el primer lenguaje principal tipado estáticamente (ampliamente utilizado) con soporte genérico.

Los genéricos implementan el concepto de tipos parametrizados para permitir múltiples tipos. El término genérico significa "perteneciente o apropiado a grandes grupos de clases".

He visto las siguientes menciones de "primero":

El polimorfismo paramétrico de primer orden ahora es un elemento estándar de los lenguajes de programación estáticamente tipados. Comenzando con el Sistema F [20,42] y los lenguajes de programación funcional, las construcciones han llegado a los lenguajes principales como Java y C #. En estos idiomas, el polimorfismo paramétrico de primer orden generalmente se denomina genérico.

De " Genéricos de un tipo superior" , Adriaan Moors, Frank Piessens y Martin Odersky

La programación genérica es un estilo de programación de computadora en el que los algoritmos se escriben en términos de tipos que se especificarán posteriormente que luego se instancian cuando sea necesario para tipos específicos proporcionados como parámetros. Este enfoque, iniciado por Ada en 1983

De Wikipedia Programación genérica

Respuestas:



4

Probablemente Lisp. Estaba más o menos haciendo eso en la década de 1960. De hecho, si la pregunta es cuál fue el primer idioma en hacer casi cualquier cosa notable, probablemente encontrará que fue lisp. ¡Es un poco aterrador darse cuenta de que la nueva característica genial en el lenguaje X era de hecho la nueva característica genial de lisp en 1960!


77
Lisp no fue mecanografiado estáticamente, por lo que "genéricos" ni siquiera tiene sentido en ese contexto.
Rufflewind

Bueno, los "genéricos" solo tienen sentido para algunos tipos de tipeo estático. Hay muchos tipos de sistemas de tipos que tienen diferentes propiedades.
Zachary K

@ZacharyK La característica específica del sistema de tipos que se entiende por "genéricos" es el polimorfismo paramérico , que no tiene sentido en lenguajes sin tipo.
Jack

3

Antes de los genéricos había plantillas, y antes de esa macro sustitución.


Las plantillas no son polimorfismos paramétricos, que es lo que la mayoría de las personas quieren decir cuando dicen "genéricos" en el contexto de los tipos. Las plantillas y las macros ni siquiera están vinculadas a los sistemas de tipos, son una característica ortogonal por completo.
Jack

Esta respuesta confunde "genéricos de Java" con "programación genérica".
Kaz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.