Здравствуйте, ForestLabs, Вы писали:
FL>Гы. Был такой язык российского разлива — Ямб. FL>Дык в нем циклы писались так: FL>(что-то в цикле)3 FL>Т.е. в примере выполнить цикл 3 раза. Ну лаконичнее некуда.
Согласен.
Вопрос лишь, а что в нем было еще кроме циклов, ведь на все дела разных типов скобок не напасешься, не так ли?
на это сообщение, а не голословно говорить, что Си-образный синтаксис использует больше лексем чем нужно.
D> Ссылаться на бредовое сообщение? Ой, тогда извини... Ты так и не понял, что не прав?
Ну так это же ПУБЛИКАЦИЯ. Можно ссылочку потом ставить на то сообщение [1], как в научке принято.
Здравствуйте, Demiurg, Вы писали:
D> Но ведь ты не прав D> Ссылаться на бредовое сообщение? Ой, тогда извини... Ты так и не понял, что не прав?
Да, не понял.
Текст оформлен в согласии с общепринятым coding style. Служебные слова, скобочки, точки-запятые, посчитаны, надеюсь, без арифметических ошибок. Числа делил правда на калькуляторе, но наверное калькулятор всё-таки не ошибся. Так что всё вроде сделал правильно. Так что не так?
СГ>Текст оформлен в согласии с общепринятым coding style. Служебные слова, скобочки, точки-запятые, посчитаны, надеюсь, без арифметических ошибок. Числа делил правда на калькуляторе, но наверное калькулятор всё-таки не ошибся. Так что всё вроде сделал правильно. Так что не так?
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Demiurg, Вы писали:
D>> Но ведь ты не прав D>> Ссылаться на бредовое сообщение? Ой, тогда извини... Ты так и не понял, что не прав?
СГ>Да, не понял.
СГ>Текст оформлен в согласии с общепринятым coding style. Служебные слова, скобочки, точки-запятые, посчитаны, надеюсь, без арифметических ошибок. Числа делил правда на калькуляторе, но наверное калькулятор всё-таки не ошибся. Так что всё вроде сделал правильно. Так что не так?
Единственный разумный вывод из твоей "работы" — ты против использования coding-style в обероне, а так же недолюбливаешь с-подобный синтаксис.
А все остальное — увы... тебе привели достаточно разумных аргументов, свидетельствующих о неправомерности резюме насчет "сколько еще будет существовать..."
Здравствуйте, Demiurg, Вы писали:
D> Но ведь ты не прав
Скажете что Си-образный синтаксис использует минимально возможное количество лексем? Тогда не правы будете Вы. Си-образный синтаксис использует вовсе не минимально возможное количество лексем, а гораздо больше — известны примеры трехкратного перерасхода. Не верите? А вот здесь
По ушам схлопотать можно и без повода... А такой код тоже недопустим?
while (*str1++ = *str2++);
Действие этого кода вполне осмысленное — копирование строки (только не надо говорить, что в Обероне строки копируются встроенным оператором — это просто пример).
Здравствуйте, moudrick, Вы писали:
M>Единственный разумный вывод из твоей "работы" — ты против использования coding-style в обероне, а так же недолюбливаешь с-подобный синтаксис.
coding-style относится к количеству строчек кода, а основной смысл был про количество лексем. Не зависимо от того какой применять coding-style, количество используемых лексем всё равно больше чем реально необходимо. Смысл заметки в том, что: СИ-ОБРАЗНЫЙ СИНТАКСИС ИСПОЛЬЗУЕТ БОЛЬШЕ ЛЕКСЕМ ЧЕМ ЭТО РЕАЛЬНО НЕОБХОДИМО. Я специально для Вас заглавными буквами написал смысл. Запомните его. А то, понимаете-ли, прочитали сообщение, а смысла так и не поняли.
Никакой. Здесь один параметр, который есть уже объект.
Здесь напрашивается другой паттерн рефакторинга — Выделение переменной (Introduce Explaining Variable) здесь
Человек уКогоЗанять = человек1.деньги > человек2.деньги? человек1: человек2;
Взять_взаймы (уКогоЗанять);
П>>А где здесь группа параметров? ИМХО один, но выбираемый в зависимости от условия.
S>Ну, можно еще добавить парочку... Например, сколько взять, когда отдать и т.д.
Вот они то как раз и связаны естественным образом.
Естественность образа хотя бы в том, что ты их передаешь параметром в один и тот же метод.
Или ты пишешь НЕЕСТЕСТВЕННЫЕ методы?
В нашем случае можно сделать так:
Взять_взаймы (Человек уКогоЗанять, деньги сколькоВзять, дата когдаОтдать)
{
...
}
...
Взять_взаймы (уКогоЗанять, сколькоВзять, когдаОтдать);
заменить на
class ЗаймИнфо
{
Человек УКогоЗанять;
деньги СколькоВзять;
дата КогдаОтдать;
}
...
Взять_Взаймы(ЗаймИнфо займИнфо)
{
...
}
...
ЗаймИнфо займ = new ЗаймИнфо();
займ.УКогоЗанять = человек1.деньги > человек2.деньги? человек1: человек2
займ.СколькоВзять = сколькоВзять;
займ.КогдаОтдать = когдаОтдать;
Взять_взаймы (займ);
А можно и оставить как есть. 3 параметра у метода — не очень страшно.
4 — со скрипом терпимо. А вот 5 и более — это п-ц.
За такой код можно и, как принято выражаться в этом бредовот треде, "по ушам схлопотать"
Но... пошел офтоп, ибо это уже про рефакторинг, а не про бред.
Но в бреду любой офтоп не страшен, поверьте
Бред — он для этого и придуматый, для офтопов как раз.
Кроме того, иницыатор треда и тут наедет по перерасходу лексических средств языка...
но он наверное никогда не писал реальных программ размера,
достаточного для того, чтобы понять, что не "минимальным количкесвом лексем" единым живет
реальное программирование.
И вообще хватит херней заниматься. В игнор тему. А то заболею и умру
от минимолексемной разновидности бредовой инфекции.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, moudrick, Вы писали:
M>>Единственный разумный вывод из твоей "работы" — ты против использования coding-style в обероне, а так же недолюбливаешь с-подобный синтаксис.
СГ>coding-style относится к количеству строчек кода, а основной смысл был про количество лексем. Не зависимо от того какой применять coding-style, количество используемых лексем всё равно больше чем реально необходимо. Смысл заметки в том, что: СИ-ОБРАЗНЫЙ СИНТАКСИС ИСПОЛЬЗУЕТ БОЛЬШЕ ЛЕКСЕМ ЧЕМ ЭТО РЕАЛЬНО НЕОБХОДИМО. Я специально для Вас заглавными буквами написал смысл. Запомните его. А то, понимаете-ли, прочитали сообщение, а смысла так и не поняли.
Дело не в количестве лексем, а в удобстве чтения. Меня, например, напрягает, что begin, end и пр. на вид практически неотличимы от идентификаторов (разве что цветом в редакторе).
Re: Синтаксический оверхед
От:
Аноним
Дата:
10.06.05 07:40
Оценка:
Ты это... убери что-ли "кфмн" из профайла.
Даже неудобно как-то читать подобные сообщения от человека со степенью.
А вообще нет... Лучше пиши дальше.
Начинай продвигать свои мысли в научные журналы
и пробуй выступать на научных конференциях.
Пусть не только RSDN повеселится
Здравствуйте, Socrat, Вы писали:
S>Меня, например, напрягает, что begin, end и пр. на вид практически неотличимы от идентификаторов (разве что цветом в редакторе).
Спешу сообщить, что упомянутый Вами синтаксис c {begin, end} уже устарел, и сделал это более чем двадцать пять лет тому назад.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, moudrick, Вы писали:
M>>Единственный разумный вывод из твоей "работы" — ты против использования coding-style в обероне, а так же недолюбливаешь с-подобный синтаксис.
СГ>coding-style относится к количеству строчек кода, а основной смысл был про количество лексем. Не зависимо от того какой применять coding-style, количество используемых лексем всё равно больше чем реально необходимо. Смысл заметки в том, что: СИ-ОБРАЗНЫЙ СИНТАКСИС ИСПОЛЬЗУЕТ БОЛЬШЕ ЛЕКСЕМ ЧЕМ ЭТО РЕАЛЬНО НЕОБХОДИМО. Я специально для Вас заглавными буквами написал смысл. Запомните его. А то, понимаете-ли, прочитали сообщение, а смысла так и не поняли.
Поняли, поняли. Но...
>Кроме того, иницыатор треда и тут наедет по перерасходу лексических средств языка... >но он наверное никогда не писал реальных программ размера, >достаточного для того, чтобы понять, что не "минимальным количкесвом лексем" единым живет >реальное программирование.
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Socrat, Вы писали:
S>>Меня, например, напрягает, что begin, end и пр. на вид практически неотличимы от идентификаторов (разве что цветом в редакторе).
СГ>Спешу сообщить, что упомянутый Вами синтаксис c {begin, end} уже устарел, и сделал это более чем двадцать пять лет тому назад.
СГ>Ошибка: СГ>http://www.rsdn.ru/Forum/Message.aspx?mid=1214592&only=1
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Socrat, Вы писали:
S>>По ушам схлопотать можно и без повода... А такой код тоже недопустим? S>>
S>>while (*str1++ = *str2++);
S>>
СГ>Оберон — есть "safe" язык со сборщиком мусора. Адресной арифметики там нет.
Там мы дождемся перевода данного или похожего кода на Оберон?
Здравствуйте, Сергей Губанов, Вы писали:
СГ>Здравствуйте, Socrat, Вы писали:
S>>Меня, например, напрягает, что begin, end и пр. на вид практически неотличимы от идентификаторов (разве что цветом в редакторе).
СГ>Спешу сообщить, что упомянутый Вами синтаксис c {begin, end} уже устарел, и сделал это более чем двадцать пять лет тому назад.
И что же используется в тех местах, где раньше был {begin, end}?
Пустая лексема?
Здравствуйте, Аноним, Вы писали:
А>Ты это... убери что-ли "кфмн" из профайла. А>Даже неудобно как-то читать подобные сообщения от человека со степенью.
А>А вообще нет... Лучше пиши дальше. А>Начинай продвигать свои мысли в научные журналы А>и пробуй выступать на научных конференциях. А>Пусть не только RSDN повеселится
Особенно будет весело, когда аффтар напишет ссылку на месагу в этом фолруме.
А тот кто (маловероятное событие) дойдет до списка литературы и зайдет по ссылке,
вот когда он повеселится. Грустно повеселится.
Зря я это написал... теперь он сюда ссылку не поставит.
Модератор, сотри месагу, пока аффтар не увидел
S>>Какой тут можно сделать объект?
M>Никакой. Здесь один параметр, который есть уже объект.
M>Здесь напрашивается другой паттерн рефакторинга — Выделение переменной (Introduce Explaining Variable) M>здесь
M>
А чем твой код отличается от моего? Только ввел дополнительную переменную и разделил на два оператора. В обероне будет еще хуже — там нет условных выражений.
П>>>А где здесь группа параметров? ИМХО один, но выбираемый в зависимости от условия.
S>>Ну, можно еще добавить парочку... Например, сколько взять, когда отдать и т.д.
M>Вот они то как раз и связаны естественным образом. M>Естественность образа хотя бы в том, что ты их передаешь параметром в один и тот же метод. M>Или ты пишешь НЕЕСТЕСТВЕННЫЕ методы?
M>заменить на
M>
M>class ЗаймИнфо
M>{
M> Человек УКогоЗанять;
M> деньги СколькоВзять;
M> дата КогдаОтдать;
M>}
M>
Для вызова одной-единственной функции создавать дополнительный объект? Как говорится, все хорошо в меру.
M>А можно и оставить как есть. 3 параметра у метода — не очень страшно. M>4 — со скрипом терпимо. А вот 5 и более — это п-ц. M>За такой код можно и, как принято выражаться в этом бредовот треде, "по ушам схлопотать"
Согласен. Но я приводил тексты в качестве примера. Всегда можно придумать условия тестирования, когда то, что похуже выиграет у того, что получше. Этим автор топика и занимается.
M>Кроме того, иницыатор треда и тут наедет по перерасходу лексических средств языка... M>но он наверное никогда не писал реальных программ размера, M>достаточного для того, чтобы понять, что не "минимальным количкесвом лексем" единым живет M>реальное программирование.
Согласен. Все средства хороши на маленьких программах.