Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение Обсуждение из раздела Школа ОБЕРОНА
№ 3306 18-03-2007 14:53 | |
Ответ на »сообщение 3304« (Jack Of Shadows)
___________________________
Ответ на »сообщение 3303« (Илья Ермаков)
___________________________
А почему в pdf ? html то гораздо легче для web
Традиция OberonCore - набирать в Латехе или ОпенОфисе, затем загонять в PDF :-)
№ 3305 18-03-2007 14:43 | |
Ответ на »сообщение 3302« (Руслан Богатырев)
___________________________
>>>Идея сопоставления -- найти в конкретных вещах программирования-в-малом плюсы и минусы сопоставляемых языков и их парадигм. Поняв минусы, можно их попытаться снивелировать (в каждом из языков). Поняв плюсы, еще более усилить.
О чести мундира не может быть и речи. Для меня очень важно сопоставление языков, не столько для собственого использования, сколько для того, чтобы правильно ориентировать студентов.
Пока складывается представление, что ФП предпочтительнее для программирования-в-малом, как замена процедурному программированию. Пока задача хорошо алгоритмизуется целиком, пока эффективны математические модели, ФП будет превосходить другие подходы по строгости и, как следствие, по надежности.
Если круг решаемых задач соответствует, выгодно использовать ФЯ, для максимально эффективного использования преимуществ ФП.
Для сложных моделей, которые прежде всего требуют структуризации и изоляции сущностей необходим объектный подход.
Для сложных программных систем - модульный.
Возникает интересный вопрос: можно ли построить эффективный модульный, объектный, функциональный язык, раз парадигмы друг другу не противоречат?
Или все-таки противоречат?
№ 3304 18-03-2007 14:27 | |
Ответ на »сообщение 3303« (Илья Ермаков)
___________________________
А почему в pdf ? html то гораздо легче для web
№ 3303 18-03-2007 14:17 | |
К вопросу о... О многом: о конструктивном сравнении языков, о том, где и почему возможна/невохможна кластерно-модульная методология проектирования и о другом...
Я тут попытался построить связную картинку - систематизацию для сравнения языков программирования.
Хотел всего лишь написать пост на форум, однако вышло 7 страниц, поэтому оформил статейкой и выложил:
http://ermakov.metasystems.ru/download/ermakov-language-comparison.pdf (500Kb)
Это альфа-версия, так что там наверняка есть уйма неточностей и ляпов... Особенно это может быть касательно ФП - ФПисты, читайте внимательно и пинайте! :-)
№ 3302 18-03-2007 10:32 | |
Ответ на »сообщение 3299« (Сергей Перовский)
___________________________
>>>Вопрос: а чем это отличается от глобальных данных программы?
Вы ответили парой строчек выше : read-only.
Только лишь этим? Вопрос: может ли вызываемая функция в ФП иметь непосредственный доступ (на чтение) не только к контексту ближайшей охватывающей функции (инициатору ее вызова), но и к более объемлющим контекстам (контексту самой вызывающей функции)?
Еще вопрос в связи с обсуждением состояния в ФП: есть ли в Haskell мемо-функции и можно ли их считать элементарным кэшем значений функции на конкретном наборе параметров?
Ответ на »сообщение 3301« (Сергей Перовский)
___________________________
Отличие ФЯ в том, что они черезвычайно затрудняют создание побочных эффектов и вырабатывают соответствующий стиль программирования.
Мне представляется, что плодотворность данной дискуссии возможна в том случае, если мы на время перестанем отстаивать "честь мундира". Идея сопоставления -- найти в конкретных вещах программирования-в-малом плюсы и минусы сопоставляемых языков и их парадигм. Поняв минусы, можно их попытаться снивелировать (в каждом из языков). Поняв плюсы, еще более усилить.
И так очевидно, что для Оберона программирование-в-малом заведомо проигрышнее программирования-в-большом, поскольку здесь он далеко от классического Паскаля не отходит. Я уже отмечал, что C++ и Java с классами на таких задачах вообще не успевают "разогнаться" -- тут не до построения межклассовых отношений. А на чисто алгоритмическом участке наглядность их сильно уступает Паскалям и Оберонам (это, конечно, IMHO, но с претензией на близость реалиям).
№ 3301 18-03-2007 08:51 | |
Ответ на »сообщение 3300« (AVC)
___________________________
>>>В Обероне-2 глобальной переменной только для чтения никого не удивишь
По моему никто не утверждает, что на Обероне нельзя писать в функциональном стиле. Отследить, что функция не имеет побочных эффектов не так и сложно.
Отличие ФЯ в том, что они черезвычайно затрудняют создание побочных эффектов и вырабатывают соответствующий стиль программирования.
№ 3300 18-03-2007 07:54 | |
Ответ на »сообщение 3299« (Сергей Перовский)
___________________________
Ответ на »сообщение 3284« (Руслан Богатырев)
___________________________
>>>Вопрос: а чем это отличается от глобальных данных программы?
Вы ответили парой строчек выше : read-only.
В Обероне-2 глобальной переменной только для чтения никого не удивишь, например: MODULE In;
...
VAR
Done-: BOOLEAN;
№ 3299 18-03-2007 07:40 | |
Ответ на »сообщение 3284« (Руслан Богатырев)
___________________________
>>>Вопрос: а чем это отличается от глобальных данных программы?
Вы ответили парой строчек выше : read-only.
№ 3298 18-03-2007 07:37 | |
Ответ на »сообщение 3287« (Jack Of Shadows)
___________________________
А каков смысл понимания каждой отдельной строчки если общая цель задачи недоступна пониманию ?
В ИЯ действительно каждую отдельную строчку может читать и легче. Но вермишель из этих строчек ну очень тяжел для "процеживания".
В ФЯ (особенно в чистом как хаскель) да, каждая отдельная строчка плотнее, ее тяжелее читать. Но зато ВСЯ программа читается и понимается практически с первого раза, как проза.
Оно и понятно почему. Ведь вы читаете ОПИСАНИЕ задачи, а не последовательность шагов для ее выполнения.
Не нужно ментально постоянно отслеживать где и что в какой момент поменялось.
Эти декларации не соответствуют реальному положению дел, и уже надоели -- вроде был для них отдельный форум?
Понимается "как проза" только то, что хорошо написано -- КП/О и ФЯ в этом отношении практически не отличаются.
В который раз:
1) КП/О -- синтетические языки. Сколько нужно функциональности, столько и можно использовать.
2) Нет никакой нужны "ментально постоянно...", т.к. состояние структурируется на независимые куски (для этого строгая типизация и существует). Инкапсулировали -- забыли.
Тот факт, что в обычные ФЯ зашиты средства работы со списками и строками, не имеет отношения к функциональной парадигме как таковой. В КП/О не зашиты по рациональным причинам, которые уже миллион раз обсуждались.
№ 3297 18-03-2007 07:23 | |
Ответ на »сообщение 3293« (Илья Ермаков)
___________________________
Это пример того, что со строками в ФЯ работать действительно гораздо удобнее.
Разве тут играет "функциональная парадигма" как таковая?
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|