ЯЗЫКИ ПРОГРАММИРОВАНИЯ С РАСШИРЯЕМЫМ СИНТАКСИСОМ презентация

Расширение языков Классические способы расширения: Библиотеки функций (Pascal, С, …) Расширение типов (ООП) В данной работе: Расширение синтаксиса

Слайд 1ЯЗЫКИ ПРОГРАММИРОВАНИЯ С РАСШИРЯЕМЫМ СИНТАКСИСОМ
П.В. Егоров
Екатеринбург,
Июнь 2006


Слайд 2Расширение языков
Классические способы расширения:
Библиотеки функций (Pascal, С, …)
Расширение типов (ООП)

В данной

работе:
Расширение синтаксиса


Слайд 3syntax 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 →T1→ G2 →…→Tn→ Gn
Каждое преобразование сохраняет совместимость
Система безопасных преобразований

Слайд 11Практические результаты
Реализованы (на языке Java):
Расширяемый «подглядывающий» ЛА
Расширяемый предсказывающий LL(1) синтаксический анализатор
Для

модельного языка Pascal-S разработана грамматика ядра и ряд его независимых расширений

Слайд 12ВЫВОДЫ
Языки программирования с расширяемым синтаксисом являются практически реализуемыми!

За этим подходом будущее!?..


Слайд 13Вопросы?


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика