Стратегия сокращения
В переписывании стратегия сокращения или стратегия переписывания — это отношение, определяющее перезапись для каждого объекта или термина, совместимое с данным отношением сокращения. [1] Некоторые авторы используют этот термин для обозначения стратегии оценки . [2] [3]
Определения [ править ]
Формально для абстрактной системы переписывания , стратегия сокращения является бинарным отношением на с , где является транзитивным замыканием (но не рефлексивное закрытие). [1] Кроме того, нормальные формы стратегии должны быть такими же, как нормальные формы исходной системы переписывания, т. е. для всех , существует с если только . [4]
Стратегия одношагового сокращения – это стратегия, при которой . В противном случае это многошаговая стратегия. [5]
стратегия Детерминированная – это стратегия, в которой является частичной функцией , т.е. для каждого есть максимум один такой, что . В противном случае это недетерминированная стратегия. [5]
Переписывание термина [ править ]
В системе переписывания терминов стратегия переписывания определяет из всех сокращаемых подтерминов ( редексов ), какой из них следует сократить ( сжать ) в пределах термина.
Одноэтапные стратегии переписывания терминов включают в себя: [5]
- Самый левый-внутренний: на каждом шаге сжимается самый левый из самых внутренних редексов, причем самым внутренним редексом является редекс, не содержащий каких-либо редексов. [6]
- Крайний левый-внешний: на каждом шаге сжимается самый левый из крайних редексов, где крайний редекс — это редекс, не содержащийся ни в одном редексе [6]
- Крайний правый внутренний, Крайний правый крайний: аналогично
Многошаговые стратегии включают в себя: [5]
- параллельный-внутренний: одновременно сокращает все самые внутренние редексы. Это четко определено, поскольку редексы попарно не пересекаются.
- параллельно-внешний: аналогично
- Редукция Гросса-Кнута, [7] также называется полной заменой или редукцией Клини: [5] все редексы в терме одновременно сокращаются
Параллельная внешняя редукция и редукция Гросса-Кнута гипернормализуют для всех почти ортогональных систем переписывания терминов, а это означает, что эти стратегии в конечном итоге достигнут нормальной формы, если она существует, даже при выполнении (конечного множества) произвольных редукций между последовательными применениями стратегии. [8]
Stratego — это предметно-ориентированный язык, разработанный специально для стратегий переписывания терминов программирования. [9]
Лямбда-исчисление [ править ]
В контексте исчисления лямбда - сокращение нормального порядка относится к крайнему левому сокращению в смысле, указанном выше . [10] Приведение к нормальному порядку является нормализацией в том смысле, что если терм имеет нормальную форму, то приведение к нормальному порядку в конечном итоге достигнет ее, отсюда и название «нормальный». Это известно как теорема стандартизации. [11] [12]
Крайнее левое сокращение иногда используется для обозначения нормального уменьшения порядка, поскольку при обходе предварительного порядка понятия совпадают, и аналогичным образом крайний левый редекс - это редекс с самым левым начальным символом, когда лямбда-термин рассматривается как строка символов. [13] [14] Когда «крайний левый» определяется с помощью обхода по порядку, понятия различны. Например, в термине с определено здесь , самый левый редекс упорядоченного обхода равен в то время как крайний левый редекс представляет собой все выражение. [15]
Аппликативное снижение порядка относится к самому левому и самому внутреннему сокращению. [10] В отличие от нормального порядка редукция аппликативного порядка может не прекращаться, даже если термин имеет нормальную форму. [10] Например, с помощью аппликативного приведения порядка возможна следующая последовательность приведений:
Но при использовании приведения к нормальному порядку та же самая отправная точка быстро приводится к нормальной форме:
Полная β-редукция относится к недетерминированной одношаговой стратегии, которая позволяет уменьшать любой редекс на каждом этапе. [3] Такахаши Параллельная β-редукция — это стратегия, которая уменьшает все редексы в термине одновременно. [16]
Слабое сокращение [ править ]
Нормальное и аппликативное приведение порядка сильны тем, что позволяют приводить к лямбда-абстракциям. Напротив, слабая редукция не приводит к лямбда-абстракции. [17] Сокращение вызова по имени — это слабая стратегия сокращения, которая уменьшает самый левый внешний редекс не внутри лямбда-абстракции, тогда как сокращение вызова по значению — это слабая стратегия сокращения, которая уменьшает самый левый внутренний редекс не внутри лямбда-абстракции. вызова по имени и вызова по значению Эти стратегии были разработаны для отражения стратегий оценки . [18] Фактически, аппликативное понижение порядка также было первоначально введено для моделирования метода передачи параметров по значению, используемого в Algol 60 и современных языках программирования. В сочетании с идеей слабой редукции результирующая редукция вызова по значению действительно является точным приближением. [19]
К сожалению, слабая редукция не является сливной. [17] а традиционные уравнения приведения лямбда-исчисления бесполезны, поскольку они предполагают отношения, нарушающие режим слабой оценки. [19] Однако можно расширить систему до конфлюэнтности, разрешив ограниченную форму редукции в рамках абстракции, в частности, когда редекс не включает переменную, связанную абстракцией. [17] Например, λ x .(λ y . x ) z находится в нормальной форме для стратегии слабой редукции, поскольку редекс (λ y . x ) z содержится в лямбда-абстракции. Но термин λ x .(λ y . y ) z все еще можно уменьшить с помощью расширенной стратегии слабой редукции, поскольку редекс (λ y . y ) z не относится к х . [20]
Оптимальное сокращение [ править ]
Оптимальное сокращение мотивировано существованием лямбда-членов там, где не существует последовательности сокращений, которая уменьшает их без дублирования работы. Например, рассмотрим
((λg.(g(g(λx.x)))) (λh.((λf.(f(f(λz.z)))) (λw.(h(w(λy.y)))))))
Он состоит из трех вложенных терминов, x=((λg. ... ) (λh.y)) , y=((λf. ...) (λw.z)) , и z=λw.(h(w(λy.y))) . Здесь можно сделать только две возможные β-редукции: по x и по y. Уменьшение внешнего термина x сначала приводит к дублированию внутреннего термина y, и каждая копия должна быть уменьшена, но уменьшение сначала внутреннего термина y приведет к дублированию его аргумента z, что приведет к дублированию работы, когда значения h и мы стали известны. [а]
Оптимальное сокращение не является стратегией сокращения для лямбда-исчисления в узком смысле, поскольку при выполнении β-редукции теряется информация об общих замененных редексах. Вместо этого он определен для помеченного лямбда-исчисления , аннотированного лямбда-исчисления, которое отражает точное представление о работе, которой следует поделиться. [21] : 113–114
Метки состоят из счетного бесконечного набора атомарных меток и конкатенаций. , зачеркивания и подчеркивания этикеток. Помеченный термин — это термин лямбда-исчисления, в котором каждый подтерм имеет метку. Стандартная начальная маркировка лямбда-терма дает каждому подтерму уникальную атомарную метку. [21] : 132 Меченое β-восстановление определяется: [22]
где объединяет метки, и замена определяется следующим образом (с использованием соглашения Барендрегта ): [22]
Практический алгоритм оптимального сокращения был впервые описан в 1989 году. [25] спустя более десяти лет после того, как оптимальное сокращение было впервые определено в 1974 году. [26] Болонская оптимальная машина высшего порядка (BOHM) — это прототип реализации расширения метода на сети взаимодействия . [21] : 362 [27] Lambdascope — это более поздняя реализация оптимального сокращения, также использующая сети взаимодействия. [28] [б]
Звонок по сокращению потребности [ править ]
Сокращение вызова по необходимости можно определить аналогично оптимальному сокращению как слабое крайнее левое сокращение с использованием параллельного сокращения редексов с одной и той же меткой для немного другого помеченного лямбда-исчисления. [17] Альтернативное определение заменяет бета-правило на операцию, которая находит следующее «необходимое» вычисление, оценивает его и заменяет результат во все места. Это требует расширения бета-правила, чтобы позволить сокращать термины, которые не являются синтаксически смежными. [29] Как и в случае с вызовом по имени и вызовом по значению, сокращение количества вызовов по необходимости было разработано для имитации поведения стратегии оценки, известной как «вызов по необходимости» или ленивая оценка .
См. также [ править ]
Примечания [ править ]
- ^ Кстати, приведенный выше член сводится к тождественной функции (λy.y) и создается путем создания оболочек, которые делают функцию идентификации доступной связующим. g=λh... , f=λw... , h=λx.x (сначала), и w=λz.z (сначала), все из которых применяются к самому внутреннему члену λy.y .
- ^ Краткое изложение недавних исследований по оптимальному сокращению можно найти в короткой статье « Об эффективном сокращении лямбда-членов» .
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б Киршнер, Элен (26 августа 2015 г.). «Стратегии переписывания и программы стратегического переписывания» . В Марти-Олье Нарцисо; Ольвечки, Петер Чаба; Талкотт, Кэролайн (ред.). Логика, переписывание и параллелизм: очерки, посвященные Хосе Месегеру по случаю его 65-летия . Спрингер. ISBN 978-3-319-23165-5 . Проверено 14 августа 2021 г.
- ^ Селинджер, Питер; Валирон, Бенуа (2009). «Квантовое лямбда-исчисление» (PDF) . Семантические методы в квантовых вычислениях : 23. doi : 10.1017/CBO9781139193313.005 . ISBN 9780521513746 . Проверено 21 августа 2021 г.
- ^ Jump up to: Перейти обратно: а б Пирс, Бенджамин К. (2002). Типы и языки программирования . МТИ Пресс . п. 56. ИСБН 0-262-16209-1 .
- ^ Клоп, Джон Уиллем; ван Остром, Винсент; ван Раамсдонк, Фемке (2007). «Стратегии сокращения и ацикличность» (PDF) . Переписывание, вычисление и доказательство . Конспекты лекций по информатике. Полный. 4600. стр. 89–112. CiteSeerX 10.1.1.104.9139 . дои : 10.1007/978-3-540-73147-4_5 . ISBN 978-3-540-73146-7 .
- ^ Jump up to: Перейти обратно: а б с д и Клоп, Дж. В. «Системы переписывания терминов» (PDF) . Статьи Нахума Дершовица и его студентов . Тель-Авивский университет. п. 77 . Проверено 14 августа 2021 г.
- ^ Jump up to: Перейти обратно: а б Хорвиц, Сьюзан Б. «Лямбда-исчисление» . CS704 Примечания . Университет Висконсина в Мэдисоне . Проверено 19 августа 2021 г.
- ^ Барендрегт, HP; Экелен, MCJD; Глауэрт, JRW; Кеннауэй-младший; Пласмейер, MJ; Спи, МР (1987). Переписывание графика термов . Параллельные архитектуры и языки Европы. Полный. 259. стр. 141–158. дои : 10.1007/3-540-17945-3_8 .
- ^ Антой, Серджио; Мидделдорп, Аарт (сентябрь 1996 г.). «Стратегия последовательного сокращения» (PDF) . Теоретическая информатика . 165 (1): 75–95. дои : 10.1016/0304-3975(96)00041-2 . Проверено 8 сентября 2021 г.
- ^ Кибурц, Ричард Б. (ноябрь 2001 г.). «Логика переписывания стратегий» . Электронные заметки по теоретической информатике . 58 (2): 138–154. дои : 10.1016/S1571-0661(04)00283-X .
- ^ Jump up to: Перейти обратно: а б с Маццола, Гуэрино; Мильмейстер, Жерар; Вайсманн, Джоди (21 октября 2004 г.). Комплексная математика для специалистов по информатике 2 . Springer Science & Business Media. п. 323. ИСБН 978-3-540-20861-7 .
- ^ Карри, Хаскелл Б .; Фейс, Роберт (1958). Комбинаторная логика . Том. I. Амстердам: Северная Голландия. стр. 139–142. ISBN 0-7204-2208-6 .
- ^ Касима, Рё. «Доказательство теоремы стандартизации в λ-исчислении» (PDF) . Токийский технологический институт . Проверено 19 августа 2021 г.
- ^ Виал, Пьер (7 декабря 2017 г.). Неидемпотентные операторы типизации, выходящие за рамки λ-исчисления (PDF) (доктор философии). Сорбонна Париж Сите. п. 62.
- ^ Партейн, Уильям Д. (декабрь 1989 г.). Сокращение графа без указателей (PDF) (доктор философии). Университет Северной Каролины в Чапел-Хилл . Проверено 10 января 2022 г.
- ^ Ван Оостром, Винсент; Тояма, Ёсихито (2016). Нормализация методом случайного спуска (PDF) . 1-я Международная конференция по формальным структурам вычислений и дедукции. п. 32:3. doi : 10.4230/LIPIcs.FSCD.2016.32 .
- ^ Такахаши, М. (апрель 1995 г.). «Параллельные редукции в λ-исчислении» . Информация и вычисления . 118 (1): 120–127. дои : 10.1006/inco.1995.1057 .
- ^ Jump up to: Перейти обратно: а б с д Блан, Томаш; Леви, Жан-Жак; Маранге, Люк (2005). «Совместное использование слабого лямбда-исчисления». Процессы, сроки и циклы: шаги на пути к бесконечности: очерки, посвященные Яну Виллему Клопу по случаю его 60-летия . Спрингер. стр. 70–87. CiteSeerX 10.1.1.129.147 . дои : 10.1007/11601548_7 . ISBN 978-3-540-32425-6 .
- ^ Сестофт, Питер (2002). «Демонстрация сокращения лямбда-исчисления» (PDF) . Ин Могенсен, Т; Шмидт, Д; Садборо, Айдахо (ред.). Сущность вычислений: сложность, анализ, преобразование. Очерки, посвященные Нилу Д. Джонсу . Конспекты лекций по информатике. Том. 2566. Шпрингер-Верлаг. стр. 420–435. ISBN 3-540-00326-6 .
- ^ Jump up to: Перейти обратно: а б Феллейзен, Матиас (2009). Семантическая инженерия с помощью PLT Redex . Кембридж, Массачусетс: MIT Press. п. 42. ИСБН 978-0262062756 .
- ^ Сестини, Филиппо (2019). Нормализация путем оценки типизированной слабой лямбда-редукции (PDF) . 24-я Международная конференция по типам доказательств и программ (TYPES 2018). doi : 10.4230/LIPIcs.TYPES.2018.6 .
- ^ Jump up to: Перейти обратно: а б с Асперти, Андреа; Геррини, Стефано (1998). Оптимальная реализация функциональных языков программирования . Кембридж, Великобритания: Издательство Кембриджского университета. ISBN 0521621127 .
- ^ Jump up to: Перейти обратно: а б Фернандес, Марибель; Сиафакас, Николаос (30 марта 2010 г.). «Помеченные лямбда-исчисления с явным копированием и стиранием». Электронные труды по теоретической информатике . 22 : 49–64. arXiv : 1003.5515v1 . дои : 10.4204/EPTCS.22.5 . S2CID 15500633 .
- ^ Леви, Жан-Жак (9–11 ноября 1987 г.). Совместное использование оценки лямбда-выражений (PDF) . Второй франко-японский симпозиум по программированию компьютеров будущего поколения. Канны, Франция. п. 187. ИСБН 0444705260 .
- ^ Тереза (2003). Системы переписывания терминов . Кембридж, Великобритания: Издательство Кембриджского университета. п. 518. ИСБН 978-0-521-39115-3 .
- ^ Лампинг, Джон (1990). Алгоритм оптимального сокращения лямбда-исчисления (PDF) . 17-й симпозиум ACM SIGPLAN-SIGACT по принципам языков программирования - POPL '90. стр. 16–30. дои : 10.1145/96709.96711 .
- ^ Леви, Жан-Жак (июнь 1974 г.). Безопасное сокращение лямбда-исчисления (PDF) (доктор философии) (на французском языке). Парижский VII университет. стр. 81–109. OCLC 476040273 . Проверено 17 августа 2021 г.
- ^ Асперти, Андреа. «Болонская оптимальная машина высшего порядка, версия 1.1» . Гитхаб .
- ^ ван Остром, Винсент; ван де Лоой, Кес-Ян; Цвицерлоод, Марин (2004). ] (Lambdascope): еще одна оптимальная реализация лямбда-исчисления (PDF) . Практикум по алгебре и логике в системах программирования (ALPS).
- ^ Чанг, Стивен; Феллейзен, Матиас (2012). «Лямбда-исчисление по требованию, новый взгляд» (PDF) . Языки и системы программирования . Конспекты лекций по информатике. Том. 7211. стр. 128–147. дои : 10.1007/978-3-642-28869-2_7 . ISBN 978-3-642-28868-5 . S2CID 6350826 .