Вот есть некий полноценный Тьюринг-полный ЯП. На нем можно реализовать любой из возможных алгоритмов.
Однако же в этом языке нет возможности доступа к API операционной системы ни в каком виде. Т.е. вообще никак.
В память записать можно, действия с данными выполнить можно. А вот как-то сообщить пользователю нет — т.к. нет доступа ни к клаве, ни к экрану, ни к динамику, ни к файлам — вообще ни к чему.
Вроде язык тьюринг- полный — но бесполезный.
Возьмем JavaScript, для примера, который исполняется в песочнице браузера. Мы не можем прочесть произвольный файл на диске — но у нас есть возможность манипулировать HTML-разметкой окна браузера, доступ к хранилищу браузера, возможность делать сетевые запросы.
С т.з. языка — это просто некие внешние функции. Просто функции. И они вообще никак ни на что не влияют с точки зрения вычислимости.
Однако же без этих магических функций польза языка становится равной нулю.
Так вот. В языке обязательно должна быть поддержка этих внешних функций, иначе его польза будет равной нулю — хотя там все будет с алгоритмической т.з. — сделать на нем ничего нельзя будет.
В тех или иных платформах/языках данные функции могут быть реализованы лишь частично.
Как это называется? Как называются возможности языка с т.з. реализации доступа к системе?