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

Содержание

Слайд 2

Расширение языков

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

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

Слайд 3

syntax Sql;
string personName = “Иван”;
SqlQuery q = sql(select count(*)
from Persons
where

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

Пример

Слайд 4

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

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

Что это даёт?

Слайд 5

S
Q
L

S
Q
L

Трансляция

исходные
коды

лексический
анализатор

поток
лексем

синтаксический
анализатор

внутреннее
представление


исполняемый
файл

расширяемый
лексический
анализатор

S
Q
L

расширяемый
синтаксический
анализатор


syntax Sql;

B

S Q L S Q L Трансляция исходные коды лексический анализатор поток
E G I N
E N D

«BEGIN»
«END»

Слайд 6

Лексический анализатор

Классические способы построения:
На базе регулярных выражений и конечных автоматов (LEX)

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

Слайд 7

Гибкая динамическая настройка лексического анализатора
Добавлении нового типа лексем → конфликт с добавленными

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

Расширяемый ЛА

Особенности:

Слайд 8

Синтаксический анализатор

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

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

Слайд 9

Синтаксический анализатор Совместимость расширения

исходный
синтаксический
анализатор

расширенный
синтаксический
анализатор

исходные
коды
программы
(лексемы)

внутреннее
представление

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

Слайд 10

Синтаксический анализатор Расширение

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

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

Слайд 11

Практические результаты

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

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

Слайд 12

ВЫВОДЫ

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

ВЫВОДЫ Языки программирования с расширяемым синтаксисом являются практически реализуемыми! За этим подходом будущее!?..
Имя файла: ЯЗЫКИ-ПРОГРАММИРОВАНИЯ-С-РАСШИРЯЕМЫМ-СИНТАКСИСОМ.pptx
Количество просмотров: 130
Количество скачиваний: 0