Чи можемо ми виділити строго синтаксичні та семантичні методи в мові програмування?


14

Під час обговорення сильних доказів нормалізації, цей коментар протиставляє "модель нормальних форм" з "суто синтаксичними методами".

Це повертає мене до більш основного питання: чи можемо ми все-таки чітко розрізнити синтаксичні та семантичні конструкції, перед обличчям синтаксичних моделей? Що з терміновими моделями для алгебр, моделями Хенкіна для логіки першого порядку? А як щодо структурної оперативної семантики? Оскільки термінові моделі можуть бути ізоморфними для синтаксису, важко зробити чітке розмежування.

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

Відповіді:


14

Ні, ви не можете чітко відрізнити синтаксичні від семантичних методів, але відмінність все-таки має сенс.

  • Структурна оперативна семантика не є денотаційною, оскільки це не композиційний метод надання семантики мові програмування.

  • Однак ви можете побудувати денотаційні моделі з структурної оперативної семантики, використовуючи метод реалізабельності або логічних відносин. Як приклад, див. Конструктивні системи Роберта Харпера над оперативною семантикою .

  • λ

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

    Наприклад, ігрова семантика почала своє життя як суто семантична побудова, і врешті-решт привела до роботи над оперативною семантикою ігор - останнім прикладом цього є «Алембіс Гоєт» Оцінка лямбда-бар-лямкда: Але подвійне обчислення для необмежених стратегій .

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

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

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


Вау, дякую за швидку та ретельну відповідь!
Blaisorblade

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