Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1295199597
12
2011-01-16 20:39
2011.05.01
Объединенная Земля, будет ли и когда, если да?


2-1296210428
lemparius
2011-01-28 13:27
2011.05.01
Еще одна задача на PageControl


2-1295729324
dik59
2011-01-22 23:48
2011.05.01
Новая серия в TChart


15-1295242070
KSergey
2011-01-17 08:27
2011.05.01
Проиграть звуковой файл при наличии сигнала с микрофона


2-1295623636
Сергей
2011-01-21 18:27
2011.05.01
Как остановить таймер в его событии ontimer?