Текущий архив: 2011.05.01;
Скачать: CL | DM;
Вниз
Есть ли предел высокоуровневости языка? Найти похожие ветки
← →
Alkid © (2011-01-14 22:19) [0]Коллеги!
Как вы думаете — есть ли некий теоретический предел повышения уровня языка, при условии, что он остается языком общего назначения, то есть в него не вводятся модели, специфичные для предметных областей? Что бы сузить поле для обсуждения вопросами производительности я сейчас хочу пренебречь. Речь идет только о выразительных возможностях языка.
У меня пока своего аргументированного мнения нет, но есть некоторые соображения. Программист в программе должен сообщить полное и непротиворечивое решение, причем не все что он сообщает можно трактовать как, собственно, решение предметной проблемы.
Часть программы неизбежно занимается системными функциями — "борьбой с машиной". Это может быть управление ресурсами, синхронизация, борьба с API и так далее. Это так называемая "accidential complexity", причем связанная с конкретной реализацией того, на чем мы работаем (машина, платформа). Собственно, эти вещи в первую очередь и абстрагируются и достаточно успешно. Мы забываем про указатели и адресную арифметику, сборщик мусора за нас чистит память, операционная система подсовывает новые страницы по запросу и т.п. Ладно, предположим, что мы доабстрагировались до идеальной машины — процессор супербыстрый (бесконечный цикл за 5 секунд выполняет ), памяти неограниченное количество, ввод-вывод телепатический и т.п. Собственно, на "игрушечных" задачах современные компьютеры уже неплохо аппроксимируют такой идеальный комп.
Следующее направление повышения уровня абстракции меня интересует больше — это применение новых парадигм и моделей вычисления. Даже идеальный комп — это императивная машина, в которой мы вынуждены думать в терминах времени и состояния, даже там, где это нам не нужно. Это тоже "accidential complexity" но вызванная уже не реализацией, а концептуальной моделью, которая определяет то, в каких терминах мы думаем о задаче. Тут нам на помощь спешат другие парадигмы — функциональная, логическая, программирование на ограничениях и т.п. Вот тут, собственно, я и упираюсь в своих размышлениях. Есть ли некий предел, за которым нельзя упростить запись решения, не использовав предметно-ориентированную модель?
Чисто интуитивно, мне думается, что предел есть, поскольку я не могу представить себе вразумительной реализации предельного случая, когда любая программа выражается одним словом Но это из разряда "чую бесовщину, а доказать не могу". И совершено непонятно, насколько мы далеки от этой границы.
Несколько сумбурно вышло, но, надеюсь, суть донес.
← →
Alx2 © (2011-01-14 22:23) [1]Гёдель (вроде) доказал, что любая формальная система неполна. Т.е. всегда есть место для роста, получается :)
← →
Alkid © (2011-01-14 22:27) [2]
> Alx2 © (14.01.11 22:23) [1]
> Гёдель (вроде) доказал, что любая формальная система неполна.
> Т.е. всегда есть место для роста, получается :)
Ну, теорема о неполноте Гёделя к этому вопросу отношения явно не имеет :)
← →
Alx2 © (2011-01-14 22:35) [3]>Alkid © (14.01.11 22:27) [2]
Почему? Чем тут не формальная система (с аксиоматикой и правилами вывода), которая в данном случае применяется для описания предметных областей?
← →
Leonid Troyanovsky © (2011-01-14 22:51) [4]
> Alx2 © (14.01.11 22:35) [3]
> Почему? Чем тут не формальная система (с аксиоматикой и
> правилами вывода)
С арифметикой, AFAIK.
--
Regards, LVT.
← →
KilkennyCat © (2011-01-14 22:58) [5]предела нет, если говорить о программировании в целом. в частности же, предел есть, он уже наступает. исчо немного и программы будут развиваться и писать сами себя. на долю человека останется же лишь частичный контроль и задание базового тз. Самостоятельно под существующие системы человек ничего не сможет, т.е. не будет владеть ситуацией полностью.
← →
Игорь Шевченко © (2011-01-14 23:00) [6]Вот этот товарищ тоже думал на аналогичные темы, только с другой стороны.
http://www.alib.ru/bs.php4?uid=17590efc319ef1b91d9b7e7a89d2896edbbe
← →
AlexDn © (2011-01-14 23:00) [7]> Alkid © (14.01.11 22:19)
конечно есть, и тут ms показателен, начинается монстролизация.
← →
AlexDn © (2011-01-14 23:02) [8]> Игорь Шевченко © (14.01.11 23:00) [6]
вот, хором!)
← →
Alx2 © (2011-01-14 23:02) [9]>Leonid Troyanovsky © (14.01.11 22:51) [4]
>С арифметикой, AFAIK.
Ну, я один шаг пропустил. Сути ведь не меняет. Как её следствие - любая формальная система.
← →
Alx2 © (2011-01-14 23:05) [10]Вдогонку Alx2 © (14.01.11 23:02) [9]
С арифметикой. Тут определить сложение с умножением и натуральные числа с нулем и единицей - можно. Но это я уже за соломинку цепляюсь :)
← →
Alkid © (2011-01-14 23:42) [11]
> Alx2 © (14.01.11 22:35) [3]
> Почему? Чем тут не формальная система (с аксиоматикой и
> правилами вывода), которая в данном случае применяется для
> описания предметных областей?
Потому что под неполнотой понимается наличие в формальной системе истинных утверждений, недоказуемых в рамках этой системы. Как применить эту теорему к программированию? Например, к языку Дельфи?
← →
Alkid © (2011-01-14 23:44) [12]
> AlexDn © (14.01.11 23:00) [7]
> > Alkid © (14.01.11 22:19)
> конечно есть, и тут ms показателен, начинается монстролизация.
Поясни, что ты имеешь в виду, плз :)
← →
AlexDn © (2011-01-15 00:06) [13]> Alkid © (14.01.11 23:44) [12]
обрастание системными функциями, модулями до безграничных размеров
← →
Alkid © (2011-01-15 00:17) [14]Проблема с теоремой о неполноте в том, что она сформулирована для математических формальных теорий, а не для языков программирования.
← →
Alkid © (2011-01-15 00:23) [15]
> AlexDn © (15.01.11 00:06) [13]
> обрастание системными функциями, модулями до безграничных
> размеров
Это вполне объясняется увеличением числа прикладных задач, решаемых при помощи языка. Новая область применения - новая библиотека, новое API.
← →
Styx (2011-01-15 13:35) [16]
> Проблема с теоремой о неполноте в том, что она сформулирована
> для математических формальных теорий, а не для языков программирования
Язык программирования вполне подходит под формальную систему. И в данном случае теорема Гёделя говорит о том, что нельзя создать такой язык, в котором любое желание программиста можно было бы сформулировать в одном операторе.
← →
oxffff © (2011-01-15 13:53) [17]Пределы мышления, абстракции устанавливает человек, ровно на столько на сколько позволяют его способности.
← →
TUser © (2011-01-15 16:17) [18]Любым языком человек будет пользоваться. Вероятно, выше некоторого уровня абстракции языки просто бесполезны.
← →
Anatoly Podgoretsky © (2011-01-15 17:08) [19]> TUser (15.01.2011 16:17:18) [18]
Наиболее эффективен язык при наклеивание марок.
← →
Дмитрий Белькевич (2011-01-16 20:34) [20]В начале было слово.
← →
Дмитрий Тимохов (2011-01-16 23:01) [21]Не осилил ничего кроме сабжевого заголовка (даже не поста), но могу ответить, что я думаю
Повышение уровня - это те же яйки, только сбоку.
Если кратко комментировать это мнение, то - сложность константна: где-то эта сложность тебя все равно накроет, поэтому уровень языка, по моему мнению, не уменьшает сложность (она же константна).
← →
xayam © (2011-01-16 23:34) [22]
> Alkid © [0]
А это какой этап по http://0x7be.livejournal.com/23331.html ?
Описание 5-го по ходу уже устарело :)
← →
Inovet © (2011-01-17 00:04) [23]> [22] xayam © (16.01.11 23:34)
А продолжение ДР как же? Вторая часть. См ветку с поздравлениями.:)
← →
xayam © (2011-01-17 01:11) [24]
> См ветку с поздравлениями
да уже посмотрел. Ты все время пишешь такое ? :)
← →
Inovet © (2011-01-17 01:56) [25]> [24] xayam © (17.01.11 01:11)
> Ты все время пишешь такое ? :)
Там отвечу.
Страницы: 1 вся ветка
Текущий архив: 2011.05.01;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.013 c