По-перше, я хотів би сказати, що мій текст нижче може містити помилки, тому сміливо вказуйте на будь-які помилки в моїй постановці питання.
Розглянемо нетипічне обчислення лямбда з булевими та if-висловлюваннями, терміни яких задані цим синтаксисом:
t ::= v | t t | if t t t | x
v ::= \x.t | #t | #f
Контексти C у цьому випадку будуть задані відповідно до цього синтаксису:
C ::= [-] | \x. C | C t | t C | if C t t | if t C t | if t t C
Крім того, можна визначити контексти оцінювання E відповідно до цього іншого синтаксису:
E ::= [-] | \x. E | v E | E t | if E t t
Я розділив своє питання на три підпункти, які я хотів би вирішити.
- Коли використовуються два поняття? Я знаю, наприклад, що контексти оцінювання використовуються для визначення семантики числення, але використання контекстів все ще дещо ухиляється від мене. Також я хотів би підтвердити свої знання тут.
- Коли одне віддати перевагу іншому і чому?
- Не могли б ви вказати на відповідні статті, які могли б допомогти мені розібратися в цьому питанні?