Автор Тема: Сообщение о языке  (Прочитано 10219 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Сообщение о языка
« Ответ #15 : Июнь 07, 2012, 01:31:01 pm »
Только отсюда не совсем чётко видно, что разделяющая вертикальная черта определяет и порядок следования элементов CONST, TYPE, VAR.
А почему отсюда должна быть видна семантика этой вертикальной черты? Обычно это описывается в самом начале, когда описывается, что означают все эти фигурные и квадратные скобки, а так же и эта вертикальная черта.
Всем известно, что эта черта означает неопределённый порядок: CONST или TYPE или VAR в данном случае...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Сообщение о языка
« Ответ #16 : Июнь 07, 2012, 01:33:27 pm »
Кстати, харе батон крошить на Вирта! Это ж обсуждалась грамматика КП, а не Оберона.

Виртовы ученички обучены Виртом же, значит он виноват в их косяках!!! )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

DIzer

  • Гость
Re: Сообщение о языка
« Ответ #17 : Июнь 07, 2012, 01:45:52 pm »
Кстати, харе батон крошить на Вирта! Это ж обсуждалась грамматика КП, а не Оберона.

Виртовы ученички обучены Виртом же, значит он виноват в их косяках!!! )))
да нет в том что им "кушать" хочется виновато "приматное" происхождение  :)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Сообщение о языка
« Ответ #18 : Июнь 07, 2012, 04:55:14 pm »
Тут вот Вирта ругали, а я немного похвалю: у Вирта формальное описание грамматики уже приведено к такому виду, который удобен для реализации парсера (в том числе посредством ручного рекурсивного спуска, или через парсер-комбинаторы, тот же парсек например), в частности из грамматики убраны левые рекурсии. Это дико удобно, не нужно переформулировать грамматику перед реализацией, можно реализовывать сразу. Скажем если взять для сравнения грамматику языка Lua (которая меньше чем обероновская), то перед реализацией парсера придется пройтись по всей грамматике руками вылавливая левую рекурсию и заменяя её на правую (вводя дополнительные нетерминалы там и так далее). Вообще, у меня ощущение сложилось, что грамматика Lua ни разу не LL(k).

Таким образом грамматика языка Оберон ценна не тем, что она маленькая, а тем что она проектировалась с учетом того, что потом еще парсер писать надо будет. То есть она, по моему, даже LL(1), и при этом без левых рекурсий.

Замечу, что для прикладного программиста это конечно все не важно, более того, язык Оберон не изменился бы если бы в грамматике была левая рекурсия (при этом "арифметика синтаксиса" сталa бы лучше чем есть сейчас). Просто изменилась бы трудоемкость реализации утилит работающих с исходниками на Обероне.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Сообщение о языка
« Ответ #19 : Июнь 07, 2012, 04:57:48 pm »
C другой стороны конечно если ты реализовал парсер для Оберона, это еще не значит что ты умеешь писать парсеры даже для простых и маленьких языков, ибо бОльшую часть граблей Вирт из грамматики Оберона заботливо убрал. Таким образом реализация парсера Оберона не является достаточным упражнением по написанию парсеров в процессе обучения.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Сообщение о языка
« Ответ #20 : Июнь 08, 2012, 10:29:16 am »
Поправьте, пожалуйста, название темы. Опечатка вышла.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Сообщение о языка
« Ответ #21 : Июнь 08, 2012, 10:49:24 am »
Поправьте, пожалуйста, название темы. Опечатка вышла.
Название конечно поправил, но в ответах тема как была с ошибкой, так и останется.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"