Какова связь между Calculus и синтаксисами программирования? - PullRequest
1 голос
/ 30 августа 2010

Я начинаю исчисление в этом семестре. Я раньше использовал языки программирования (или сценариев), в основном PHP и C #. Я не сделал много работы на низком уровне. Единственные отношения, которые я установил между синтаксисами, - это анонимные функции с Y-Combinators и массивы с Set-нотацией (я даже не уверен, что они правильные).

Я всегда вижу сходство между исчислением и программированием - это почти как нумерология - так как соотносятся исчисление и языки программирования?

Подсознательно я знаю, что есть отношения, но я не думаю, что знаю правильную терминологию для ее описания. Некоторые люди отсылают меня к «вычислительной теории» и «машинам Тьюринга», но я пока не очень разбираюсь в этом. Могу ли я считать себя программистом, если не до конца понимаю теорию вычислений?

Ответы [ 2 ]

10 голосов
/ 30 августа 2010

«Исчисление» - это значение слова в контексте математики:

Любая формальная система, в которой символическая выражения выражаются в соответствии по фиксированным правилам.

Так что не вызывает сомнений, что два понятия так или иначе связаны только потому, что оба их названия содержат слово "исчисление".

Лямбда-исчисление - это формализм для моделирования расчетов, доказуемо эквивалентный машине Тьюринга . Целью как машин Тьюринга, так и лямбда-исчисления (которые были разработаны независимо примерно в одно и то же время) является создание формальной системы, в которой утверждения о вычислениях могут быть строго доказаны. Это фундаментальная основа теоретической информатики. Это относится к языкам программирования из-за тезиса Черча-Тьюринга , в котором, по сути, говорится, что любой язык программирования, способный эмулировать машину Тьюринга, способен вычислять все, что возможно вычислить. Язык, удовлетворяющий этому свойству, называется Turing-complete . Почти все современные языки программирования общего назначения обладают этим свойством.

Дифференциальное / интегральное исчисление , тот тип, который вы выучили в старшей школе, не имеет ничего общего с лямбда-исчислением, кроме слова "исчисление". Это не имеет ничего общего с программированием ... если вы не пишете программу для вычисления интегралов или производных.

Логика первого порядка (тип исчисления предикатов ) имеет некоторую актуальность в области искусственного интеллекта и автоматического доказательства теорем, но опять-таки это просто использование компьютеров для решения математических задач и не имеет связь с базовой теорией вычислений или с дизайном языков программирования.

2 голосов
/ 31 августа 2010

Нумерология - это нечто совершенно иное, но здесь дело не в этом!

Прошло немного времени с тех пор, как я взял исчисление, но, тем не менее, это математика. Он имеет множество применений в физике и машиностроении.

Исчисление и программирование в некоторой степени связаны, например, ваше упоминание о вычислительной теории, которая также является подмножеством математики, но, строго говоря, это вовсе не программирование.

Наконец, вы можете использовать языки программирования и программное обеспечение для решения вычислительных уравнений, но вам это не нужно. Исчисление существует намного дольше, чем компьютеры!

...