Очень интересно. Но всё же поутру не очень понял, какие задачи призван решать R#? Совершенно серьёзно хотелось бы пару примеров или как-то попроще что ли объяснили "зачем"...
Здравствуйте, Сергей Выдров, Вы писали:
СВ>Безумству храбрых поем мы славу!..
Ага, вот именно храбрых. Народ вступает в конкуренцию с M$, причем на их же поле и на их условиях игры
Весь этот проект целиком зависит от доброй воли парней из Редмонда. Если они решат его похоронить, им будет достаточно внести в следующий стандарт C# какое-нибудь мелкое дополнение кардинально несовместимое с семантикой R#-а и всё рассыплется
А не кажется господам разработчикам, что они ставят телегу впереди лошади?
Может быть, чем заниматься написанием очередного клона C#, с последующим героическим расширением его синтаксиса с тем, чтобы добавить в него заявленные в манифесте фичи (кодогенераторы, трансляторы, xslt и т.п.), стоило бы начать именно с полноценного "универсального" парсера, а C# сделать его всего лишь одним из его модов? Очень сомневаюсь, что код сгенеренный CocoR-ом (хотя, я его не видел ) может служить хорошей основой для последующей сколько-нибудь серьезной модификации (если только полностью переписывать). К тому же синтаксис C# довольно плотен и может так получиться, что значительную часть времени, при расширении парсера, вам придется тратить на заботу о том, чтобы в нем что-нибудь не отвалить?
ЗЫ. Всё что я выше спросил следует воспринимать именно как вопрос (который меня очень интересует), а не попытку кого-нибудь оскорбить или поставить под сомнение умственные способности
Здравствуйте, Eugals, Вы писали:
E>стоило бы начать именно с полноценного "универсального" парсера, а C# сделать его всего лишь одним из его модов?
Универсальный парсер это миф. Если такой и сделать то он будет тормознутым и глючным.
E>Очень сомневаюсь, что код сгенеренный CocoR-ом (хотя, я его не видел ) может служить хорошей основой для последующей сколько-нибудь серьезной модификации (если только полностью переписывать).
Вот посмотри, а потом будешь выводы делать.
E> К тому же синтаксис C# довольно плотен
Чего простите?
E> и может так получиться, что значительную часть времени, при расширении парсера, вам придется тратить на заботу о том, чтобы в нем что-нибудь не отвалить?
То есть ты никогда не пользовался компиляторами компиляторов, так? Автогенеренный код никто не правит, правят описание грамматики. Грамматика описывается в EBNF.
E>ЗЫ. Всё что я выше спросил следует воспринимать именно как вопрос (который меня очень интересует), а не попытку кого-нибудь оскорбить или поставить под сомнение умственные способности
Ну тогда попробуй почитать про теорию формальных грамматик для начала. Объяснять подобное в рамках форума крайне тяжко.
Здравствуйте, Eugals, Вы писали:
E>Весь этот проект целиком зависит от доброй воли парней из Редмонда. Если они решат его похоронить, им будет достаточно внести в следующий стандарт C# какое-нибудь мелкое дополнение кардинально несовместимое с семантикой R#-а и всё рассыплется
Здравствуйте, AndrewVK, Вы писали:
E>>стоило бы начать именно с полноценного "универсального" парсера, а C# сделать его всего лишь одним из его модов? AVK>Универсальный парсер это миф. Если такой и сделать то он будет тормознутым и глючным.
Именно поэтому я и взял слово "универсальный" в кавычки , если не понятно, то можно заменить термин на "парсер допускающий достаточно единообразное и лаконичное описание большинства современных типовых языков программирования".
E>>Очень сомневаюсь, что код сгенеренный CocoR-ом (хотя, я его не видел ) может служить хорошей основой для последующей сколько-нибудь серьезной модификации (если только полностью переписывать). AVK>Вот посмотри, а потом будешь выводы делать.
А как же его посмотреть, если вы доступ к CVS (на чтение) закрыли?
E>> К тому же синтаксис C# довольно плотен E>> и может так получиться, что значительную часть времени, при расширении парсера, вам придется тратить на заботу о том, чтобы в нем что-нибудь не отвалить? AVK>То есть ты никогда не пользовался компиляторами компиляторов, так? Автогенеренный код никто не правит, правят описание грамматики. Грамматика описывается в EBNF.
Пользовался. Я именно про EBNF и говорю. Вот захотите вы добавить в язык какое-нибудь свой оператор (или даже просто ключевое слово) и придется перечитывать стандарт C#, на предмет того нельзя ли случайно такую же лексему получить комбинацией стандартных. А если попытаться добавить туда не просто оператор, а целую новую конструкцию (что-нибуть вроде "for <i> in <list> reverse" — наобум сказал), то вообще кирдык, это я и назвал "плотностью" синтаксиса
AVK>Ну тогда попробуй почитать про теорию формальных грамматик для начала. Объяснять подобное в рамках форума крайне тяжко.
Я и не просил
Здравствуйте, AndrewVK, Вы писали:
E>>Весь этот проект целиком зависит от доброй воли парней из Редмонда. Если они решат его похоронить, им будет достаточно внести в следующий стандарт C# какое-нибудь мелкое дополнение кардинально несовместимое с семантикой R#-а и всё рассыплется AVK>Например?
Например такое же ключевое слово, как и у вас, но означающее совсем другое. Да мало ли способор привести в негодность чужую грамматику, если ты имеешь возможность менять стандарт, который она обязалась поддерживать ...
> Например такое же ключевое слово, как и у вас, но означающее совсем другое. Да мало ли способор привести в негодность чужую грамматику, если ты имеешь возможность менять стандарт, который она обязалась поддерживать ...
Ну знаешь живут же как-то расширения стандартов других языков. Можно все "нестандартные" ключевые слова начинать с двойного подчеркивания, напр. "__gc"
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Ну знаешь живут же как-то расширения стандартов других языков. Можно все "нестандартные" ключевые слова начинать с двойного подчеркивания, напр. "__gc"
от карательных действий мелкософта это вряд ли спасет
...хотя, я вам желаю в этом деле успеха
честно
Здравствуйте, Eugals, Вы писали:
E>Именно поэтому я и взял слово "универсальный" в кавычки , если не понятно, то можно заменить термин на "парсер допускающий достаточно единообразное и лаконичное описание большинства современных типовых языков программирования".
И чем это отличается от Coco? Имеем на входе грамматику, на выходе парсер. Делать тоже самое в рантайме? Зачем?
AVK>>Вот посмотри, а потом будешь выводы делать. E>А как же его посмотреть, если вы доступ к CVS (на чтение) закрыли?
cocotools.sscli.net никто не закрыл.
AVK>>То есть ты никогда не пользовался компиляторами компиляторов, так? Автогенеренный код никто не правит, правят описание грамматики. Грамматика описывается в EBNF. E>Пользовался. Я именно про EBNF и говорю. Вот захотите вы добавить в язык какое-нибудь свой оператор (или даже просто ключевое слово) и придется перечитывать стандарт C#, на предмет того нельзя ли случайно такую же лексему получить комбинацией стандартных. А если попытаться добавить туда не просто оператор, а целую новую конструкцию (что-нибуть вроде "for <i> in <list> reverse" — наобум сказал), то вообще кирдык
Здравствуйте, AndrewVK, Вы писали:
AVK>Ты не прочитал внимательно описание проекта. Все расширения должны быть синтаксически совместимы с шарпом.
Его новые реализации МС выпускает (и будет выпускать) каждый год. Шарп — дольно капризная особа , вы может быть и хотите, чтобы ваши "расширения" хорошо с нею "стыковались", только вот захочет ли этого она...
Здравствуйте, Eugals, Вы писали:
AVK>>Ты не прочитал внимательно описание проекта. Все расширения должны быть синтаксически совместимы с шарпом. E>Его новые реализации МС выпускает (и будет выпускать) каждый год. Шарп — дольно капризная особа , вы может быть и хотите, чтобы ваши "расширения" хорошо с нею "стыковались", только вот захочет ли этого она...
В любом случае расширения МС будут стыковаться с предыдущими версиями шарпа, а значит и с нашими.
Здравствуйте, AndrewVK, Вы писали:
AVK>В любом случае расширения МС будут стыковаться с предыдущими версиями шарпа, а значит и с нашими.
Довольно спорный силлогизм
Здравствуйте, AndrewVK, Вы писали:
E>>Именно поэтому я и взял слово "универсальный" в кавычки , если не понятно, то можно заменить термин на "парсер допускающий достаточно единообразное и лаконичное описание большинства современных типовых языков программирования". AVK>И чем это отличается от Coco? Имеем на входе грамматику, на выходе парсер. Делать тоже самое в рантайме? Зачем?
Затем, что это, имхо, единственная не занятая на сегодня ниша, причем довольно многообещающая. В вашем манифесте упоминалось об автоматических трансляторах и об аналоге XSLT, а для этого удобна (читай: "единственно возможна") именно рантаймовая начинка парсера. Если этого не делать, то максимум чем может стать R#, это аналогом CocoR-а (или бизона) "только круче"...
или же просто очередным клоном C#, с несколько расширенным синтаксисом.
А на этом поле уже есть сильные (и продолжающие расти) игроки: те же самые кокор, бизон, шарп и хмл.
Это конечно всё моё дикое имхо, но гораздо песпективнее был бы транслятор позволяющий в одном коде объединять код написанный сразу на нескольких ("естественных" для каждой конкретной выполняемой задачи) языках, с возможностью программисту самому доопределять набор операторов и конструкций, поддерживаемых его классами!
Во, как загнул...
Здравствуйте, Eugals, Вы писали:
AVK>>И чем это отличается от Coco? Имеем на входе грамматику, на выходе парсер. Делать тоже самое в рантайме? Зачем? E>Затем, что это, имхо, единственная не занятая на сегодня ниша, причем довольно многообещающая.
Тут как раз недавно статейка была на эту тему. Вкратце — вот к примеру продажа мороженого на Аляске тоже незанятая ниша, никто не продает.
E> В вашем манифесте упоминалось об автоматических трансляторах и об аналоге XSLT, а для этого удобна (читай: "единственно возможна") именно рантаймовая начинка парсера.
Давай конкретно чем она удобна.
E> Если этого не делать, то максимум чем может стать R#, это аналогом CocoR-а (или бизона) "только круче"... E>или же просто очередным клоном C#, с несколько расширенным синтаксисом. E>А на этом поле уже есть сильные (и продолжающие расти) игроки: те же самые кокор, бизон, шарп и хмл.
Ты опять ничего не понял. R# это средство метапрограммирования, эдакие синтаксические макросы. Основное назначение — сложная универсальная кодогенерация. Универсальная, прошу обратить внимание. Одна из задач, которую планируется решить — АОП.
E>Это конечно всё моё дикое имхо, но гораздо песпективнее был бы транслятор позволяющий в одном коде объединять код написанный сразу на нескольких ("естественных" для каждой конкретной выполняемой задачи) языках, с возможностью программисту самому доопределять набор операторов и конструкций, поддерживаемых его классами!
Здравствуйте, Eugals, Вы писали:
E>Ага, вот именно храбрых. Народ вступает в конкуренцию с M$, причем на их же поле и на их условиях игры E>Весь этот проект целиком зависит от доброй воли парней из Редмонда. Если они решат его похоронить, им будет достаточно внести в следующий стандарт C# какое-нибудь мелкое дополнение кардинально несовместимое с семантикой R#-а и всё рассыплется
Я буду удовлетворен при любом стечении обстоятельств. Если МС реализует нечто подобное, будет просто замечательно.
Если МС начнет с нами конкурировать, то на следующий день о нас узнает пол мира. Тоже неплохой исход.
Если же МС даже не заметит нас, то мы получим то, что хотим, и будем использовать результата в дальнейший проектах. IT уже обещал переписать RSDN на R#.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Ну знаешь живут же как-то расширения стандартов других языков. Можно все "нестандартные" ключевые слова начинать с двойного подчеркивания, напр. "__gc"
Напомню, что пока нами не введено ни одного нового ключевого слова. И не планируется. В это восбтвенно и суть.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.