Надежда (язык программирования) - Hope (programming language)
Hope - это небольшой функциональный язык программирования, разработанный в 1970-х годах в Эдинбургском университете . Он предшествует Miranda и Haskell и является современником ML , также разработанного в университете. Hope произошел от NPL , простого функционального языка, разработанного Родом Берстоллом и Джоном Дарлингтоном в их работе над преобразованием программ. NPL и Hope известны тем, что были первыми языками с оценкой вызова по шаблону и алгебраическими типами данных .
Хоуп был назван в честь сэра Томаса Хоупа (ок. 1681–1771), шотландского реформатора сельского хозяйства, в честь которого также была названа площадь Хоуп-Парк-сквер в Эдинбурге, где на момент создания «Хоуп» находился Департамент искусственного интеллекта.
Сведения о языке
Факториальная программа в Hope:
dec fact : num -> num; --- fact 0 <= 1; --- fact n <= n*fact(n-1);
Изменение порядка предложений не меняет смысла программы, потому что при сопоставлении с образцом Хоуп всегда предпочтение отдается более конкретным образцам, чем менее конкретным. Требуются явные объявления типов в Hope; в Hope нет возможности использовать алгоритм вывода типов.
Hope предоставляет две встроенные структуры данных: кортежи и списки.
Реализации
Первая реализация Hope была строгой , но с тех пор появились ленивые версии и строгие версии с ленивыми конструкторами. British Telecom вместе с Имперским колледжем приступила к проекту по внедрению строгой версии. Первый выпуск был написан Таносом Вассилакисом в 1986 году. Последующие выпуски были написаны Марком Таснгом из British Telecom. Язык-преемник Hope + (разработанный совместно Imperial College и International Computers Limited (ICL)) добавил аннотации, предписывающие либо строгую, либо ленивую оценку.
Учебник Roger Bailey's Hope в августовском выпуске BYTE за 1985 год ссылается на интерпретатор для IBM PC DOS 2.0.