Мониторинг обменных курсов валют
18c0693f

Аннотация


В нашем с Хью Дарвеном Третьем Манифесте (для краткости, просто «Манифесте») устанавливается набор предписаний и запретов, которые касаются разработки языка программирования баз данных, называемого D (см. [9]). В частности, одно из предписаний – «ОО-предписание 3» – звучит следующим образом:

D должен быть вычислительно полным. Это значит, что в D может поддерживаться механизм вызовов из так называемых основных (host) программ, написанных на языках, отличных от D (но эта поддержка не является обязательной). Аналогично, в D может поддерживаться использование других языков для реализации операций, определяемых пользователями (но эта поддержка не является обязательной).

Однако в [1] утверждается, что из этого предписания следует серьезная ущербность Манифеста. В этом источнике говорится следующее:

Придание вычислительной полноты языку Tutorial D является ошибочным решением, поскольку это приводит к созданию языка, логические выражения которого могут быть неразрешимыми, – хотя для любого логического выражения должен существовать алгоритм, позволяющий его вычислить.

Замечание: В этой цитате упоминается Tutorial D, а не D как таковой, и поэтому я должен пояснить, как соотносятся Tutorial D и D. Начнем с того, что имя D является родовым – оно используется в [9] для обозначения любого языка, соответствующего принципам, заложенным в Третьем Манифесте. Таким образом, может иметься любое число различных языков, квалифицируемых как допустимый D. Подразумевается, что Tutorial D является одним из таких языков; он более или менее формально определяется в [9] и используется во всей этой книге (и в других публикациях) как основа примеров. В настоящей статье для определенности я сосредотачиваюсь (большей частью) на Tutorial D (как и автор [1]), но обсуждение и используемые аргументы применимы к любому допустимому D.