СИНТАКСИС
Разработчик(и) | ИНРИА |
---|---|
Тип | Генератор |
Лицензия | CeCILL |
Веб-сайт | источники |
В информатике лексических SYNTAX — это система, используемая для создания и синтаксических анализаторов ( парсеров ) (как детерминированных, так и недетерминированных) для всех видов контекстно-свободных грамматик (CFG), а также некоторых классов контекстных грамматик. [ нужна ссылка ] Он разрабатывался в INRIA во Франции в течение нескольких десятилетий, в основном Пьером Булье, но стал свободным программным обеспечением только с 2007 года. SYNTAX распространяется по лицензии CeCILL . [ нужна ссылка ]
Контекстно-свободный анализ
[ редактировать ]SYNTAX обрабатывает большинство классов детерминированных (однозначных) грамматик ( LR , LALR , RLR), а также общие контекстно-свободные грамматики. Детерминированная версия использовалась в операционных контекстах (например, Ada [1] ), и в настоящее время используется как в области компиляции, так и в области компиляции . [2] К недетерминированным функциям относится генератор синтаксического анализатора Эрли, используемый для обработки естественного языка . [3] Синтаксические анализаторы, созданные SYNTAX, включают в себя мощные механизмы восстановления ошибок и позволяют выполнять семантические действия и оценку атрибутов в абстрактном дереве или в общем лесу синтаксического анализа.
Контекстный анализ
[ редактировать ]Текущая версия SYNTAX (бета-версия 6.0) включает также генераторы синтаксических анализаторов для других формализмов, используемых для обработки естественного языка, а также для биоинформатики. Эти формализмы представляют собой контекстно-зависимые формализмы ( TAG , RCG или формализмы, которые полагаются на контекстно-свободные грамматики и расширяются благодаря оценке атрибутов, в частности, для обработки естественного языка ( LFG ).
Восстановление ошибок
[ редактировать ]Приятной особенностью SYNTAX (по сравнению с Lex / Yacc ) является встроенный алгоритм. [4] для автоматического восстановления лексических и синтаксических ошибок путем удаления лишних символов или токенов, вставки отсутствующих символов или токенов, перестановки символов или токенов и т. д. Этот алгоритм имеет поведение по умолчанию, которое можно изменить, предоставив собственный набор правил восстановления, адаптированных к язык, для которого созданы лексер и парсер.
Ссылки
[ редактировать ]- ^ Первый инструмент-транслятор для языка ADA был разработан с помощью SYNTAX Пьером Булье и другими, как описано на этой странице, посвященной истории ADA . См. также Пьера Булье и Кнута Рипкена. Создание компилятора Ada с использованием методов метакомпиляции. В Séminaires Langages et Traducteurs 1978–1981, страницы 99–140. ИНРИА, Рокенкур, Франция, 1981 г.
- ^ Например, командами VASY и CONVECS в INRIA , в частности для разработки CADP и Traian .
- ^ Например, в парсере SxLFG, первая версия которого описана в этой статье .
- ^ Пьер Булье и Мартен Журдан. Новая схема исправления и восстановления ошибок для лексического и синтаксического анализа . Наука компьютерного программирования 9 (3): 271-286 (1987).