У семантиці мови програмування часто чують, що люди говорять про значення та позначення . Вони, здається, не однакові. Яка різниця? Чи пов’язаний перший з оперативною семантикою, а другий - з денотаційною семантикою? Дякую.
У семантиці мови програмування часто чують, що люди говорять про значення та позначення . Вони, здається, не однакові. Яка різниця? Чи пов’язаний перший з оперативною семантикою, а другий - з денотаційною семантикою? Дякую.
Відповіді:
"Значення" вживається ширше, ніж денотація.
Первісна дихотомія, успадкована від логіки та філософії, знаходиться між "сенсом" і "денотацією" (яке філософи називають "посиланням").
Цю відмінність можна проілюструвати оригінальним прикладом Фреге. Він зазначив, що словосполучення "ранкова зірка" і "вечірня зірка" стосуються одного і того ж об'єкта --- планети Венера --- але що речення "ранкова зірка і вечірня зірка - одна і та ж планета" насправді передає певну інформацію до читача. Він припустив, що значення словосполучення іменника може виходити за межі фактичного об'єкта, який він позначає, включаючи щось про те, як він представляє предмет, який він позначає.
Створюючи денотаційну семантику, ми намагаємося побудувати модель мови, в якій нерозрізні програми позначають --- посилаються на --- той самий математичний об'єкт. Мета полягає в спрощенні міркувань про поведінку програм, оскільки ми можемо міркувати про позначення, математичні об'єкти, не турбуючись про деталі представлення програми. Це дозволяє нам не стикатися з аспектами значення програм, які не цікавлять нас.
Те, як сенс і позначення стосуються оперативної семантики, є більш складним і різним. Я можу продовжити свою відповідь пізніше, щоб висвітлити це, але мені зараз бігти. :)
EDIT: Гаразд, зараз продовжую цю відповідь.
Зв'язок між "денотацією" та "посиланням" досить точний, і це точно, тому що люди, які винайшли денотаційну семантику (наприклад, Скотт та Стрійчі), цілком свідомо привласнювали ідеї з філософської логіки як частину свого проекту.
Щоб зрозуміти, як співвідношення смислу та оперативної семантики, корисно згадати поняття філософа Майкла Даммета про "теорію значень" та наскільки вона відрізняється від "семантичної теорії".
У термінології Даммета семантична теорія - це композиційний спосіб співвідношення речень для визначення математичних об'єктів. У логіці сенс речення - це його істинність, і воно визначається з істинних значень його складових. Денотаційна семантика мов програмування використовує набагато більшу різноманітність математичних об'єктів, але це працює так само - ми надаємо значення програмного терміна з точки зору значення його підтермін. Так у термінології Даммета денотаційна семантика пропонує семантичні теорії мов програмування.
Сенс-теорія також композиційний спосіб співвіднесення пропозиції до математичних об'єктів, але крім того , вона містить виклад того , що виправдовує співвідношення між пропозицією і математичним об'єктом. Він розробив цю ідею для того, щоб зрозуміти, як інтуїтивні математики зрозуміли поняття істини. Зокрема, вони мали композиційний виклад значення логічних сполучників, але не давали їм смислових значень так само, як це роблять класичні логіки. Наприклад, в інтуїтивістській логіці в рахунку Брууера-Гейтінга-Колмогорова істина визначається наступним чином:
Тепер зауважимо, що це визначення пов'язує судження і значення істини, але зв'язок повинен бути виправданий можливістю надання канонічних доказів.
Оперативна семантика входить у картину через це поняття обґрунтування. Оперативна семантика - це лише опис того, що робить абстрактна машина. Після того, як ми дамо денотаційну семантику, ми, як правило, хочемо показати, що денотаційна семантика є вірною оперативній семантиці. Ця властивість називається адекватністю (разом з її великим братом, повна абстракція ), і це точно означає надання теорії значень, яка з'єднує абстрактні стани машини з денотаційними об'єктами, яка закривається при зменшенні абстрактної машини.
Це насправді не вся історія, тому що я виклав тут, як з'єднати операційний та денотаційний підходи за допомогою моделі реалізації. Теорії типів також можуть мати доказово-теоретичну семантику (дійсно, ця перспектива була тим, що найбільше зацікавила Даммета), але я не пояснив цього зв'язку в цій посаді.