Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет superhuman ([info]superhuman)
@ 2010-05-12 11:55:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
В процедурной парадигме присутствует объект (данные) и императив, но отсутствует субъект. Успех ООП связан с привнесением в мир программирования субъекта ("объекты"). Кроме того, стирается грань между объектом и субъектом.

Императив персонифицируется. В крайнем проявлении (например, языки .NET) неперсонифицированное проявления императива исчезает (в "чисто объектном синтаксисе" нельзя выполнять действия, кроме как из метода какого-нибудь объекта).

"Были бы объекты разумными, в этих условиях они могли бы стать атеистами." Обладали бы они иллюзией свободы воли? Были бы споры, действительно ли случаен "псевдогенератор"?


(Добавить комментарий)

оххохонюшки
[info]dmitry_danner
2010-05-12 14:30 (ссылка)
А как насчет декларативных языков? Тут какие-то аналогии есть?

(Ответить) (Ветвь дискуссии)

Re: оххохонюшки
[info]phantom
2010-05-12 16:59 (ссылка)
Есть подозрение, что "декларатив" не так просто выразить в стандартных философских терминах (вспоминается изречение: итерация от человека, а рекурсия (или индукция) от бога).

В общем, я не знаю пока, что можно сказать по этому поводу, будем думать, размышлять. Пока только крутятся на уме ассоциации: декларация, повествование, Слово, математические формулы. :)

(Ответить) (Уровень выше)

Re: оххохонюшки
[info]phantom
2010-05-17 13:38 (ссылка)
А ты не надумал ещё чего-нибудь сделать со мной совместно? В области программирования, такое, что заняло бы немного моего времени. Например, несколько часов.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dmitry_danner
2010-05-17 17:57 (ссылка)
Спасибо :) Периодически вспоминаю об этом, но пока все сплошь гениальные прожекты, а практических идей никак не нарисуется.

PS чего можно почитать по технологии компиляции, не очень техничного, но предметного?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2010-05-17 18:05 (ссылка)
Не особо петрю в теме. Я бы начал с википедии. А потом посмотрел, что там в SICP (известный учебник по Схеме) по этому поводу сказано. Это потому, что я её начинал, но забросил. Хотя там, кажется, только по поводу интерпретатора говорилось.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dmitry_danner
2010-05-17 19:13 (ссылка)
По моим сильно старым сведениям, интерпретатор просто не доделывает компиляцию, а так все то же самое? Надо будет глянуть...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2010-05-17 19:38 (ссылка)
Честно говоря, не задумывался над этими вопросами. Но давай подумаем. Мне кажется, компилятор - это переводчик с одного языка на другой. Например, на машинный код или MSIL. Интерпретатор - это то же, но "на лету" - из-за необходимости возможности Eval. JIT - что-то среднее между ними.

(Ответить) (Уровень выше)


[info]phantom
2010-05-23 01:42 (ссылка)
Вот, глянь: http://mitpress.mit.edu/sicp/full-text/sicp/book/node75.html

(Ответить) (Уровень выше)


[info]phantom
2010-05-17 18:06 (ссылка)
А с какой целью интересуешься?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dmitry_danner
2010-05-17 19:11 (ссылка)
Стало интересно, как выглядит семантический анализ, и с точки зрения реализации, и вообще.
Оно соприкасается и с той идеей, которую я когда-то озвучивал, про сборку парадигмы как тест Сапира-Уорфа (нашел, кстати, через вики одну бумагу на эту тему), да и вообще может оказаться полезным представлять себе такие вещи. Скажем, писать наколенный парсер мне уже приходилось для одного игрушечного проектика, абсолютно вслепую.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2010-05-17 19:34 (ссылка)
Что ты подразумеваешь под семантическим анализом? Не мог бы привести пример для курсантов?

На чём писал парсер?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dmitry_danner
2010-05-17 19:56 (ссылка)
Писал на спектруме :) По сути, это был затянувшийся пруф-оф-концепт, в будущем если буду делать такие вещи, то только на IF-платформах...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2010-05-17 23:16 (ссылка)
Что такое IF-платформа?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dmitry_danner
2010-05-17 23:37 (ссылка)
В смысле, на платформах, приспособленных для interactive fiction (забыл упомянуть, что парсер был для игрушки). Там очень многое есть уже готовое, но в то же время поддается модификации, если нужно.

(Ответить) (Уровень выше)


[info]phantom
2010-05-17 19:46 (ссылка)
Если подразумевается типизация, то можно посмотреть алгоритм Хиндли-Милнера.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dmitry_danner
2010-05-17 20:06 (ссылка)
И типизация тоже. Но вот сейчас полистал чего-то и понял, что "обход синтаксического дерева" и генерация кода ближе к тому, что интересует, а понимаю я их еще меньше.
Если совсем нахально, то в теории интересует соотношение между примитивами языков высокого уровня и примитивами алгоритмического мышления... О_о
Куда конкретно для этого нужно смотреть, теряюсь в догадках.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2010-05-17 23:16 (ссылка)
А что такое синтаксическое дерево (оно же AST) понятно?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dmitry_danner
2010-05-17 23:30 (ссылка)
Уже более-менее прояснилось все то, что связано с "промежуточным представлением". Непонятно, нужно ли копать дальше по оптимизации и генерации кода, потому что по дороге обнаружилась "формальная семантика" и на основе ее надеюсь прояснить общий принцип всего последующего. Ну и, как водится, на той же полочке лежит еще дофига всего интереснейшего (...)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]phantom
2010-05-18 11:42 (ссылка)
Те представления - всего лишь деревья с разнотипными узлами. Обычно для них используются т.н. алгебраические типы. Несколько раз AST подвергается трансформации "из дерева в дерево", пока не будет готово к передаче на вход кодогенератора.

Я как-то разбирался с этим, ковыряясь в одном компиляторе дебаггером. Думаю, ничего особо военного в этих вещах нема.

Формальная семантика мне интереснее, наверно.

(Ответить) (Уровень выше)