Перші мови з загальною підтримкою програмування


15

Яка перша мова з загальною підтримкою програмування та яка перша основна статично набрана мова (широко використовується) із підтримкою generics.

Генерики реалізують концепцію параметризованих типів, щоб передбачити кілька типів. Термін "загальний" означає ", що відноситься до або підходить для великих груп класів".

Я бачив такі згадки про "перше":

Параметричний поліморфізм першого порядку тепер є стандартним елементом статично типових мов програмування. Починаючи із системи F [20,42] та функціональних мов програмування, конструкції знайшли шлях до основних мов, таких як Java та C #. У цих мовах параметричний поліморфізм першого порядку зазвичай називають генеричним.

З " Генерики вищого роду" Адріан Мавр, Френк Піссенс та Мартін Одерський

Узагальнене програмування - це стиль комп'ютерного програмування, в якому алгоритми записуються в терміни, які будуть визначені пізнішими типами, які потім інстанціюються, коли це потрібно для конкретних типів, що надаються як параметри. Цей підхід запровадив Ада у 1983 році

З Вікіпедії Узагальнене програмування

Відповіді:



4

Напевно, Лисп. Більш-менш це робилося в 1960-х роках. Насправді, якщо питання полягає в тому, що першою мовою зробив майже все, що ви маєте на увазі, ви, ймовірно, виявите, що це було безумством. Це страшно зрозуміти, що нова класна особливість мови X насправді була класною новою рисою lisp 1960 року!


7
Лісп не був набраний статично, тому "дженерики" навіть не мають сенсу в цьому контексті.
Rufflewind

Ну а "Generics" має сенс лише для деяких видів статичного набору тексту. Існує багато типів систем типу, які мають різні властивості.
Zachary K

@ZacharyK Особливістю системної системи типу "generics" є параметричний поліморфізм , який не має сенсу в нетипізованих мовах.
Джек

3

До дженериків були шаблони, а до цього макрозаміна.


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

Ця відповідь плутає "Java generics" з "загальним програмуванням".
Каз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.