Що являє собою денотаційну семантику?


45

В іншому потоці Андрій Бауер визначив денотаційну семантику як:

значення програми - це функція значень її частин.

Що мене турбує у цьому визначенні - це, здається, не виокремлює те, що прийнято вважати денотаційною семантикою з того, що прийнято вважати неденотаційною семантикою, а саме структурною операційною семантикою .

Точніше, ключовим інгредієнтом тут є модульність або композиційність семантики, або, по-різному, факт, що вони визначаються відповідно до абстрактної структури програми.

Оскільки більшість (усіх?) Формальних семантик нині мають тенденцію бути структурними, чи це необхідне визначення?

Отже, моє запитання: Що таке денотаційна семантика?


4
Значення можна надати у багатьох формах: передпостові умови, робота абстрактної машини, математичної сутності, ігрова стратегія. У всіх сучасних підходах ці значення даються як функція значення частин.
Охад Каммар

1
Питання про існування ініціювало вивчення теорії доменів. Він випливав із денотаційного підходу, але не визначає його (наприклад, мова, про яку йде мова, може навіть не мати функціональних просторів). Щодо модульності, як я вже говорив вище, в основному кожен сучасний підхід до семантики має композиційність у відповідному сенсі. [DD]D
Охад Каммар

10
Гаразд, перестаньте розповсюджувати помилкову думку, що ініціювала або мотивувала теорію домену, оскільки це не було. Дана Скотт хотіла, щоб теорія домену була математичною теорією, придатною для набраного λ -калькуляції. Те, що воно також дало модель нетипізованого λ -рахунку, було випадковістю . Я знаю, він мені так сказав. [DD]=D λλ
Андрій Бауер

2
[DD]=DλD[DD]D

1
Не впевнений, що це допомагає, але те, як я бачу "поточну" денотаційну семантику роботи, - це "складання мови в якусь категорію" - дійсно, ви могли б написати семантику в термін відомих математичних об'єктів, не наполягаючи на структурі категорії, але це справедлива характеристика конкретних прикладів, з якими я стикався.
gasche

Відповіді:


30

Відмінність, яку я особисто роблю між денотаційною та оперативною семантикою, є приблизно таким:

  • денотаційна семантика - математична та рівняльна. Деталі скорочення мають значення менше, ніж кінцевий результат, який є позачасовим значенням у деякому математичному просторі.
  • оперативна семантика є алгоритмічною. Він розгортається окремими кроками в часі. Процес є частиною сенсу, і кінцевий результат є лише визначним кроком у цьому процесі.

Різниця іноді може бути досить тонкою, і важко сказати, чи це лише різниця в стилі чи по суті.

Однак ми можемо побачити, як композиційне визначення Андрія більш природним чином випливає з денотаційного визначення, і ми також можемо легко уявити неконфліктуючу некомпозиційну семантику, яка все ще відповідає оперативному визначенню.


Хорошим прикладом алгоритмічної та математичної різниці є лікування непідключення. Позначення циклу знизу, але через проблему зупинки неможливо визначити, чи є позначення довільної програми знизу. У семантиці з невеликим ступенем натомість можна спостерігати етапи зменшення, але теорія не має "нижнього" значення. Нерозбірливість та нетермінація переходять до метатеорії: не можна визначити, чи припиняється послідовність скорочення. Так само в семантиці великих ступенів не можна визначити, чи є деривація.
Blaisorblade

23

Якби я здогадувався, що скаже Дана Скотт, він, напевно, сказав би, що денотаційна семантика є композиційною (як те, що я стверджував) і що значення програми повинно бути справжнім математичним об'єктом, а не якоюсь синтаксичною чи формалістичною сутністю. Звичайно, такий погляд потребує розмежування формальної маніпуляції синтаксисом та "справжньої" математики. Це обов'язково нематематичне відмінність.

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

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


3
Час від часу мені кажуть, що системи переходу не такі математичні, як домени чи ґрати або порядки. Я вважаю цей погляд дивним. Все можна висловити в теорії множин ZFC.
Мартін Бергер

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

3
@Marc: Я згоден з вами, що оперативні методи не моделюють обчислення як функції. Але я не бачу, чому це робить теоретико-порядкові підходи «більш математичними». Математика під впливом фізики, як диференціальні рівняння, моделює оцінки певних систем у часі. Сам підхід введення-виведення використовує рудиментарну часову структуру, а саме, що вихід не доступний до введення.
Мартін Бергер

2
@Martin: Математики часто скаржаться, що те, що роблять фізики, теж не є реальною математикою. ;-) Фізика - це лише більш комфортно встановлена ​​наука в цей час. TCS все ще відносно новий хлопець у блоці. Я думаю, що ТКС не повинен турбуватися про те, щоб зробити людей щасливою для різних дисциплін (як би нам це не подобалося); у нас є власне моджо на ходу (як і фізики).
Марк Хаманн

2
@Marc: Довільне сміття може бути виражене в ZFC, тому це не дуже великий критерій, на який слід покладатися. Семантика, в якій "функції" в мові програмування інтерпретуються як функції в математичному сенсі, має щонайменше дві переваги. По-перше, він добре поєднується з тим, як люди думають про функції в мові програмування. По-друге, функції - це звичні математичні об'єкти, тому існує маса механізмів, якими можна користуватися. Зрозуміло, перехідні системи теж використовують.
Андрій Бауер

19

Я погоджуюсь, що ототожнення денотаційної семантики А. Бауера з композиційністю (у « Книгах про семантику мови програмування» ) насправді не характеризує добре те, що традиційно мається на увазі під денотаційною семантикою, оскільки чітко діюча семантика та програмна логіка (аксіоматична семантика) є композиційними .

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

  1. Раніше було важко міркувати про оперативну семантику.

  2. Раніше було складно надати аксіомантичну семантику нетривіальним мовам.

π

Отже, підводячи підсумок, я стверджую, що термін "денотаційна семантика" став менш точним і, отже, менш корисним. Семантичній спільноті може бути корисно сходити до кращої термінології.


1
Щоб скласти резюме моєї останньої публікації, "денотаційна семантика" повинна сказати, "сенс цього позначення полягає в тому". "Операційна" семантика та "аксіоматична" семантика не є семантичними визначеннями такого роду. Вводити в оману змусити їх виглядати так. Зауважимо також, що те, що називається "оперативним підходом", - це підхід до міркувань щодо програм. Це не оперативна семантика. Операційний підхід і аксіоматичний підхід можуть замінити інженерні програми денотаційної семантики. Але вони не стають денотаційною семантикою.
Удай Редді,

LπL

1
@Martin. Чому привласнення процесів композиційним способом не є денотаційним. Можливо, якщо ви переконаєте всіх нас, що процеси - це фундаментальна теорія, подібно до теорії множин, і не слід просити її семантики. Я співчуваю думці, що може існувати основоположна мова, яка моделює великі обчислення. Можливо, обчислення певної форми в якийсь день буде прийнято як такий фундамент якогось дня. Але я не думаю, що ми ще там.
Удай Редді,

1
@MartinBerger Це єдиний, про який я коли-небудь дізнався, але мені важко дати хороший довідник відразу. Наприклад, "Нарешті беззмістовий, частково оцінений" ( citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.99.9287 ) використовує в вступі "складний", "композиційний" та "примітивний рекурсивний" як очевидні синоніми (але це не дуже обговорюється в роботі, це сприймається як належне). Віверверса, здається, що це питання дискусії у філософії, якщо вірити Вікіпедії тут: en.wikipedia.org/wiki/Principle_of_compositionality#Critiques
Blaisorblade

1
@Blaisorblade Коли я був докторантом, я спілкувався з денотаційними семантиками, тому що я мав працювати над денотаційною семантикою. Я завжди питав їх, що таке денотаційна семантика, якщо вони можуть дати мені абстрактне визначення, але я отримав лише ухильні чи розпливчасті відповіді на кшталт "денотаційна семантика - це математична семантика", див. Також пояснення А. Бауера. Я не думаю, що концепція є чітко визначеною. Я також не бачу, чому вимагає, наприклад, примітивна рекурсивність досить обмежує, тому що сила примітивної рекурсії залежить від того, що ще є в наявності: (продовження)
Мартін Бергер,

16

Я задоволений відповіддю Адрея, але мені хотілося б детальніше зупинитися.

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

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

Однак, будь-яке композиційне визначення має різні технічні переваги. Ми можемо використовувати його для перевірки еквівалентностей чи інших властивостей шляхом індукції на синтаксис доданків. Ми можемо використовувати його для перевірки надійності систем перевірки, знову ж таки, шляхом індукції на синтаксис термінів. Ми можемо перевірити правильність компіляторів або методів аналізу програм (які за своєю природою визначаються індукцією на синтаксис). Повністю абстрактне семантичне визначення має ще більше технічних переваг. Ви можете використовувати його, щоб показати, що дві програми не рівнозначні, чого ви не можете зробити з будь-якою довільною композиційною семантикою. Повністю визначене семантичне визначення ще краще. Тут семантичні домени мають саме те, що можна висловити мовою програмування (з деякими умовами). Таким чином, ви можете перерахувати значення у доменах, щоб побачити, які існують значення, що було б важко зробити із синтаксичними позначеннями. За всіма цими ознаками семантика ігор виглядає блискуче.

Однак композиційні смислові визначення з часом втрачають свою перевагу. Робін Мілнер та Енді Піттс розробили ряд методів " оперативного міркування ", які працюють виключно на синтаксисі, але використовують оперативну семантику, де це потрібно для розмови про поведінку. Ці методи оперативного міркування є низькотехнологічними. Немає фантазійної математики. Немає нескінченних предметів. Ми можемо навчити їх магістрантам і будь-хто може ними користуватися. Отже, багато хто задається питанням, навіщо нам взагалі потрібна денотаційна семантика. (Мартін Бергер, мабуть, у цьому таборі.)

Особисто у мене немає проблем із тим, що у моїй скриньці інструментів є багато інструментів. Денотаційні методи можуть бути кращими для деяких проблем, а оперативні - для інших. Дослідники, які розробляють теорію, можуть бути краще налаштовані на той чи інший підхід. Досить часто ми можемо розвинути уявлення в одному підході і передати ці ідеї іншому. (Багато робіт Енді Піттса такого роду. Реляційна параметричність була розроблена в денотаційній обстановці, але він здатний зрозуміти, як відновити це як оперативне міркування. Коли я дивлюся на це, я кажу: "вау, я б ніколи не був Думав, що це буде можливим. "Логіка розділення також йде цим шляхом. Стів Брукс дав 60-сторінковий доказ надійності для одночасної логіки поділу, використовуючи денотаційну семантику.

Операційні підходи також отримують блискучий результат, коли мови програмування стають дуже фантазійними, з усіма типами петельних типів вищого порядку. Ми можемо не мати поняття, як математично моделювати такі речі. Або стандартні математичні моделі можуть виявитись непослідовними під напругою розгубленості. (Наприклад, див. Рейнольдс "Поліморфізм не є теоретично заданим".) Оперативні підходи, які працюють виключно над синтаксисом, можуть акуратно переступити до всіх цих математичних проблем.

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

Отже, нехай буде якась здорова конкуренція між денотаційним, операційним та реалізаційним підходами. Шкоди немає.

З іншого боку, між різними підходами може виникнути і «нездорова» конкуренція. Люди, що працюють з одним підходом, можуть бути настільки тісно пов'язані з ним, що вони можуть не бачити сенсу інших підходів. В ідеалі всі ми повинні усвідомлювати сильні та слабкі сторони різних підходів і розвивати наукове ставлення до них, навіть якщо вони не є нашими індивідуальними фаворитами.


Одним із конструктивних підходів до вирішення цієї проблеми може бути пошук перекладів між різними підходами.
Мартін Бергер

1
Зауважте, що у мене немає проблем із звичайною денотаційною семантикою як інструментом у вікні інструментів. Я просто знаходжу неявні чи явні припущення про те, що їм якось краще бути проблематичними та бракує цілісного обґрунтування.
Мартін Бергер

Я б розмістив томи "Мови, що нагадують альголь" ( eecs.qmul.ac.uk/~ohearn/Algol/algol.html ), томи, відредаговані Пітером О'Гарном та Боб Теннентом, як модель передової практики. Вони включають документи про "звичайну денотаційну семантику" (Strachey, Reynolds, Tennent, Meyer et al.), А також "нетрадиційну" денотаційну семантику (моя, Абрамський і МакКускер, Брукс) та оперативні підходи (Andy Pitts, Felleisen). До речі, дві статті Рейнольдса в томах (специфікація логіки та синтаксичний контроль інтерференції) були "аксіоматичними", коли вони були написані!
Удай Редді,

1
Щодо здорової конкуренції, однією з ключових проблем є те, що існує так багато підходів, формалізмів, дослідників та робіт, що важко не відставати від розвитку. Можливо, варто, щоб ми як дослідницька спільнота доклали постійних зусиль для синтезу та уніфікації існуючих підходів.
Мартін Бергер

2
@MartinBerger, відправною точкою, про яку я знаю, є праця Патріка Кусота "Конструктивне проектування ієрархії семантики", яка показує, що дуже широкий спектр семантичних моделей, включаючи перехідні системи, аксіоматичну семантику, денотаційні моделі, можна пов'язати за допомогою доповнень, звідси розглядається як різні абстракції.
Vijay D

12

[Ще одна відповідь. Мабуть, нехолодно зібрати кілька відповідей. Але, ей, це глибоке питання.]

Я сказав, що погоджуюся з відповіддю Андрія, але, здається, я не повністю згоден. Є різниця.

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

Наприклад, з моєї точки зору було б цілком чудово, щоб значення позначень були фізичними процесами. Після того, як усі комп'ютерні програми гальмують у вашій машині, літають літаки, кидають бомби та що ні. Це фізичні процеси, а не елементи в якомусь математичному просторі. Ви не можете скинути бомбу, побачити, чи вбиває вона когось, і віднесіть її назад, якщо вона не відбудеться. Комп'ютерні програми не можуть цього зробити. Але математичні функції можуть. (Вони називаються операціями "оснащення".) Отже, зовсім не ясно, що математичні функції внесуть хороші значення для комп'ютерних програм.

З іншого боку, ми ще не знаємо, як абстрактно говорити про фізичні процеси. Отже, ми можемо використати математичний опис процесів, щоб сформулювати наші ідеї. Але ці математичні описи були б саме такими, «описами». Вони не є значеннями. Справжніми значеннями були б лише фізичні процеси, які ми уявляємо концептуально.

У своїй промові про прийняття нагороди SIGPLAN (яка має бути представлена ​​на youtube якось найближчим часом) Хоар сказав, що АКТ використовує "алгебраїчний підхід", CSP використовує "денотаційний підхід", а CCS використовує "операційний підхід" для опису процесів. Ми з Охадом сиділи разом на сесії, ми переглянули один одного і сказали "що справді цікаво". Отже, тут є багато концептуального простору, який вивчається. Я думаю, що багато пізніших робіт Скотта, щодо систем сусідства та інформаційних систем тощо, справді були зусиллями пояснити функції як "процеси" певної форми. Герардія взаємодії Жирара та пізніша семантика ігор також є зусиллями для пояснення функцій як процесів. Я б сказав, що розробка міцної теорії процесів може стати великим внеском, який комп'ютерні науки могли внести в математику 21 століття. Я б не погодився з думкою, що математика має всі відповіді, і ми повинні намагатися звести обчислювальні явища до математичних понять, щоб зрозуміти їх.

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


10

[Сподіваюся, це моя остання відповідь на це питання!]

Первісне питання Охада було про те, чим денотаційна семантика відрізняється від структурної оперативної семантики. Він подумав, що вони обоє композиційні. Власне, це неправда. Структурна операційна семантика задається як послідовності кроків. Кожен крок виражається композиційно (і примітно Плоткіну зробити відкриття, що це можливо!), Але вся поведінка не визначена композиційно. Ось що говорить Плоткін у своєму вступі до статті SOS [наголос додано]:

У денотаційній семантиці випливає ідеал композиційності, де значення складної фрази задається як функція значення її частин. Що стосується оперативної семантики, то розглядається поведінка програмної фрази, яка є лише сукупністю переходів, які вона може здійснити. Однак ця поведінка не є композиційною, якщо розглядати її як функцію програмних фраз. Однак правила дають це структурно, тобто примітивно, рекурсивно, у синтаксисі; ...

Те, що кожен крок виражається композиційно, не означає, що вся поведінка виражається композиційно.

Є приємна стаття Карла Гантера під назвою Форми семантичної специфікації , де різні методи конкретизації семантики порівнюються та протиставляються. Значна частина цього матеріалу також відтворена в першій главі його тексту "Семантика мов програмування". Це, сподіваємось, прояснить картину.

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

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

Математична модель містить різні поняття, які, хоч і детонаційні за стилем, є оперативними за духом [наголос додано]. Сюди входить особливість «історії» поняття самого процесу та використання так званих безшумних рухів у роботі із синхронізацією та рекурсією.

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

Незважаючи на все це, оперативне поняття процесу все ще сильно відрізняється від денотаційного поняття процесу, останнє з якого було розроблено і де Баккером, і Хоаром, і їх командами. І, я думаю, існує багато загадкового та прекрасного щодо концепції денотаційного процесу, яку ще потрібно зрозуміти.


Вибачте, що не відповіли на запит чату. Я дуже зайнятий наступні два тижні. Дякуємо, що написали це! Це перша технічна відповідь на сторінці, яку я розумію.
Vijay D

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

9

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

Спочатку була семантична модель, сформульована Скоттом та Страчі. (Cf. Gordon: Денотаційний опис мов програмування - мій улюблений за весь час або книга Вінскеля.) Ця модель говорить про те, що існує глобальна держава , що складається з штату всіх місць, виділених програмою. Кожна команда трактується як якась функція від глобальних до глобальних держав.

Рейнольдс сказав, що він не моделює дисципліну стека локальних змінних. Коли вводиться локальний діапазон, його змінні виділяються, і вони розміщуються, коли область виходу виходить. В основному, це питання, "в якому сенсі локальні змінні локальні?" Як семантика захоплює місцевість? Щоб пояснити це, він винайшов модель категорії функторів. (Пор. Рейнольдс: Сутність Алгола та Теннента: семантика мов програмування).

Теннент хотів моделювати принципи міркування, сформульовані в Логіці специфікації Рейнольдса (розширення Логіки Хоара для процедур вищого порядку). Логіка має такі ідеї як обчислення, подібні до вираження (лише для читання), невтручання між обчисленнями, подібними до команд та виразів, та деякі принципи обґрунтування абстракції даних. Він вдосконалив модель категорії функціонерів Рейнольдса, щоб знайти нову. Це називається моделлю "SASL", яка також висвітлена в книзі Теннента.

Мейєр і Зібер, а також О'Герн і Теннент зазначили, що жодна з цих моделей все ще не повністю захоплює локальність локальних змінних. Коли дві реалізації абстрактного типу даних або класу відрізняються за своїми локальними змінними, але маніпулюють ними способами, які мають однакову поведінку при погляді ззовні, вони спостережно еквівалентні. Денотаційна семантика повинна їх прирівнювати. Щоб моделювати це, О'Харн та Теннент додали реляційну параметричність до варіанту моделі категорії Рейндольда з функцією функторів.

Коли я одночасно розглядав проблему, я не вірив у підхід до категорії функторів. Я також вважав, що це надмірно технічно, і вважав, що повинна бути простіша модель. Це призвело до того, що я винайшов модель "Глобальна держава, яка вважається непотрібною", що більше нагадує модель слідів CSP, але для мови вищого порядку. Як додатковий бонус, ця модель також фіксувала незворотність змін у державі, яких не було в попередніх моделях.

Моя модель працювала лише на чудовому мові Algol, який називався синтаксичним керуванням інтерференцією . Абрамський та МакКускер розширили мою модель, використовуючи ідеї семантики ігор, щоб вона могла працювати на повний Algol. Отже, їх модель пояснює ті самі явища, що і моя, але для більшої мови.

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

[Усі роботи, про які я згадав тут, можна знайти в томах "Мови, схожі на алголь": посилання та посилання ]

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