'

ЯЗЫКИ ПРОГРАММИРОВАНИЯ С РАСШИРЯЕМЫМ СИНТАКСИСОМ

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

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


Слайд 2

syntax Sql; string personName = “Иван”; SqlQuery q = sql(select count(*) from Persons where name = $personName); int IvansCount = connection.Execute(q); Пример


Слайд 3

Удобство синтаксиса Проверки на этапе компиляции Возможность гибкой поддержки многих технологий и парадигм Что это даёт?


Слайд 4

S Q L S Q L Трансляция исходные коды лексический анализатор поток лексем синтаксический анализатор внутреннее представление … исполняемый файл расширяемый лексический анализатор S Q L расширяемый синтаксический анализатор … syntax Sql; B E G I N E N D «BEGIN» «END»


Слайд 5

Лексический анализатор Классические способы построения: На базе регулярных выражений и конечных автоматов (LEX) «Подглядывающий» ЛА


Слайд 6

Гибкая динамическая настройка лексического анализатора Добавлении нового типа лексем > конфликт с добавленными ранее лексемами Пример: “<=” – это одна лексема “<=” или две лексемы “<” и “=” Расширяемый ЛА Особенности:


Слайд 7

Синтаксический анализатор СА управляется формальной грамматикой Суть расширения – модификация формальной грамматики Как же её модифицировать?


Слайд 8

Синтаксический анализатор Совместимость расширения исходный синтаксический анализатор расширенный синтаксический анализатор исходные коды программы (лексемы) внутреннее представление


Слайд 9

Синтаксический анализатор Расширение Расширение – последовательность преобразований грамматики G1 >T1> G2 >…>Tn> Gn Каждое преобразование сохраняет совместимость Система безопасных преобразований


Слайд 10

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


Слайд 11

ВЫВОДЫ Языки программирования с расширяемым синтаксисом являются практически реализуемыми! За этим подходом будущее!?..


Слайд 12

Вопросы?


×

HTML:





Ссылка: