Семантика WITH в Обероне отличается от паскалевской. В Паскале with применяется для сокращения длины кода при обращении к группе элементов записи - что-то вроде ручной оптимизации. В Обероне WITH - это охрана типа - безопасное приведение родителя к потомку, которое вызывает исключение если оно некорректно.
Код:
TYPE
ChlenSemyi = RECORD END;
Syn = RECORD (ChlenSemyi) END;
Doch = RECORD (ChlenSemyi) END;
VAR semyanin: POINTER TO ChlenSemyi;
BEGIN
...
WITH semyanin: Syn DO (* Вот здесь вылетит, если семьянин - не сын *)
У простого компилятора есть достоинства. Его легче дорабатывать малыми силами, переориентировать на другие платформы, обфичивать, наконец. Вы просто привыкли к готовым фирменным инструментам, которые делаются огромнейшими силами. Кстати, я не верю в прогресс. Я верю скорее не в то, что скоро мобильники стоядерные будут у каждого, а в то, что люди заползут в пещеры и скатятся к каннибализму. Оптимист я, понимаете. Но это так, отступление.
---------- Post added at 18:46 ---------- Previous post was at 18:37 ----------
А думать структурно - всегда полезно. У вас вещи в шкафу лежат стопками или кучей - грязное с чистым вперемешку? Человеку свойственно упорядочивать пространство вокруг себя, это его суть, родовая задача. Ментальное пространство тоже. Чем лучше оно упорядочено - тем проще жить. С программированием то же самое.
Я, занимаясь настройкой компов, заметил, что состояние компьютера напрямую зависит от уровня интеллекта человека, его использующего. У "охламонов" всё кучей и навалом - чёрт ногу сломит, фильмы - куски vob'ов, скопированные с DVD не целиком, шансон вперемешку с фотками "я бухаю на днюхе" и остатками когда-то установленных игр. У интеллектуалов - учителей, студентов - порядка на компе гораздо больше. Всё разложено по папочкам, которые аккуратно названы и т.д. Если вам не нравится такая аналогия с программистами, не парьтесь, как говорится.
---------- Post added at 19:07 ---------- Previous post was at 18:46 ----------
Хочу приятно порадовать сишников и плюсистов, которые пару лет назад с пеной у рта доказывали мне, что в Си есть модульность. Таки свершилось!
Фича, которая была в Модуле-2 30 лет назад - теперь и в C++, и это очень прогрессивно, господа. Я правда рад. И не издеваюсь. Только вопрос: если в Си уже была модульность, то что они тогда ввели, в чём, так сказать, цимес?