Эшер (язык программирования) - Escher (programming language)

Эшер
Парадигмадекларативный: функциональный, логика
РазработаноJ.W. Ллойд
Впервые появилсясередина 1990-х
Печатная дисциплинастатический, манифест
Основной реализации
Реализация Ки Сионг Нг
Под влиянием
простая теория типов

Эшер (назван в честь М. К. Эшер, «мастер бесконечных циклов») является декларативный язык программирования который поддерживает оба функциональное программирование и логическое программирование модели, разработанные J.W. Ллойд в середине 1990-х. Он был разработан в основном как средство исследования и обучения. Основной взгляд на программирование, представленный Эшером и родственными языками, состоит в том, что программа - это представление теории в некоторых логическая структура, а выполнение программы (вычисление) является выводом из теории. Логическая основа Эшера Церковь Алонсо с простая теория типов.

Эшер, в частности, поддерживает ввод-вывод через монадический тип представляя «внешний мир» в стиле Haskell.Одной из целей дизайнеров Эшера было поддержать метапрограммирование, поэтому язык имеет всестороннюю поддержку для создания и преобразования программ.

Примеры

МОДУЛЬ Lambda.CONSTRUCT Person / 0.FUNCTION Джейн, Мэри, Джон: One -> Person.FUNCTION Мать: Person * Person -> Boolean.Mother (x, y) => x = Jane & y = Mary.FUNCTION Жена: Person * Person -> Boolean.Wife (x, y) => x = John & y = Jane.FUNCTION PrimitiveRel: (Person * Person -> Boolean) -> Boolean.PrimitiveRel (r) => r = Мать / r = Жена .FUNCTION Rel: (Person * Person -> Boolean) -> Boolean.Rel (r) => PrimitiveRel (r) / (НЕКОТОРЫЕ [r1, r2] (r = LAMBDA [u] (НЕКОТОРЫЕ [z] (r1 (Fst (u), z) и r2 (z, Snd (u)))) и PrimitiveRel (r1) и PrimitiveRel (r2))).

Рекомендации