Надежда (язык программирования)
Hope — небольшой функциональный язык программирования, разработанный в 1970-х годах в Эдинбургском университете . [1] [2] Он предшествует Miranda и Haskell и является современником ML , также разработанного в университете. Надежда родилась из НПЛ , [3] простой функциональный язык, разработанный Родом Берстоллом и Джоном Дарлингтоном в их работе по преобразованию программ. [4] NPL и Hope известны тем, что являются первыми языками с оценкой по шаблону и алгебраическими типами данных . [5]
Хоуп был назван в честь сэра Томаса Хоупа (ок. 1681–1771), шотландского реформатора сельского хозяйства, в честь которого также была названа площадь Хоуп-Парк в Эдинбурге, где во время разработки Хоупа располагался Департамент искусственного интеллекта.
Подробности о языке [ править ]
Факториальная программа в Hope:
dec fact : num -> num; --- fact 0 <= 1; --- fact n <= n*fact(n-1);
Изменение порядка предложений не меняет смысла программы, поскольку сопоставление с образцом Хоупа всегда отдает предпочтение более конкретным шаблонам, а не менее конкретным. Явные объявления типов в Hope необходимы; в Hope нет возможности использовать алгоритм вывода типа.
Hope предоставляет две встроенные структуры данных: кортежи и списки. [6]
Реализации [ править ]
Первая реализация Hope была строгой , но с тех пор появились ленивые версии и строгие версии с ленивыми конструкторами. приступила British Telecom совместно с Имперским колледжем к реализации строгой версии. Первый выпуск был написан Таносом Василакисом в 1986 году. Дальнейшие выпуски были написаны Марком Таснгом из British Telecom. Язык-преемник Hope+ (разработанный совместно Imperial College и International Computers Limited (ICL)) добавил аннотации, определяющие либо строгую, либо ленивую оценку. [7]
Учебное пособие Роджера Бэйли «Надежда» в августовском выпуске журнала BYTE за 1985 год ссылается на интерпретатор для IBM PC DOS 2.0. [6]
Ссылки [ править ]
- ^ Burstall RM , MacQueen DB, Sannella DT (1980) Hope: экспериментальный аппликативный язык . Протокол конференции LISP 1980 года, Стэнфордский университет, стр. 136–143.
- ^ Бейли, Роджер (1 апреля 1990 г.). Функциональное программирование с надеждой . Серия Эллиса Хорвуда «Компьютеры и их приложения». Эллис Хорвуд Лтд.
- ^ РМ Берстолл. Соображения по проектированию функционального языка программирования. Приглашенный доклад, Учеб. Конференция по новейшим технологиям Infotech. «Революция программного обеспечения», Копенгаген, 45–57 (1977).
- ^ RM Берстолл и Дж. Дарлингтон. Система преобразований для разработки рекурсивных программ. Журнал Ассоциации вычислительной техники, 24 (1): 44–67 (1977).
- ^ Худак, Пол; Хьюз, Джон; Пейтон Джонс, Саймон; Уодлер, Филип (9 июня 2007 г.). История Haskell: лень с классами . АКМ. стр. 12–1. дои : 10.1145/1238844.1238856 . ISBN 9781595937667 . S2CID 52847907 .
- ^ Jump up to: Перейти обратно: а б Бейли, Роджер (август 1985 г.). «Урок надежды» . БАЙТ . Том. 10, нет. 8 . Проверено 1 апреля 2015 г.
- ^ Джон Кьюли и Кевин Глинн. Оценочные аннотации для Hope+. В Кей Дэвис и Р.Дж.М. Хьюз, редакторы, «Функциональное программирование: материалы семинара в Глазго 1989 года», «Семинары по вычислительной технике», страницы 329–337, Лондон, Великобритания, 1990. Springer-Verlag.