Формализм определения синтаксиса
( Формализм определения синтаксиса SDF ) — это метасинтаксис, используемый для определения контекстно-свободных грамматик : то есть формальный способ описания формальных языков. Он может выражать весь спектр контекстно-свободных грамматик . Его текущая версия — SDF3. [1] и Синтаксический анализатор генератор синтаксических анализаторов для спецификаций SDF предоставляются как часть бесплатной мета-среды ASF+SDF . Они работают с использованием SGLR ( без сканирования анализатор GLR ). Анализатор SDF выводит деревья разбора или, в случае неоднозначностей , анализ леса.
Обзор
[ редактировать ]Особенности СДФ:
- Поддерживает весь спектр контекстно-свободных языков.
- Позволяет определять модульные синтаксисы (грамматики могут импортировать подграмматики), что позволяет повторно использовать
- Поддерживает аннотации
Примеры
[ редактировать ]В следующем примере определяется простой синтаксис логического выражения в SDF2:
module basic/Booleans exports sorts Boolean context-free start-symbols Boolean context-free syntax "true" -> Boolean "false" -> Boolean lhs:Boolean "|" rhs:Boolean -> Boolean {left} lhs:Boolean "&" rhs:Boolean -> Boolean {left} "not" "(" Boolean ")" -> Boolean "(" Boolean ")" -> Boolean context-free priorities Boolean "&" Boolean -> Boolean > Boolean "|" Boolean -> Boolean
Системы анализа и трансформации программ с использованием SDF
[ редактировать ]- Мета-среда ASF+SDF предоставляет SDF.
- МошенникMPL
- Спуфакс/ИМП [1]
- Стратего/XT
- Страфунский
См. также
[ редактировать ]Ссылки
[ редактировать ]Дальнейшее чтение
[ редактировать ]- Краткое введение в SDF, Виссер, Дж. и Шеердер, Дж. (2000) CWI
- Формализм определения синтаксиса SDF, Марк ван Ден Бранд, Пол Клинт, Юрген Винью (2007) CWI
Внешние ссылки
[ редактировать ]- Комплект развертывания грамматики
- SdfMetz вычисляет метрики для грамматик SDF
- Загрузите SDF с домашней страницы мета-среды ASF+SDF.