Подтвердить что ты не робот

Что делает Ometa особенным?

Ometa - "новый объектно-ориентированный язык для сопоставления шаблонов". Я столкнулся с совпадением шаблонов на таких языках, как инструменты Oz, для анализа грамматик, таких как Lexx/Yacc или Pyparsing. Несмотря на то, что мы смотрим пример кода, читаем обсуждения и разговариваем с другом, я до сих пор не в состоянии понять, что делает Ometa особенным (или, по крайней мере, почему некоторые люди считают это). Любое объяснение?

4b9b3361

Ответ 1

Кроме того, самый важный для меня порт Squeak Ometa позволяет использовать леворекурсивные правила.

Из наследия PEG он получает обратную связь и неограниченное внимание. Воспоминание предыдущих результатов синтаксического анализа позволяет использовать время линейного разбора (почти все время (*)).

Производство более высокого порядка позволяет легко реорганизовать грамматику.

Эта статья - Патры Packrat могут поддерживать левую рекурсию - объясняют левые рекурсивные свойства.

(*) В разделе 5 статьи объясняется, что можно страдать от времени суперлинии, но эта проблема не проявляется в практических грамматиках.

Ответ 2

Это метаязык, из которого я могу сказать. Вы можете создавать новые языковые конструкции и создавать DSL; но наиболее убедительным является то, что вы можете подклассы существующих парсеров, чтобы расширить язык. Это все, что я могу вспомнить.

Я нашел это интересным: http://www.moserware.com/2008/06/ometa-who-what-when-where-why.html