Параллельное фригатостроение.

Jan 15, 2010 23:04

Я тут сегодня закончил ваять грамматику на бизоне (свободная версия Yacc) для новой реинкарнации PARUS, которая называется Frigate. Основную мотивацию почему это было затеяно можно почитать вот в этой статье на конференцию hpc 2009, имевшую место во Владимире, и в презентации там же. Следующий этап будет расстановка действий в грамматику, для того, чтобы всё это запихать в C++ каласс под назанием Graph.

Хочу спазать спасибо Жене Сыромятникову и Гоше Курячему за помощь в написании регулярных выражений для flex (той части, которая отвечает за лексический анализ). Ну и странная же это вещь Gnu bison, для того, чтобы им воспользоваться приходится применять мелкие хаки, такие как подсовывание своей функции вместо стандартной вызываемой yyerror, поскольку со стандартным прототипом она не умеет выводить информацию о позиции в файле, где произошла ошибка. И вообще с позициями у них там как-то всё сложно.

В общем результат моих страданий можно посмотреть вот здесь:
http://frigate.svn.sourceforge.net/viewvc/frigate/trunk/frigate/example.grf?view=markup - некоторый очень исскуственный пример графа. Только для того, чтобы проверить работоспособность сгенерированного компилятора.

http://frigate.svn.sourceforge.net/viewvc/frigate/trunk/frigate/graph_file_format.l?view=markup - файл для flex. Те самые регулярные выражения. если кто скажет как это всё можно упростить не очень усложняя код встраиваемый в действия правил в синтаксическом анализаторе буду очень благодарен.

http://frigate.svn.sourceforge.net/viewvc/frigate/trunk/frigate/graph_file_format.ypp?view=markup - КС грамматика для бизона. Там кое-где вставлены действия, но они тривиальные, в духе напечатать что мы вообще сюда добрались.

Буду благодарен любому конструктивному отзыву на сам язык. Может что поменять (не меняя концепции) к лучшему, чтобы стало приятней для чеолвека программировать. Поскольку я не претендую, на то что я написал грамматику наилучшим образом, соответственно конструктивные предложения в виде патчей к указанным файлам приветствуются. А если кто хочет стать одним из разработчиков Frigate под моим чутким (ну или не очень) руководстве (в том числе научном) - добро пожаловать.

программирование, наука

Previous post Next post
Up