![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
Может кто слышал по подробней, что задумали учителя и наставники ->"Oslo"
А то ещё завтра учить надо будет Это сообщение отредактировал(а) SKrivosein - 19.3.2009, 06:02 |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
Надо будет, но завтра...
Это, судя по всему, задумка для нового проблемно-ориентированного языка... Некоторые прочат таким языкам большое будущее... -------------------- СУВ, Partizan. |
|||
|
||||
| SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: 4 Всего: 8 |
Я так понимаю, это они хотят cильно продвинутый UML от Microsofta сделать
Это сообщение отредактировал(а) SKrivosein - 19.3.2009, 16:18 |
|||
|
||||
| diadiavova |
|
||||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Посмотрел я это осло, немного почитал, и понял - ВЕСЧ. Скачал, сейчас разбираюсь.
Насколько я понял, это платформа для создания таких языков. С асмим M я ещё не разбирался, но в SDK входит язык MGrammar. С ним я позанимался. Язык простой и понятный служит для описания грамматики языков. В SDK входят библиотеки, с помощью которых можно быстро построить дерево из кода написанного на языке, описанном при помощи MGrammar. Приведу пример того, что уже намутил Код написанный на самом MGrammar.
Грамматика описывает математические выражения, включающие 4 арифметических оператора, числа, переменные и функции. Для примра возьмём выражение AnyFunc(x + 3*cos(y), 2, 3.4e-5, sin(z)). Грамматика генерирует из этого выражения следующее дерево
Думаю: написать "ручками" парсер таких выражений было бы намного сложнее, а про изменение я вообще молчу. А здесь добавить, например, оператор возведения в степень - пара строчек. По-моему - совсем не дурственно. Это сообщение отредактировал(а) diadiavova - 21.3.2009, 18:12 -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
||||||
|
|||||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
diadiavova, насколько я понял из этого всего - на входе задаём грамматику языка и выражение, а на выходе имеем дерево разбора?
-------------------- СУВ, Partizan. |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Partizan, точно. Платформа предназначена для создания проблемно-ориентированных языков, а язык MGrammar - позволяет описывать их грамматику. Судя по всему сам M описывает собственно область на которую ориентирован этот язык. Как оно между собой взаимодействует - я пока не понял.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
diadiavova, довольно интересная вещица...
-------------------- СУВ, Partizan. |
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Расскажите по-подробней плз, где такую штуку можно применять
-------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
archeg, о какой штуке речь? О предметно-ориентированных языках, технологиях их создания или, конкретно, языках, описывающих грамматики?
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Вообще имел ввиду именно языки, которые описывают грамматику. Непонятно где было бы удобно его использовать) Под проблемно-ориентированым языком я понял язык который просто ориентирован на конкретно решаемую задачу. Как например язык матЛаба или Хтмл. Вообще каждый язык можно считать ориентированым под конкретную задачу -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Языки, описывающие грамматику, используются очень широко, как средство быстрой разработки компьютерных языков. Создание парсера "ручками" - задача достаточно трудоёмкая. Она включает в себя написание большого количества хоть и не особенно сложного, но при этом сильно запутанного кода. Написание изменение и отладка такого кода - жуткий геморрой. В то же время, структуру языка описать совсем не сложно, и мало того, код разбирающий текст в соответствии с определённой структурой - достаточно стандартен. Поэтому для создания программ, в которых реализуется разбор какого-нибудь языка, используются грамматики. По сути грамматика тоже язык программирования, только более высокого уровня чем то, к чему мы привыкли (декларативная модель).
Правильно понял, но там есть нюансы. Благодаря тому, что такие языки не пытаются охватить всё, они, обычно имеют простую структуру, кроме того, они , как правило, тоже декларативны, что позволяет описать конкретную задачу, а не способ её реализации. Это не обязательно полноценный язык. На самом деле с такими языками приходится иметь дело постоянно, даже когда запрос в гуголь вводишь, это уже язык, который разбирается и интерпретируется. Туда же можно отнести и язык регулярных выражений и ещё кучу всего. В SDK для Visual Studio есть инструменты для разработки таких языков, встраиваимых в последствии в студию. Там есть специальный язык для их описания и в самой студии такие языки присутствуют(диаграмма классов, например), они в основном построены на XML. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 31 Всего: 142 |
Кстати в википедии(английской) по этому поводу хорошая статья с массой полезных ссылок по теме
http://en.wikipedia.org/wiki/Domain-specific_language. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
Кстати, вот статья в последнем выпуске MSDN Magazine: http://msdn.microsoft.com/ru-ru/magazine/dd419662.aspx. МС наконец-то сделал шаг от кодогенерации по модели до полноценных DSL
|
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
PashaPash, ссылка битая
-------------------- СУВ, Partizan. |
|||
|
||||
| PashaPash |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
Partizan, толкьо что кликнул - живая. иди через гугл :(
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |