Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - kkkk

Страницы: 1 ... 6 7 [8] 9
106
Общий раздел / Re: Добавить методы в О7/13
« : Ноябрь 14, 2013, 09:13:54 am »
Предлагаю увеличить масштаб. У тебя мегапроект.
Не уверен, что Оберон в принципе подходит как основа для мегапроекта. Он создавался для чего-то обозримого во многом в противовес этому.
Если метите в сверхзадачи, может лучше сразу взять за основу Аду? Или надеетесь, что сможете лишь слегка подрихтовать Оберон, и всё наладится? Не последуют ли за одними улучшениями другие, без которых мегапроект тоже не состоится?

107
Общий раздел / Re: Sublime Text 2
« : Ноябрь 13, 2013, 10:13:01 pm »
Первый абзац
Более того, тип ты не сможешь и от функции :-)
V(a);
Тут V может быть как типом, и тогда это объявление переменной, так и функцией, тогда это вызов оной функции :-) И лексерная раскраска тут ну никак не поможет, скорее запутает.
частично опровергает второй
Цитировать
Также в плюсах нет какогого смысла в выделении как-то предопределенных типов, вроде int, char и так далее, просто потому, что типы рукотворные ничем не хуже и могут иметь в точности ту же семантику.
Помимо того, что семантика в Си(без плюсов) не совсем та же. Рукотворный тип, который суть переменная со спецификатором хранения typedef, может быть переопределен во вложенной области видимости, причем самым забавным способом - type a, b, type; с int такое не пройдет. Переменная рукотворный типа не может быть объявлена с signed, unsigned, long, short. Опять же, рукотворный тип может быть объявлен уже с квалификатором const/volatile, что может привести к невозможности объявления переменной с теми же явными квалификаторами. Это просто уточнение про ту же самую семантику, как этому делу может помочь боевая раскраска - дело 10-е.
Цитировать
Ключевые слова от идентификаторов в языке, где есть шаблоны и макросы смысла не имеет отделять, просто потому, что "идентификатор" может выполнять те же функции что и ключевое слово языка. Кстати, то же творится и в Haskell'e - ключевые слова выделять не нужно. Да их там почти и нет :-)
К счастью, с таким отмороженным кодом приходится иметь дело нечасто. И это одна из причин, почему я не люблю эмулировать цикл Дейкстры или что там еще взбредет в голову через макросы. Чем больше явного, тем для меня лучше.

108
Общий раздел / Re: Добавить методы в О7/13
« : Ноябрь 13, 2013, 09:33:00 pm »
Видишь ли, принципиальная проблема в IF/ELSIF в том, что я не помню все ли расширения типа представлены в этом модуле или есть какие-то еще за пределами. Да, и я не хочу искать - есть ли такие. А еще я хочу, чтобы все продолжало работать даже если какие-то расширения появятся в будущем. Может быть я хочу слишком большего... Но с другой стороны - что плохого в таком желании?

P.S. И да, я считаю IF/ELSIF по списку типов недостойным написания/чтения человеком. Ибо мусор, скрывающий суть. Даже если бы не было описанной выше принципиальной проблемы расширения системы.
Я как раз и говорил о случае, когда все типы известны заранее, соответственно ничего не потеряешь и помнить не надо - написал и дело с концом, как в случае с Обероном. Увы, зачастую только редкие и заранее предусмотренные динамические расширения не требуют дополнительного вмешательства в основной код. По поводу IF/ELSE тоже не стоит быть столь категоричным. Иногда общие части кода как раз и видны в таком виде, да в таких комбинациях, что с ООП там голову сломаешь. Если Вы заранее наметили пути расширения и видите четкий план развития, то вполне возможно интерфейсы и пригодятся в большей степени, чем это видится со стороны.

109
Общий раздел / Re: Добавить методы в О7/13
« : Ноябрь 13, 2013, 09:19:10 pm »
Согласен с предыдущим оратором. По моему опыт отсутствие нужной реализации даже без тестов отыскивается быстро.

110
Общий раздел / Re: Добавить методы в О7/13
« : Ноябрь 13, 2013, 08:00:47 pm »
Вот ссылка на код еще раз (конкретнее некуда): https://github.com/vladfolts/oberonjs/blob/master/src/type.js
В коде я ничего не понял, но подозреваю, что для этой задачи методы не обязательны. Поскольку все типы известны заранее, достаточно расширения типа и CASE - IF-ELSIF. Это имеется ввиду под ужасом?

111
Общий раздел / Re: Sublime Text 2
« : Ноябрь 13, 2013, 07:46:48 pm »
Спасибо, буду пробовать.
Раскраска для Си мне помогает отличить ключевые слова от идентификаторов. Также легче разобраться в многострочных строках и однострочных комментариях и макросах (звучит как нелепость, но факт), да и просто в строках с ошибочно экранированными кавычками, что у меня случается.
В Обероне предопределенные имена и ключевые слова как кирпичи - ни с чем не спутаешь. Строки - действительно строки, экранированных символов нет, тип не спутаешь с именем переменной. В последнем случае лексерная раскраска конечно не поможет.

112
Общий раздел / Re: Sublime Text 2
« : Ноябрь 12, 2013, 11:50:23 am »
Мне достаточно подсветки закомментированного кода. Не подскажите, как это просто сделать для Оберона, не затрагивая расцветки для других языков?

113
Общий раздел / Re: Sublime Text 2
« : Ноябрь 12, 2013, 09:52:07 am »
Специфики Оберона эта расцветка не учитывает. Режет глаз разноцветный RECORD END и POINTER TO

114
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 11, 2013, 07:03:39 pm »
По сравнению с LOOP EXIT END цикл Дейкстры не несёт никаких оптимизаций, а только отсекает излишнию гибкость неструктурного цикла. Конечно, явная поддержка конструкции в языке даст оптимизирующему компилятору больше возможностей для ускорения, но такой компилятор выкинет и повторяющиеся проверки. Только это не в стиле Оберона, тем более что по моему опыту основной удар принимает первая ветка и повторные проверки не оказывают существенного влияния на время исполнения.

115
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 11, 2013, 10:20:02 am »
Так плохо это или хорошо?
В приведенном примере я отказался от лишнего слоя абстракции чтобы избавиться от ненужного кода и накладных расходов, связанных с ним. ЦД позволил сделать это просто. Теперь не нужно абстрагироваться над буфером, чтобы потом складывать прочитанное в другой буфер, потому что иначе неудобно.

116
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 11, 2013, 08:57:04 am »
Да не. Просто после той мощной рекламной компании, которую устроил info21 для Цикла Дейкстры, хотелось найти хоть одно осмысленное применение на практике. А тут как раз язык с непосредственной поддержкой этого чуда. Вот и теперь, даже Петр Алмазов сказал, что Цикл Дейкстры тут не нужен. Будем искать :)
Гм, я вроде бы и не ищу применимости ЦД, а тем не менее время от времени натыкаюсь на такие места, где он подходит, но никогда в работе его не использую, поскольку эмулировать его явно либо через макросы мне нравится. А в Обероне бы пошло.
Например, есть сканер, в котором работа с потоком данных ведётся с явными блоками памяти вместо абстракции посимвольного чтения над буферизированными данными. Это приводит к тому, что лексема может быть разделена между блоками. У меня чтение лексемы выглядит приблизительно так:
WHILE Suitable(buf[i]) DO
INC(i)
ELSIF buf[i] = NewPage DO
NextPage(buf, i, input)
END

117
Общий раздел / Re: Раскручиваем компилятор O7
« : Ноябрь 10, 2013, 08:21:29 pm »
С учетом всех тем, где упоминался цикл Дейкстры, что я наблюдал, можно прийти к выводу, что в мире современных программистов ЦД - могучий артефакт, притягивающий к себе внимание вне зависимости от его целесообразности в конкретном случае. Знай бы об этом Никлаус Вирт, вероятно, захотел бы и его исключить из языка. Но с точки зрения маркетинга такая скандалообразующая штука безусловно полезна.

118
Общий раздел / Re: [Oberon rev 2013] CASE
« : Ноябрь 10, 2013, 12:39:47 pm »
Да нет, не перестает. Просто ELSE или ELIF становится обязательным.
И, согласно текущему определению языка, как минимум один оператор, бессмысленный и беспощадный. А ведь есть банальный ASSERT.

119
Общий раздел / Re: Делаем строку на O7
« : Ноябрь 10, 2013, 10:13:49 am »
Для любых массивов, хоть литерных, хоть каких-либо других LEN должна вернуть длину массива, а не строки.

120
Общий раздел / Re: Делаем строку на O7
« : Ноябрь 08, 2013, 10:00:12 am »
Это всё на уровне кажется. Я и писал, что не могу судить однозначно, но очевидно дополнительное свойство, а насколько оно полезно, можно будет сказать, помахав кувалдой да посозерцав за полученным.

Страницы: 1 ... 6 7 [8] 9