Главная » Просмотр файлов » Диссертация

Диссертация (1150902), страница 4

Файл №1150902 Диссертация (Трассирующая нормализация) 4 страницаДиссертация (1150902) страница 42019-06-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

А именно, при типизации по Чёрчу терм имеет не более одноготипа, в то время как при типизации по Карри он может иметь один или несколько типов, или быть нетипизируемым вовсе. Так, терм λx : τ.x (при типизациипо Чёрчу) имеет единственный тип τ → τ , где τ — некоторый конкретный тип,5Иногда под типизацией по Чёрчу понимают явно типизированные системы (типы переменных явно указываютсяв синтаксисе языка), а под типизацией по Карри — неявно типизированные (типы присваиваются в процессе компиляции или интерпретации программы).

Путаница возникла в виду того, что сам Чёрч описывал своё исчислениев явном стиле, в то время как Карри использовал неявный стиль. Несмотря на то, что такой взгляд на стили типизации является исторически сложившимся: явно типизированные системы часто описывались и описываются в стилеЧёрча, а неявно типизированные — в стиле Карри, — он всё же является ошибочным.19СинтаксисТипизацияΛCh ::= V | ΛCh ΛCh| λV .ΛτChТипыτ ::= ι | τ → τКонтекстыΓ ::= ∅ | Γ, V : τx:τ ∈ΓΓ ⊢Ch x : τΓ, x : τ ⊢Ch e : σΓ ⊢Ch λxτ .e : τ → σΓ ⊢Ch e1 : τ1 → τ2Γ ⊢Ch e2 : τ2Γ ⊢Ch e1 e2 : τ2Рисунок 5. Простое типизированное лямбда-исчисление в стиле Чёрчауказанный в синтаксисе, например, ι или (ι → ι → ι) → ι → ι → ι и т.д.

Аналогичному терму — λx.x — в представлении Карри соответствует целое множествотипов {α → α | α ∈ τ }.Как уже упоминалось, не все термы бестипового исчисления являются термами простого типизированного, более того, в отличие от бестипового лямбдаисчисления, простое типизированное является строго нормализуемым (StronglyNormalized). Это означает, что каждый допустимый терм имеет нормальную форму, а процедура его нормализации всегда завершается. Так например, терм бестипового лямбда-исчисления ω = (λx.xx)(λx.xx) не имеет нормальной формы ине является допустимым термом простого типизированного лямбда-исчисления.Исчерпывающее описание простого типизированного лямбда-исчисления и егосвойств, а также и описание более богатых систем типов читатель может найти в[30, 31, 83].1.3.

Стратегии вычисленийГоворят, что терм находится в β-нормальной форме (далее — просто в нормальной форме), если он не содержит редексов, т.е. к нему не применима аксиомаβ-редукции. Два терма называются равными с точностью до α-конверсии, еслиони имеют одну и ту же нормальную форму. Вычисление в лямбда-исчисленииесть вычисление нормальной формы терма — нормализация.

Конечно, ввидуТьюринг-полноты λ-исчисления, не все термы имеют нормальную форму, например, вычисление терма, также известного как терм омега (ω, омега-комбинатор,20Редукция под абстракциейРедукция аргументовДаНетДа(Сильная) нормальная формаСлабая нормальная формаS ::= λx.N | x N1 . . . NnW ::= λx.e | x W1 . . . WnНетГоловная нормальная форма Слабая головная нормальная формаH ::= λx.H | x e1 . .

. enE ::= λx.e | x e1 . . . enгде ∀ i ∈ N, ei — произвольный лямбда-термТаблица 1: Нормальные формыOmega-Combinator), ω = σσ = (λx.x x) (λx.x x) расходится. Важным свойством вконтексте нормализации является свойство Чёрча–Россера (Church–Rosser), также известное как свойство ромба: если термы s и t получены из терма n посредством β-редукции, n →∗β s и n →∗β t, то существует такой терм m, что s →∗β m иt →∗β m. Прямым следствием свойства ромба является единственность нормальной формы терма, если таковая существует.

Тем не менее, в аксиоме β-редукцииничего не сказано про порядок, в котором должна выполняться β-редукция терма.Далее в этой главе мы рассмотрим существующие порядки (стратегии, ReductionStrategies) редукции и их свойства.Разнообразие стратегий вычислений в лямбда-исчислении обусловлено, в томчисле, тем, что разные языки программирования создавались для различных целей и, соответственно, имеют разные свойства и реализации.

Несмотря на то, чтоне все порядки редукции приводят терм к нормальной форме, они зачастую завершаются в некоторой “нормальной” 6 для этого порядка форме, которая с точки зрения конкретного порядка редукции считается значением, т.е. термом, который нередуцируется дальше, даже если содержит редексы. Основными свойствами стратегий редукции являются произведение редукции под абстракцией и редукция аргументов. В таблице 1 7 приведены “нормальные” формы, получаемые при всехкомбинациях этих свойств, описанные в терминах контекстно-свободных грамматик.6Данная форма не является нормальной формой в том смысле, что терм, находящийся в ней, может содержатьредексы.

Для того, чтобы такая терминология не вводила в заблуждение, нормальную форму часто называют сильнойнормальной формой, а остальные “нормальные” формы имеют некоторый дополнительный префикс, описывающий“какая именно это нормальная форма”, например, головная нормальная форма (см. раздел 1.4 и таблицу. 1).7Таблица заимствована из статьи П.

Сестофта (P. Sestoft) [86].211.3.1. Слабые порядки редукцииСлабые порядки редукции характеризуются тем, что они рассматривают абстракцию как значение и, соответственно, не производят редукцию под абстракцией.Вызов по имени (Call-by-Name).Стратегия вычисления по имени сначала вы-числяет функцию до значения, лямбда-абстракции, после чего редуцирует её применение к аргументу путём подстановки тела аргумента вместо каждого вхождения переменной, по которой эта абстракция произведена. Это может привести кповторным вычислениям аргументов, если имеется несколько вхождений переменной, по которой производилась абстракция функции.

Формально, на каждомшаге раскрывается самый левый самый внешний редекс, который не находитсяпод лямбда-абстракцией. Таким образом, вызов по имени завершается в слабойголовной нормальной форме.Вызов по значению (Call-by-Value) в отличие от вызова по имени сначала производит редукцию аргументов и лишь потом применяет к ним функции. Формально, на каждом шаге раскрывается самый левый самый внутренний редекс, который не находится под лямбда-абстракцией. Таким образом, вызов по значениюзавершается в слабой нормальной форме.Вызов по необходимости (Call-by-Need)является вызовом по имени8 , в кото-рый добавлена мемоизация. Это означает, что при вычислении аргумента его значение сохраняется и не вычисляется повторно при последующем использованииаргумента.

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

Не составляет труда показать, что это определение эквивалентноприведённому выше.221.3.2. Сильные порядки редукцииНормальный порядокотличается от стратегии вызова по имени тем, что онпроизводит сильную редукцию, т.е. редукцию под абстракцией, а также редукциюаргументов. Первым на каждом шаге раскрывается самый левый самый внешнийредекс. В отличие от других порядков редукции, нормальный порядок редукцииявляется нормализирующим (Normalizing), т.е.

завершается в сильной нормальнойформе терма тогда и только тогда, когда последняя существует. С другой стороны,как и вызов по имени, нормальный порядок редукции может проделывать одну иту же работу несколько раз. Например, (λx.xx)((λy.y)a) → ((λy.y)a)((λy.y)a) →a((λy.y)a) → aa дважды редуцирует редекс (λy.y)a.Аппликативный порядок.В то время как нормальный порядок является силь-ной версией вызова по имени, аппликативный порядок является сильной версиейвызова по значению.

Иными словами, на каждом шаге первым раскрывается самый левый самый глубокий редекс. Например, (λx.xx)((λy.y)a) → (λx.xx)a →aa. Аппликативный порядок, если завершается, приводит терм в сильную нормальную форму. Тем не менее, в отличие от нормального порядка редукции, аппликативный порядок может не завершаться даже в том случае, если терм имеет нормальную форму. Зачастую, это происходит тогда, когда какой-нибудь аргумент функции не имеет нормальной формы и при этом не используется в еётеле.

Например, терм (λx.λy.x)a((λx.xx)(λx.xx)) имеет нормальную форму a, вто время как его аргумент ((λx.xx)(λx.xx)), уже известный нам терм ω, нормальной формы не имеет, и его вычисление расходится. Более того, аппликативныйпорядок редукции не способен редуцировать терм, являющийся применением рекурсивной функции к аргументу, даже если комбинатор рекурсии, используемыйдля определения рекурсивной функции, является специальным комбинатором длявызова по значению.Головная редукция (Head Reduction, Leftmost Head Reduction)производитредукцию только головных редексов.

Редекс называется головным, если его предками в абстрактном синтаксическом дерева терма являются лишь абстракции. Например, редекс (λy.e1 )e2 является головным в терме λx1 . . . . λxn .(λy.e1 )e2 . . . em .Завершается головная редукция в головной нормальной форме. Заметим, что по-23вторное применение головной редукции к аргументам получившейся головнойнормальной формы нормализует терм. Более того, такая стратегия редукции является нормализирующей.Существуют и другие порядки редукции, зачастую являющиеся лишь вариациями и разнообразными комбинациями вышеописанных порядков редукции.Можно упомянуть такие порядки как гибридный (Hybrid) аппликативный порядок, гибридный нормальный порядок или спинальная головная редукция (SpineHead Reduction), и другие (см.

[30, 86]).1.4. Головная нормальная форма и дерево БёмаПроизвольный лямбда-терм M можно записать в следующей форме9 :[M = λ⃗v .U V1 . . . Vn , где U =y(λy.P )Q(1)В первом случае говорят, что терм M находится в головной нормальной форме(Head Normal Form), во втором случае (λy.P )Q образует головной редекс. Заметим, что по определению терм находится в головной нормальной форме тогда итолько тогда, когда он не содержит головных редексов. Важным следствием этогоопределения является то, что головная нормальная форма не обладает свойствомединственности: один и тот же терм может иметь более одной головной нормальной формы — например, головной нормальной формой терма y((λx.x)z) являетсякак терм сам по себе, так и его нормальная форма yz.

Характеристики

Тип файла
PDF-файл
Размер
1,34 Mb
Высшее учебное заведение

Список файлов диссертации

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6374
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее