Есть ли предел высокоуровневости языка?
От: 0x7be СССР  
Дата: 14.01.11 19:15
Оценка:
Коллеги!
Как вы думаете — есть ли некий теоретический предел повышения уровня языка, при условии, что он остается языком общего назначения, то есть в него не вводятся модели, специфичные для предметных областей? Что бы сузить поле для обсуждения вопросами производительности я сейчас хочу пренебречь. Речь идет только о выразительных возможностях языка.

У меня пока своего аргументированного мнения нет, но есть некоторые соображения. Программист в программе должен сообщить полное и непротиворечивое решение, причем не все что он сообщает можно трактовать как, собственно, решение предметной проблемы.

Часть программы неизбежно занимается системными функциями — "борьбой с машиной". Это может быть управление ресурсами, синхронизация, борьба с API и так далее. Это так называемая "accidential complexity", причем связанная с конкретной реализацией того, на чем мы работаем (машина, платформа). Собственно, эти вещи в первую очередь и абстрагируются и достаточно успешно. Мы забываем про указатели и адресную арифметику, сборщик мусора за нас чистит память, операционная система подсовывает новые страницы по запросу и т.п. Ладно, предположим, что мы доабстрагировались до идеальной машины — процессор супербыстрый (бесконечный цикл за 5 секунд выполняет ), памяти неограниченное количество, ввод-вывод телепатический и т.п. Собственно, на "игрушечных" задачах современные компьютеры уже неплохо аппроксимируют такой идеальный комп.

Следующее направление повышения уровня абстракции меня интересует больше — это применение новых парадигм и моделей вычисления. Даже идеальный комп — это императивная машина, в которой мы вынуждены думать в терминах времени и состояния, даже там, где это нам не нужно. Это тоже "accidential complexity" но вызванная уже не реализацией, а концептуальной моделью, которая определяет то, в каких терминах мы думаем о задаче. Тут нам на помощь спешат другие парадигмы — функциональная, логическая, программирование на ограничениях и т.п. Вот тут, собственно, я и упираюсь в своих размышлениях. Есть ли некий предел, за которым нельзя упростить запись решения, не использовав предметно-ориентированную модель?

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

Несколько сумбурно вышло, но, надеюсь, суть донес.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.