Яка різниця між стратегіями скорочення та стратегіями оцінки?


10

З статті про стратегію оцінювання у Вікіпедії:

Поняття стратегії відновлення в лямбдальному обчисленні схоже, але виразне.

З статті про стратегію скорочення у Вікіпедії:

Він схожий, але тонко відрізняється від поняття стратегії оцінювання в інформатиці.

Що таке тонке розмежування стратегій оцінювання та стратегій скорочення, на які натякають ці дві статті? Це лише два подібних поняття з різних областей?


3
Оцінювання визначається лише для закритих термінів і не підпадає під прив'язку. Зниження дозволено переходити під прив'язку, і так визначено для відкритих умов.
Ніл Крішнасвамі

Відповіді:


8

Стратегія скорочення - це функція на Lambda, яка вибирає один редекс (зводиться вираз) з усіх можливих повторних виразів - залежно від того, що ви визначаєте як редекс.

Неофіційно стратегія оцінювання - це порядок, в якому мова оцінює свої аргументи. Стратегія передачі параметрів - це те, що мова передає функції.

Щоб зрозуміти зв'язок між ними, вивчіть роботу Плоткіна про "Заклик за іменем", "Дзвінок за значенням" та обчислення лямбда. Він чітко визначає, що ви хочете вибрати окремі AXIOMS ​​залежно від того, який порядок оцінки ви хочете. Для імені Cb ви хочете стару бета-аксіому, а для cb-значення - аксіому бета-значення. Якщо ви це зробите, всі мета-теореми працюють однаково для обох ароматів. Пізніше я (з багатьма співробітниками) показав, що ця ідея узагальнює все, що вивчав світ ПЛ.

Це все технічне, а не якась поема, яку можна інтерпретувати. Просто прочитайте на ньому.

- Маттіас Феллейзен

ps Я скажу, що я думаю, що людям буде легше зрозуміти статті Плоткіна з I частини нашої книги «Редекс». Але так, це в 3 рази довше.



Переформулюючи, чи скажете ви, що правильно сказати, що стратегія скорочення повністю визначає спадкоємця на термін, тоді як стратегія оцінювання лише визначає, як зменшуються застосовані абстракції (не кажучи нічого про конгруенції, скажімо)?
Гвідо

6

Стаття Вікіпедії "Стратегія скорочення" повністю витягнута з конкретної редакції , внесеної анонімним IP до статті "Стратегія оцінювання".

Думка, яку він представляє, не є консенсусною, в тому сенсі, що я підозрюю, що порівняно мало людей на місцях мимовільно дадуть цю відповідь, якщо ви запитаєте їх: "чи розрізняєте б назви" стратегія скорочення "та" стратегія оцінювання "?". Я чув це лише від Маттіаса Феллейсена, який неприхильний щодо важливості цього розрізнення - і я припускаю, що цю точку зору поділяють і інші, які мали шанс вчасно детально обговорити ці питання з ним.

Моє теперішнє розуміння цього пункту (але я ще не вивчив технічні деталі для їх повної справедливості) полягає в наступному: мова йде про те, чи використовуєте ви семантику "великий крок" проти "малого кроку" - це розрізнення є стандартним і зрозумілим усіма в області. Семантика малих ступенів визначає один атомний етап відновлення, і результат взагалі все ще приводиться. Семантика великого кроку визначає один "великий" крок зменшення, який проходить весь шлях від стартової програми до її значення (або дещо багатший тип "відповіді", якщо ваша мова має інші видимі ефекти, ніж повернення значення, наприклад, введення / виведення або стан, що змінюється).

Якщо ви визначаєте відношення великого кроку та малого кроку, ви можете перевірити, чи є семантика великого кроку включена в транзитивне закриття відношення малого кроку, і що відношення малого кроку не зводиться до інших застряглих термінів, ніж ті, що досягнуті відношенням великого кроку, або розходяться, якщо визначено зменшення великого кроку. Це очікувана взаємозв'язок обох.

Я думаю, що формулювання статті може бути більш-менш описано сучасними термінами, як "стратегія оцінювання є великим кроком", "стратегія скорочення - відношення малих ступенів". Зауважте, що дискусія, викладена у статті "Стратегія скорочення", здебільшого стосується статей та досліджень (і, що ще важливіше, красномовних поглядів, сформованих під час їх читання та написання) між 1973 та 1991 роками, у той час, коли ці поняття тільки народилися, і певно, не так добре зрозуміли, як вони є сьогодні. (Семантика великого кроку була наголошена Кан у 1987 р., і одна з найважливіших робіт з семантики малих ступенів - Райт і Феллейзен, 1992)

Що стосується більш висловленої сторони того, чому Феллейзен наполягає на важливості цієї різниці (тобто, для цього може бути більше, ніж просто "маленький крок проти великого кроку, мех"), моє сьогоднішнє розуміння полягає в наступному: Слід зазначити, що семантику на малих кроках слід розглядати як деталь реалізації. Theвідповідно до цього аргументу семантика - це абстрактна функція, яка відображає кожну програму на її значення / відповідь, а решта - це пристрої реалізації, призначені для її наближення (або обґрунтування еквівалентності, викликаної цією семантикою). Коли ми сьогодні говоримо великий крок, ми думаємо про систему правил виводу синтаксичного характеру, але "стратегія скорочення", про яку йдеться вище, насправді є її абстракцією як відображенням. (Я не думаю, що це надає більшої виразності чи сили поняттю на практиці, але це робить його більш абстрактним.)

Тож я думаю, що ця сторінка вікіпедії та Маттіас Феллейзен - це щось на зразок: "Визначте свою оцінку будь-яким способом, який вам подобається, але в кінці дня важливим є те, як ваші програми відображаються на їх значення / відповіді / поведінки, і саме це слід назвати "оперативною семантикою" та обґрунтованим. ".

Зауважимо, що ця позиція дещо суперечить нинішньому розрізненню (яке, на мою думку, є досить консенсуальним, але з мого боку це може бути культурний ухил) між "оперативною семантикою" та "денотаційною семантикою", де перша вважається більш синтаксичною за своєю природою (визначається як відношення відновлення), а остання, як правило, характеризується тим, що обчислювально еквівалентні програми мають точно таке саме позначення (тому позначення не враховує власне механізму обчислення). За цим останнім поглядом те, що пропонується як "стратегія оцінювання" або "оперативна семантика" у статтях, і моє пояснення вище, швидше розглядається як денотаційна семантика - але, безумовно, більш конкретний характер, ніж більшість: значення / відповіді / поведінка ближче до синтаксичних об'єктів, ніж багато семантичних областей.

Посилання: щоб зрозуміти цю точку зору, можливо, корисно повернутися до її проголошеного джерела, що є статтею Гордона Плоткіна 1973 року. Можливо, вам також вдасться спробувати одну з останніх статей, цитованих у вікіпедії; Я виявив, наприклад, що "Параметри, що проходять і обчислення лямбда", Кранк і Феллейзен, 1991, дали дуже чіткий огляд їхньої позиції з цього питання на перших кількох сторінках.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.