Что делает Ometa особенным? [закрытый]

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

21
задан Erik Kaplun 2 August 2012 в 00:00
поделиться

2 ответа

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

От его наследия ШТЕПСЕЛЯ это получает отслеживание в обратном порядке и неограниченное предвидение. Memoization предыдущих результатов синтаксического анализа допускает линейные времена синтаксического анализа (почти все время (*)).

производство Высшего порядка позволяет тому легко осуществлять рефакторинг грамматику.

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

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

12
ответ дан Frank Shearar 29 November 2019 в 21:57
поделиться

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

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

7
ответ дан TraumaPony 29 November 2019 в 21:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: