Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение  Обсуждение из раздела Школа ОБЕРОНА
№ 5766 25-10-2007 07:31 |  |
Ответ на »сообщение 5765« (Geo)
___________________________
Уп-с... кажется, это вопрос уже без меня прояснили. Надо было дочитать до конца, а только потом втсревать в дискуссию.
Виноват.
№ 5765 25-10-2007 07:28 |  |
Ответ на »сообщение 5705« (Jack Of Shadows)
___________________________
Прикол, я думал тег код подсветит exit - Это ведь служебное слово дельфи.
Изначально, подсвечивлись только зарезервированные слова языка программирования Delphi. В дальнейшем произошло добавление слов read, write, default и, кажется, чего-то еще, то есть слов, которые являются зарезервированными при объявлении классов.
Break, Continue, Exit в Delphi (по крайней мере, в шестерке) почему-то не являются зарезервированными словами. Это какие-то псевдофункции что ли. В общем, не знаю, в спор не полезу.
Информация бралась из хелпа по шестерке из раздела про зарезервированные слова.
№ 5764 23-10-2007 11:48 |  |
Ответ на »сообщение 5763« (pepper)
___________________________
>>>Такой подход сам по себе требует "программистской дисциплины" (еще большей чем ворнинги), поэтому в качестве "контроля дисциплины" работать он не будет.
Почему же. По крайней мере, в рамках отдельного проекта вполне сработает.
Есть даже свои преимущества. :)
Представим гипотетическую ситуацию (только для примера): нам надо подсчитать сколько раз была вызвана некая функция (скажем, Foo).
Логично разместить в ее начале инкремент счетчика, затем (в конце вычислений или при выгрузке модуля) вывести его в лог. Компилятор ОСЯ ("Очень Строгого Языка") такое безобразие, конечно, не пропустит. Придется прибегать к каким-нибудь извращениям, чтобы добиться желаемого.
А в нашем случае, мы можем получить warning, но узнаем-таки число вызовов. После чего, конечно, можем и удалить (или закомментировать) это полезное безобразие. :)
№ 5763 23-10-2007 08:56 |  |
Ответ на »сообщение 5761« (AVC)
___________________________
Не обязательно этой "дополнительной" работой должен заниматься (быстрый однопроходный) компилятор, это может быть и отдельная программа (в Обероне -- команда), вроде DevAnalyzer.Analyze в ББ.
Правильно, напишем нормальный компилятор языка, совместимого по синтаксису с обероном ;)
Т.е. контроль над такими "нарушениями программистской дисциплины" в Обероне не потерян, хотя в данной ветке часто утверждалось обратное, и в пример ставились функциональные языки или Ада.
Такой подход сам по себе требует "программистской дисциплины" (еще большей чем ворнинги), поэтому в качестве "контроля дисциплины" работать он не будет.
№ 5762 23-10-2007 05:15 |  |
Ответ на »сообщение 5751« (Дядя .СЭМ)
___________________________
Ответ на »сообщение 5750« (info21)
___________________________
Вирту не FOR не нравится, а избыточная сложность им вводимая при наличии уже WHILE.
Избыточная сложность чего? Избыточная сложность языка при введении в него FOR при наличии WHILE или избыточная сложность FOR по сравнению с WHILE.
Да компилятора ... со всеми вытекающими последствиями для корректности, надежности, переносимости ...
№ 5761 23-10-2007 04:31 |  |
Ответ на »сообщение 5760« (Takun)
___________________________
>>>В контрактном предусловии не могут участвовать "скрытые" (не экспортированные) переменные. Эйфель в этом случае ошибку компиляции выдает. Никто не мешает сделать так же.
Конечно.
Но, IMHO, главная мысль даже не в том, что, практически ничего не меняя в Обероне, из него можно приготовить Эйфель. :)
Главное, что Оберон спроектирован таким образом, что все несуразности (вроде побочных эффектов в функциях или -- явных или скрытых -- присвоений управляющей переменной в циклах) можно обнаружить автоматически, не меняя языка.
Не обязательно этой "дополнительной" работой должен заниматься (быстрый однопроходный) компилятор, это может быть и отдельная программа (в Обероне -- команда), вроде DevAnalyzer.Analyze в ББ.
Т.е. контроль над такими "нарушениями программистской дисциплины" в Обероне не потерян, хотя в данной ветке часто утверждалось обратное, и в пример ставились функциональные языки или Ада.
№ 5760 23-10-2007 03:27 |  |
Ответ на »сообщение 5737« (Руслан Богатырев)
___________________________
Ответ на »сообщение 5736« (AVC)
___________________________
Никаких необычных ASSERT-ов не надо: ASSERT пусть будет самый обычный. :)
Такая эквилибристика добром вряд ли закончится. Подумайте над такой простой вещью. В ASSERT (в первом операторе процедуры) могут быть указаны не только формальные параметры, но и глобальные переменные, которые не видны вне модуля (не экспортируемые).
ASSERT ((x > 0) AND done);
Эта done вылезет (благодаря "находчивости" компилятора) в интерфейс, где на нее внешний программист будет смотреть как баран на новые ворота.
В контрактном предусловии не могут участвовать "скрытые" (не экспортированные) переменные. Эйфель в этом случае ошибку компиляции выдает. Никто не мешает сделать так же.
№ 5759 23-10-2007 03:12 |  |
Ответ на »сообщение 5752« (pepper)
___________________________
... И где эти sophistication программы на обероне?
Почему Вам кто-то должен их нести и показывать?
На то они и sophisticated, что не для посторонних глаз :-)
№ 5758 23-10-2007 03:11 |  |
Ответ на »сообщение 5753« (Илья Ермаков)
___________________________
... А про отказы наших спутников связи или автокатастрофы в Швейцарии что-то ничего не слышал...
Более того, кто-то из коллег совсем на днях жаловался, как его эта система слежения за дорожным движением заловила: где-то чуть-чуть превысил скорость, система его засекла, и когда он доехал до ЦЕРНа, там его уже ждал штраф. Все было сделано автоматически кроме почтовой пересылки.
№ 5757 23-10-2007 03:10 |  |
Ответ на »сообщение 5755« (Илья Ермаков)
___________________________
>>>Вообще, верх маразма в NASA - попытки перехода на Яву с прекрасно работавшей связки Ada-LISP. Слов на них нет - одни междометия. Вместо специально подобранных языков, первый из который - специализированный язык реального времени, перейти на поделку, склёпанную некогда для автоматизации утюгов и браузеров. Зато название модное теперь, есть чем годиться.
Вообще-то, если память мне не изменяет, и Ада, и Ява изначально разрабатывались для программирования встроенных приложений.
А что именно в Аде заточено под реальное время?
Уж не рандеву ли? :)
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|