Теория вычислений

Парадигмы программирования 90-х гг. в сильной степени выросли из математического способа рассуждений, принятого в теории вычислений. В частности, одной из ее начальных посылок была концепция ‘протекания информации’ вдоль некоторого ‘возможного’ русла, что привело к возникновению весьма плодотворной концепции программы, управляемой потоком данных. Другой пример связан с идеей использования некоторой части комбинаторной логики, построив в ней специальные объекты-инструкции. Эти объекты образуют систему команд категориальной абстрактной машины, которая может быть с успехом положена в основу вполне практи- ческих (но объектно-ориентированных) систем программирования (см. [3]). Более того, правила комбинаторной логики позволяют оптимизировать компилируемый программный код, редуцируя его к некоторой нормальной форме. Для специалистов в комбинаторной логике это почти само собой разумеется с самого начала, поскольку в этом состояла одна из целей разработки комбинаторной логики как математической дисциплины.

Современные исследования в области computer science показывают, что комбинаторная логика и ее различные категориальные диалекты становятся необходимым математическим языком программиста, пользуясь которым он обменивается идеями со своими коллегами. Дело как раз в том, что одним из предметов ее исследования являются объекты и построение различных исчислений объектов, которые удовлетворяют кругу вопросов каждой конкретной прикладной задачи. Другими словами, решение всякой задачи требует построения специального точного языка. Как хорошо известно программистам, это язык интерфейса программного обеспечения. В терминах специалиста в computer science это специализированный диалект комбинаторной логики.