На базарной площади довольно часто можно слышать высказывания об
Обероне. Мне кажется, что на базарной площади пора появиться ветке об
этой системе и языке, что-то вроде "Мысли об Обероне". Что это такое, перспективы
этой системы, что
полезного можно извлечь из него для программирования на Дельфи
(например) и др.
Ivan
Всего в теме 4531 сообщение
Ссылки по теме "Оберон" и "Компонентный паскаль"
Отслеживать это обсуждение
- Free Pascal, Oberon, BlackBox
- Разработка препроцессора gpre для delphi\freepascal.
- Component Pascal и среда разработки BlackBox
- FreePascal: реальная альтернатива или OpenSource — блажь?
№ 3781 14-12-2005 12:19 | |
№ 3780 14-12-2005 12:08 | |
Ответ на »сообщение 3774« (Руслан Богатырев)
___________________________
>>>Теория модульного программирования есть? Нет. Принятое определение модуля есть? Нет. Эталон нужен? Да
Нужна теория :)
Иначе как эталон выбирать.
Давайте попробуем для начала выработать хотя бы определение: модульное программирование - это ... отличающееся тем, что ... с целью ....
Кто не в курсе, это стандартный шаблон формулы изобретения :)
Ну первая позиция более менее понятна: модульное программирование - это программирование :о)
А вот дальше надо бы начать с конца (извините за каламбур), с какой целью?
Какова цель применения модульного программирования? Повторное использование кода? Упрощение разработки? Снижение количества ошибок? Что-то другое?
№ 3779 14-12-2005 12:03 | |
Ответ на »сообщение 3745« (Руслан Богатырев)
___________________________
Но серия JPI TopSpeed-компиляторов вспыхнула яркой звездочкой и затем погасла. Брюс Баррингтон (Clarion) подмял их бизнес под себя, похоронил бренд, компилятор Modula-2, а затем, проиграв в противостоянии Visual Basic и Delphi, продал Clarion-бизнес другим.
Вспомнился вот какой момент. В 1998 г., когда Баррингтон был в России, по дороге из Зеленограда в Москву я его спросил напрямую -- сможет ли его компания 32-разрядный компилятор Modula-2 (который был их основным рабочим инструментом для создания всей среды и других компиляторов) сделать самостоятельным продуктом, а не держать по секрету внутри среды Clarion. Баррингтон сказал -- вполне, если Россия сможет купить за год 50 компиляторов. Тут уж мне оставалось только пожать плечами. В результате 32-разрядный компилятор Modula-2 так и не выпустили.
Вот, оказывается, какой была цена вопроса -- 50 экземпляров на такую страну. И смешно, и грустно.
№ 3778 14-12-2005 11:49 | |
Ответ на »сообщение 3765« (SAGE)
___________________________
I will continue to test/fix/improve the Bluebottle USB software for the next two weeks.
Ага, готовят-таки рождественскую версию. Но в тайне, чтоб никто не знал.
№ 3777 14-12-2005 11:38 | |
Ответ на »сообщение 3775« (AVC)
___________________________
Кажется, у DEFINITION и IMPLEMENTATION в Модуле-2 могут быть разные списки импорта?)
Могут. Поскольку в DEFINITION-части могут использоваться, например, типы из другого модуля. А в IMPLEMENTATION-части они могут быть, поскольку нужно использовать сущности других модулей. Но это врожденнная специфика (ее можно называть неудобством, а можно и не называть) другого языка -- Modula-2. А мы ведь говорим о малом Оберон-семействе. А то, что у Оберонов один список импорта, разве же это плохо?
Тут есть закавыка. Да к тому же не одна.
В качестве ключа для разгадки предлагаю попробовать сопоставить две несколько разные модели реализации модулей в Modula-2 и в Оберонах.
№ 3776 14-12-2005 11:29 | |
Ответ на »сообщение 3772« (Takun)
___________________________
Кстати, небольшой вопрос знатокам: в чем заключается явный недостаток языков Оберон, Оберон-2 и Компонентный Паскаль в отношении поддержки модульного программирования (общий для всех этих языков)?
Отсутствием DEFINITION (и возможности его реалзиации) на уровне языка?
Так DEFINITION во всех трех языках автоматически можно получить из текста модуля. А что значит реализация DEFINITION? MODULE реализует тот интерфейс, который задается спецификаторами экспорта (звездочки и минусы). Что же тут не так? Точнее, в чем же недостаток?
№ 3775 14-12-2005 11:26 | |
Очень интересное обсуждение (насчет модульности).
Ответа на вопрос (в чем недостатки Оберона с точки зрения модульности) пока не знаю. :(
(Хотя думаю, что СЕРЬЕЗНЫХ недостатков нет. :)
Кажется, у DEFINITION и IMPLEMENTATION в Модуле-2 могут быть разные списки импорта?)
Но сейчас меня интересует другой вопрос -- о процедурных константах и переменных (здесь разница между Оберон-1 и Оберон-2).
В свое время эта тема здесь поднималась.
Руслан утверждал, что процедурные переменные имеют преимущества перед процедурными константами.
Я с тех пор пытаюсь это осмыслить.
Вот что получается.
Иногда хорошо использовать просто процедурные переменные (скажем для реализации паттерна "Состояние") -- не надо городить массу классов-состояний.
Плюс вопрос о множественном наследовании.
Например, в Си++ множественное наследование удобно для создания примесей.
В Обероне же одиночное наследование, примеси так просто не "привьешь".
Надо будет добиваться этого эффекта либо с помощью
композиции, инкапсулированной в модуле.
Или -- с помощью handler-ов, как в Обероне-1 у Вирта. (Я так понял написанное им в Programming in
Oberon (2004) про broadcast, что в гетерогенной коллекции элементы могут заметно расходиться по набору обрабатываемых ими сообщений.)
Вот тут у меня и возникает вопрос: а не противоречит ли этот подход принципу подстановки (Лисков)?
Прошу прощения, если вопрос наивный.
№ 3774 14-12-2005 11:22 | |
Ответ на »сообщение 3771« (Сергей Перовский)
___________________________
Какая РСУБД лучше? Та, которая точно реализует реляционное исчисление. Вот и эталон.
Теория реляционных баз данных есть? Есть. Реляционное исчисление есть? Есть. Нужен здесь эталон? Нет.
Теория модульного программирования есть? Нет. Принятое определение модуля есть? Нет. Эталон нужен? Да.
№ 3773 14-12-2005 10:35 | |
№ 3772 14-12-2005 10:31 | |
Ответ на »сообщение 3769« (Руслан Богатырев)
___________________________
Ответ на »сообщение 3745« (Руслан Богатырев)
___________________________
Как-то в нашей дискуссии оказался затертым мой вопрос. Повторяю.
Кстати, небольшой вопрос знатокам: в чем заключается явный недостаток языков Оберон, Оберон-2 и Компонентный Паскаль в отношении поддержки модульного программирования (общий для всех этих языков)?
Отсутствием DEFINITION (и возможности его реалзиации) на уровне языка?
Отслеживать это обсуждение
Дополнительная навигация: |
|