Содержание
- 2. Расширение языков Классические способы расширения: Библиотеки функций (Pascal, С, …) Расширение типов (ООП) В данной работе:
- 3. syntax Sql; string personName = “Иван”; SqlQuery q = sql(select count(*) from Persons where name =
- 4. Удобство синтаксиса Проверки на этапе компиляции Возможность гибкой поддержки многих технологий и парадигм Что это даёт?
- 5. S Q L S Q L Трансляция исходные коды лексический анализатор поток лексем синтаксический анализатор внутреннее
- 6. Лексический анализатор Классические способы построения: На базе регулярных выражений и конечных автоматов (LEX) «Подглядывающий» ЛА
- 7. Гибкая динамическая настройка лексического анализатора Добавлении нового типа лексем → конфликт с добавленными ранее лексемами Пример:
- 8. Синтаксический анализатор СА управляется формальной грамматикой Суть расширения – модификация формальной грамматики Как же её модифицировать?
- 9. Синтаксический анализатор Совместимость расширения исходный синтаксический анализатор расширенный синтаксический анализатор исходные коды программы (лексемы) внутреннее представление
- 10. Синтаксический анализатор Расширение Расширение – последовательность преобразований грамматики G1 →T1→ G2 →…→Tn→ Gn Каждое преобразование сохраняет
- 11. Практические результаты Реализованы (на языке Java): Расширяемый «подглядывающий» ЛА Расширяемый предсказывающий LL(1) синтаксический анализатор Для модельного
- 12. ВЫВОДЫ Языки программирования с расширяемым синтаксисом являются практически реализуемыми! За этим подходом будущее!?..
- 14. Скачать презентацию