Jump to content

ИСВИМ

ИСВИМ
Парадигма Императивный , функциональный
Разработано Питер Ландин
Впервые появился 1966 год ; 58 лет назад ( 1966 )
Под влиянием
АЛГОЛ 60 , Лисп
Под влиянием
SASL , Миранда , ML , Haskell , Clean , Lucid

ISWIM ( If You See What I Mean ) — абстрактный язык компьютерного программирования (или семейство языков), разработанный Питером Ландином и впервые описанный в его статье «Следующие 700 языков программирования», опубликованной в журнале Communications of ACM в 1966 году. [ 1 ]

Хотя он и не был реализован, он оказался очень влиятельным в разработке языков программирования, особенно языков функционального программирования , таких как SASL , Miranda , ML , Haskell и их преемников, а также программирования потоков данных языков , таких как Lucid .

ISWIM — это императивный язык программирования с функциональным ядром, состоящим из синтаксического шугаринга лямбда -исчисления , к которому добавляются изменяемые переменные и присваивание, а также мощный механизм управления: программной точки оператор . Основанный на лямбда-исчислении, ISWIM имеет функции высшего порядка и с лексической областью действия переменные .

Операционная семантика ISWIM определяется с использованием машины SECD Ландина и использует вызов по значению, то есть быструю оценку . [ 2 ] Целью ISWIM было больше походить на математическую запись, поэтому Ландин отказался от точек с запятой в АЛГОЛЕ между операторами и begin ... end блоки и заменил их правилом «вне игры» и областью действия, основанной на отступах .

Отличительной особенностью ISWIM является использование where статьи. Программа ISWIM представляет собой одно выражение, дополненное предложениямиwhere (вспомогательные определения, включая уравнения между переменными), условными выражениями и определениями функций. Наряду с CPL , ISWIM был одним из первых языков программирования, в котором использовались операторыwhere . [ 3 ]

Примечательной семантической особенностью была возможность определять новые типы данных как (возможно, рекурсивную) сумму произведений. Это было сделано с использованием несколько подробного описания в стиле естественного языка, но, если не считать обозначений, оно соответствует в точности алгебраическим типам данных , встречающимся в современных функциональных языках. [ 4 ] Переменные ISWIM не имели явных объявлений типов, и вполне вероятно (хотя и не указано явно в статье 1966 года), что Ландин намеревался сделать язык динамически типизированным, как LISP и в отличие от ALGOL ; но также возможно, что он намеревался разработать некую форму вывода типа .

Реализации и производные

[ редактировать ]

Попыток прямой реализации ISWIM не предпринималось, кроме языка Арта Эвана PAL . [ 5 ] и Джона К. Рейнольдса языковые мысли , [ 6 ] уловил большую часть концепций Ландина, включая мощные операции по передаче контроля. Оба они были типизированы динамически . Робина Милнера можно ML считать эквивалентом I SWIM без оператора J и с выводом типа .

Другой путь от ISWIM — убрать императивные функции (присваивание и оператор J), оставив чисто функциональный язык. [ 7 ] Тогда становится возможным переключиться на отложенное вычисление . Этот путь привел к языкам программирования SASL , Kent Recursive Calculator (KRC), Hope , Miranda , Haskell и Clean .

  1. ^ Ландин, П.Дж. (март 1966 г.). «Следующие 700 языков программирования» (PDF) . Коммуникации АКМ . 9 (3). Ассоциация вычислительной техники : 157–165. дои : 10.1145/365230.365257 . S2CID   13409665 .
  2. ^ Плоткин, Гордон (1975). Вызов по имени, вызов по значению и лямбда-исчисление (PDF) (отчет).
  3. ^ Эта статья основана на материалах, взятых из ISWIM в Бесплатном онлайн-словаре вычислительной техники до 1 ноября 2008 г. и включенных в соответствии с условиями «повторного лицензирования» GFDL версии 1.3 или более поздней.
  4. ^ Тернер, Д.А. (2013), «Некоторые истории языков функционального программирования» , Конспекты лекций по информатике , Берлин, Гейдельберг: Springer Berlin Heidelberg, стр. 1–20, ISBN  978-3-642-40446-7 получено 28 января 2024 г. , В документе ISWIM также впервые упоминаются определения алгебраических типов, используемые для определения структур. Это делается на словах, но идея суммы продуктов явно присутствует.
  5. ^ Эванс, Искусство (1968). «PAL: язык, предназначенный для обучения лингвистике программирования». Материалы Национальной конференции ACM . Национальная конференция ACM. Ассоциация вычислительной техники .
  6. ^ Рейнольдс, Джон К. (сентябрь 1969 г.). GEDANKEN: простой бестиповый язык, который допускает функциональные структуры данных и сопрограммы (Report). Аргоннская национальная лаборатория.
  7. ^ Иванович, Мирьяна; Будимак, Зоран (апрель 1993 г.). «Определение ISWIM-подобного языка через схему» . Уведомления ACM SIGPLAN . 28 (4): 29–38. дои : 10.1145/152739.152743 . S2CID   14379260 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 58434e458113546679a7384ea8bd9b5b__1723123320
URL1:https://arc.ask3.ru/arc/aa/58/5b/58434e458113546679a7384ea8bd9b5b.html
Заголовок, (Title) документа по адресу, URL1:
ISWIM - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)