Перейти к навигации Перейти к поиску
Синтаксис Определение формализма ( SDF ) является metasyntax используется для определения контекстно-свободных грамматик : то есть формальный способ описания формальных языков. Он может выражать весь спектр контекстно-свободных грамматик . Его текущая версия - SDF3. [1] анализатор и генератор синтаксических анализаторов для спецификаций SDF предусмотрены как часть свободного ASF + SDF Мета окружающей среды . Они работают с использованием SGLR ( анализатора GLR без сканирования ). Анализатор SDF выводит деревья синтаксического анализа или, в случае неоднозначности , анализирует леса.
Обзор [ править ]
Особенности SDF:
- Поддерживает весь спектр контекстно-свободных языков
- Позволяет модульное определение синтаксиса (грамматики могут импортировать подграмматики), что позволяет повторно использовать
- Поддерживает аннотации
Примеры [ править ]
В следующем примере определяется простой синтаксис логического выражения в SDF2:
модуль базовый / логическиеэкспорт сортирует Boolean контекстные начальные символы Booleanконтекстно-свободный синтаксис "истина" -> логическое значение "false" -> Boolean lhs: логическое "|" rhs: Boolean -> Boolean {left} lhs: Boolean "&" rhs: Boolean -> Boolean {left} "not" "(" Boolean ")" -> Boolean "(" Boolean ")" -> Boolean контекстно-свободные приоритеты Логическое "&" Логическое -> Логическое> Логическое "|" Логическое -> Логическое
Системы анализа и преобразования программ с использованием SDF [ править ]
- Мета-среда ASF + SDF предоставляет SDF
- RascalMPL
- Spoofax / IMP [1]
- Stratego / XT
- Страфунски
См. Также [ править ]
Ссылки [ править ]
Дальнейшее чтение [ править ]
- Краткое введение в SDF, Visser, J. & Scheerder, J. (2000) CWI
- SDF формализма определения синтаксиса, Марк ван ден Бранд, Пол Клинт, Юрген Винью (2007) CWI
Внешние ссылки [ править ]
- Комплект для развертывания грамматики
- SdfMetz вычисляет метрики для грамматик SDF
- Загрузите SDF с домашней страницы мета-среды ASF + SDF