Утверждение НЕ состоит в том, что теоремы плоской геометрии могут быть доказаны с использованием примитивов Лиспа. Думать так - значит упустить аналогию. Я переписал предложение, чтобы, надеюсь, люди не думали так. Правильная аналогия не нова; Статья Грэма начинается с наблюдения, что Маккарти «сделал для программирования нечто подобное тому, что Евклид сделал для геометрии».
Системы математических рассуждений были в голове у Маккарти, когда он разрабатывал Лисп. В своей ретроспективе 1979 года по истории Лиспа он отмечает, что «теперь легче доказать, что программы на чистом Лиспе соответствуют своим спецификациям, чем для любого другого широко используемого языка программирования». И это потому, что примитивы Lisp обладают ссылочной прозрачностью, свойством, которое они разделяют с математической нотацией. Любая программа, которая может быть реализована с помощью примитивов, разделяет это свойство. Математическая аккуратность приносит свои плоды, когда вам нужно рассуждать о своей программе.
Концепция «доказательство - это программа» уточняется соответствием Карри-Ховарда.
Использованная литература:
Маккарти о «математической аккуратности»
Переписка Карри-Ховарда (википедия)
Корни Лиспа, Пол Грэм
Ссылочная прозрачность (википедия)
person
hpglot
schedule
12.07.2010