Первые языки с общей поддержкой программирования


15

Это был первый язык с общей поддержкой программирования и первый основной язык со статической типизацией (широко используемый) с поддержкой обобщений.

Дженерики реализуют концепцию параметризованных типов для нескольких типов. Термин «родовой» означает «относящийся к большим группам классов или соответствующий им».

Я видел следующие упоминания о «первом»:

Параметрический полиморфизм первого порядка теперь является стандартным элементом статически типизированных языков программирования. Начиная с System F [20,42] и языков функционального программирования, конструкции нашли свое отражение в основных языках, таких как Java и C #. В этих языках параметрический полиморфизм первого порядка обычно называют дженериками.

Из « Дженерики высшего сорта» , Адриан Мурс, Фрэнк Писсенс и Мартин Одерски

Универсальное программирование - это стиль компьютерного программирования, в котором алгоритмы пишутся в терминах типов, которые будут определены позднее, которые затем создаются при необходимости для конкретных типов, предоставляемых в качестве параметров. Этот подход, впервые разработанный Ада в 1983 году

Из Википедии Общее программирование

Ответы:



4

Вероятно, Лисп. Это было более или менее в 1960-х. На самом деле, если вопрос заключается в том, какой язык первым сделал что-то заметное, вы, вероятно, обнаружите, что это шутка. Страшно осознавать, что новая классная функция в языке X на самом деле была новой классной функцией lisp в 1960 году!


7
Лисп не был статически типизирован, поэтому «дженерики» даже не имеют смысла в этом контексте.
Rufflewind

Ну, «Дженерики» имеют смысл только для некоторых видов статической типизации. Существует много видов систем типов, которые имеют разные свойства.
Захари К

@ZacharyK Специфическая особенность системы типов, обозначаемая «дженериками», - это параметрический полиморфизм , который не имеет смысла в нетипизированных языках.
Джек,

3

До дженериков были шаблоны, а до этого - подстановка макросов.


Шаблоны не являются параметрическим полиморфизмом, который имеет в виду большинство людей, когда они говорят «дженерики» в контексте типов. Шаблоны и макросы даже не привязаны к системам типов, они вообще ортогональны.
Джек,

Этот ответ путает «дженерики Java» с «родовым программированием».
Каз
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.