Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемcontest.ur.ru
1 ЯЗЫКИ ПРОГРАММИРОВАНИЯ С РАСШИРЯЕМЫМ СИНТАКСИСОМ П.В. Егоров Екатеринбург, Июнь 2006
2 Расширение языков Классические способы расширения: Библиотеки функций (Pascal, С, …) Расширение типов (ООП) В данной работе: Расширение синтаксиса
3 syntax Sql; string personName = Иван; SqlQuery q = sql(select count(*) from Persons where name = $personName); int IvansCount = connection.Execute(q); Пример
4 Удобство синтаксиса Проверки на этапе компиляции Возможность гибкой поддержки многих технологий и парадигм Что это даёт?
5 S Q L S Q L Трансляция исходные коды лексический анализатор поток лексем синтаксический анализатор внутреннее представление … исполняемый файл расширяемый лексический анализатор S Q L расширяемый синтаксический анализатор … syntax Sql; B E G I N E N D «BEGIN» «END»
6 Лексический анализатор Классические способы построения: На базе регулярных выражений и конечных автоматов (LEX) «Подглядывающий» ЛА
7 Гибкая динамическая настройка лексического анализатора Добавлении нового типа лексем конфликт с добавленными ранее лексемами Пример:
8 Синтаксический анализатор СА управляется формальной грамматикой Суть расширения – модификация формальной грамматики Как же её модифицировать?
9 Синтаксический анализатор Совместимость расширения исходный синтаксический анализатор расширенный синтаксический анализатор исходные коды программ ы (лексемы) исходные коды программ ы (лексемы) внутреннее представлени е внутреннее представлени е
10 Синтаксический анализатор Расширение Расширение – последовательность преобразований грамматики G1 T 1 G2 … T n Gn Каждое преобразование сохраняет совместимость Система безопасных преобразований
11 Практические результаты Реализованы (на языке Java): Расширяемый «подглядывающий» ЛА Расширяемый предсказывающий LL(1) синтаксический анализатор Для модельного языка Pascal-S разработана грамматика ядра и ряд его независимых расширений
12 ВЫВОДЫ Языки программирования с расширяемым синтаксисом являются практически реализуемыми! За этим подходом будущее!?..
13 Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.