На базарной площади довольно часто можно слышать высказывания об
Обероне. Мне кажется, что на базарной площади пора появиться ветке об
этой системе и языке, что-то вроде "Мысли об Обероне". Что это такое, перспективы
этой системы, что
полезного можно извлечь из него для программирования на Дельфи
(например) и др.
Ivan
Всего в теме 4531 сообщение
Ссылки по теме "Оберон" и "Компонентный паскаль"
Отслеживать это обсуждение
- Free Pascal, Oberon, BlackBox
- Разработка препроцессора gpre для delphi\freepascal.
- Component Pascal и среда разработки BlackBox
- FreePascal: реальная альтернатива или OpenSource — блажь?
№ 4071 22-12-2005 11:18 | |
Ответ на »сообщение 4065« (ASU)
___________________________
Ответ на »сообщение 4062« (info21)
___________________________
Цели представления информации?
За Вас я не могу определить цели.
Объем предоставляемой информации?
Сроки предоставления?
Пожалуйста, взгляните на ссылки насчет форматов и сроков (кажется, 3 марта и 20 страниц в формате Springer Lecture Notes in Computer Science -- см. ссылки).
№ 4070 22-12-2005 10:38 | |
Ответ на »сообщение 4024« (hugi)
___________________________
Интрефейсы, случайно, не тот механизм, который Вы так упорно ищете?
Интерфейс (в терминологии Active Oberon/Zonnon - DEFINITION) - это хорошо.
Вполне возможно, что я еще не оценил интерфейсы в достаточной степени, т.к. по-прежнему в основном пишу на Си++, где их нет.
Спасибо за напоминание.
Но интерфейсы сами по себе не позволят мне менять набор обрабатываемых объектом сообщений "на лету", без перекомпиляции.
Поэтому меня особо интересуют родовые (в смысле Оберона) интерфейсы.
Гибкость большая, но боюсь, что и "грабли" могут быть большими.
№ 4069 22-12-2005 09:44 | |
Ответ на »сообщение 4061« (Trurl)
___________________________
Типы данных, как я уже говорил, в этих языках есть. Единственное отличие от строго типизированных языков состоит в том, что в динамически-типизируемых языках переменная может менять тип по ходу выполнения, но всё же в любой момент времени можно сказать, к какому типу относится переменная. Пример тому уже упомянутый мной PHP.
Предвидя Ваши возражения, поясню вышесказанное на примере. Предположим, у Вас есть две переменных X = 'abcd' Y = 3.345 и Вы хотите их сложить. Вы случайно не знаете, что даст сумма строки и вещественного числа? Хм. Я тоже. И вряд ли кто-нибудь знает. Но сложить всё же требуется (вариант с запрещением этой операции пока не рассматриваем). Так как же быть? Выход прост -- нужно привести результат к ТИПУ одного из слагаемых. Т.е. либо попытаться преобразовать строку в вещественное число, либо вещественное число в строку. В PHP использовался именно второй вариант, т.к. он всегда выполним. Вот и всё. Все операции над переменными производятся в зависимости от их типа. Даже если это явно нигде и не фигурирует. Потому что иначе определить результат операции просто невозможно. Да и вообще не все операции осуществимы над произвольными данными (к примеру деление строки на строку). Так что без типов не обойтись.
Теперь рассмотрим, почему мы могли бы запретить выполнение этой операции. Других причин не вижу, кроме явной разнородности значений переменных. А что есть разнородность, как не принадлежность к разным ТИПАМ объектов.
№ 4068 22-12-2005 09:43 | |
Ответ на »сообщение 4064« (Сергей Губанов)
___________________________
Вы сами до этого додуматься не можете или Ваша цель ко мне поприставать?
Вы заблуждаетесь, если думаете, что сообщили мне что-либо новое. Я это прекрасно осознавал и до Вашего сообщения. Более того, Вы ответили на вопрос, которого я перед Вами не ставил, вместо того, чтобы попытаться ответить на поставленные вопросы.
Да не терроризируйте вы Губанова. Думаю, и так уже понятно, что модульность системы напрямую не связана с модульностью языка реализации (точнее, с тем, имеет ли он конструкцию модуля и позволяет ли ее имитировать).
Верно, я уже демонстрировал это примером языка Си, на котором можно писать Win32 DLL модули. Спасибо за очередной... пересказ. Ссылки на источник Вы, правда, не привели, ну ладно простим.
Не напомните, что Вы демонстрировали (точнее какую мысль иллюстрировали)?
Насколько я понял слова Руслана Богатырёва, они значат, что язык может быть модульным и тогда, когда на нём не пишутся модульные системы, но который имеет в своём составе конструкцию модуля (это не совпадает с Вашей точкой зрения, состоящей, насколько я могу разуметь, в том, что модульным может быть признан язык, на котором пишут (не "потенциально возможно писать") модульные системы, да и то не на всяком, а на "оптимизированном" для этого). И обратно, модульная система может быть создана и на языке, не имеющем даже понятия модуля, -- всё упирается только в среду исполнения, как я уже говорил в одном из своих предыдущих сообщений.
P.S.
И всё-таки ответьте, пожалуйста на вопрос:"Может ли язык быть модульным и не модульным одновременно?"
№ 4067 22-12-2005 08:10 | |
Ответ на »сообщение 4066« (Владимир Лось)
...CALL/RET...
Проблема не только техническая.
№ 4066 22-12-2005 05:49 | |
Ответ на »сообщение 4064« (Сергей Губанов)
___________________________
Нельзя выгружать модуль из системы до тех пор пока загружены его клиенты. Вы этого не знали?
Ну это смотря по тому, какой механизм связи между элементами разных модулей... Если всё чётко завязано на CALL/RET - то - да.
№ 4065 22-12-2005 05:24 | |
Ответ на »сообщение 4062« (info21)
___________________________
ВНИМАНИЕ информация о JMLC 2006:
www.inr.ac.ru/~info21/jmlc2006.htm
Внимание ASU: Ваш материал представляет интерес.
Если будет достаточно ясный текст на читабельном английском, то помогу как смогу.
Цели представления информации?
Объем предоставляемой информации?
Сроки предоставления?
№ 4064 22-12-2005 03:44 | |
»сообщение 4041« 21-12-2005 08:29 (Руслан Богатырев)
Вот достаточно несложный вопрос по Оберонам, связанный с модулями, их динамической загрузкой и выгрузкой.
У нас есть два модуля A и B.... Модуль B импортирует процедуру A.Inc...
1. Выгружается модуль A и загружается снова. Счетчик в A равен нулю?
2. Выгружается модуль B и загружается снова. Счетчик в A равен нулю?
3. Выгружается модуль A, затем модуль B, загружается модуль A, затем модуль B. Счетчик в A равен нулю?
Нельзя выгружать модуль из системы до тех пор пока загружены его клиенты. Вы этого не знали?
»сообщение 4046« 21-12-2005 11:17 (hugi)
Но, подождите-ка, из Ваших слов получается, что не существует языка, заточенного под программирование для Windows. Так? Следовательно, т.к. Windows -- модульная система (опять же Ваши слова), и даже на Oberon'ах писать под неё программы сложно, то Oberon -- одновременно модульный и не модульный язык? Так?
1) Мне не известен ни один язык специально предназначенный/заточенный для программирования модульных систем на базе модульной системы Win32 DLL. Все известные мне языки используют рукопашную загрузку: LoadLibrary/GetProcAddress.
2) BlackBox & .Net & Java не смотря на то, что работают поверх Windows пользуются своими собственными модульными (более того - компонентными) системами не имеющими прямого отношения к модульной системе Win32 DLL.
Вы сами до этого додуматься не можете или Ваша цель ко мне поприставать?
»сообщение 4048« 21-12-2005 11:47 (Руслан Богатырев)
Да не терроризируйте вы Губанова. Думаю, и так уже понятно, что модульность системы напрямую не связана с модульностью языка реализации (точнее, с тем, имеет ли он конструкцию модуля и позволяет ли ее имитировать).
Верно, я уже демонстрировал это примером языка Си, на котором можно писать Win32 DLL модули. Спасибо за очередной... пересказ. Ссылки на источник Вы, правда, не привели, ну ладно простим.
№ 4063 22-12-2005 03:33 | |
Ответ на »сообщение 4060« (Sergei)
___________________________
Я с Вами насчет "школьности" POW! согласен :)
POW! можно пожалуй даже рассматривать как "облегченную" альтернативу BlackBox для использования в образовании. Его выгодно отличает от BlackBox именно чистая реализация Oberon-2 без "наворотов".
№ 4062 22-12-2005 02:11 | |
ВНИМАНИЕ информация о JMLC 2006:
www.inr.ac.ru/~info21/jmlc2006.htm
Внимание ASU: Ваш материал представляет интерес.
Если будет достаточно ясный текст на читабельном английском, то помогу как смогу.
Прошу распространять информацию всем, кто может заинтересоваться.
Отслеживать это обсуждение
Дополнительная навигация: |
|