- •1. Инструментальные средства разработки программного обеспечения сапр
- •2. Абстрактные типы данных. Примеры и варианты реализации.
- •3. Прямые методы сортировки массивов
- •4. Быстрая сортировка
- •5. Сортировка Шелла
- •6. Пирамидальная сортировка.
- •7. Алгоритмы внешней сортировки (вс)
- •8. Бинарный поиск и поиск по бинарному дереву
- •9. Алгоритмы обхода бинарных деревьев и их применение в трансляции программ и обработке данных
- •10. Машинное представление деревьев.
- •11. Машинное представление графов
- •12. Процедура поиска в глубину и ее применение в задачах обработки данных
- •13. Формальные грамматики и языки. Классификация грамматик.
- •14. Синтаксические диаграммы
- •15. Фазы трансляции программ и варианты организации языковых процессоров
- •16. Лексический анализ программ. Организация работы сканера
- •17. Нисходящий грамматический разбор с возвратом.
- •18 Восходящий грамматический разбор программ.
- •19 Формы внутреннего представления программ в языковых процессорах сапр.
- •2. Польская запись.
- •20 Семантический анализ. Примеры организации семантических программ.
- •21. Машинно-независимая оптимизация программ
- •22 . Генерация кода в языковых процессорах сапр (Генерация кода в компиляторах)
- •23 Машинно-зависимая оптимизация программ
- •24 Организация информационных таблиц транслятора с хеш-адресацией
- •25 Методы разрешения коллизий в информационных таблицах с хэш-адресацией
- •Метод повторного хеширования (рехеширование)
- •Линейное рехеширование
- •Случайное рехеширование
- •Квадратичное рехеширование
- •Рехеширование – сложение
- •Метод цепочек
14. Синтаксические диаграммы
Для описания синтаксиса языков САПР и их отдельных конструкций часто применяются спец. графические изображения, называемые синтаксическими диаграммами.
Каждая диаграмма определяет структуру одной грамматической конструкции и состоит из графических символов:
в прямоугольнике указываются нетерминальные символы (металингвистические переменные)
в окружностях - основные (терминальные) символы языка
Чтобы образовать правильную конструкцию, нужно пройти от входа до выхода. Для представления конструкций языка в виде синтаксических диаграмм предварительно их надо описать с помощью расширенной БНФ. Использование расширенной БНФ упрощает синтаксис языков по сравнению с БНФ и делает его более наглядным. Но надо знать, что любая конструкция в расш. БНФ может быть представлена в стандартной БНФ и наоборот.
В расш. БНФ используются дополнительные метасимволы:
{}; []; ().
Назначение доп. метасимволов:
1) {} – обозначают повторение некоторой цепочки языка произвольное число раз, включая 0-ое число. Если α – некоторая цепочка, αє(NUT)+ , то {α}~ε|α|αα|ααα|...
Пример: пусть дано описание в БНФ
<S>::=x<A>
<A>::=z|y<A>
Эквивалентное описание в расширенной БНФ имеет вид:
<S>::=x{y}z
2) [] – служат для обозначения необязательных элементов синтаксических конструкций: [α] – α присутствует или отсутствует ( ε|α )
РБНФ: <S>::= x[y]z
3) ( ) – позволяет задавать альтернативные элементы синтаксических конструкций. Они перечисляются в круглых скобках через | и при образовании цепочки выбирается строго один из них. БНФ: <S>::=xyz|xwz|xuz
РБНФ: <S>::=x(y|w|u)z
xyz xwz xuz
М
А
1 . Каждый нетерминальный символ в
терминальный
– в
2
.
Металингвистическая формула, содержащая
в правой части перечисленные конструкции
представляется в виде:
<A>::=<B1><B2>...<Bn>
А
…
<A>::=b1b2bn>
3. Альтернативный вариант построения конструкций:
<A>::=<B1>|<B2>|...|<Bn> <A>::=b1|b2|...|bn
А
4. Произвольное количество повторений:
<A>::={<B>} <A>::={b}
A
5. Необязательный элемент конструкции:
<A>::=[<B>] <A>::=[b]
Пример 1:
Описание идентификаторов.
БНФ:
<Идент-р>::=< буква >|< Идент-р >< буква >|< Идент-р ><цифра>
РБНФ:
<Идент-р>::=< буква >{< буква >|<цифра>}
2. Описание целых десятичных констант:
БНФ:
<целое>::=<целое без знака>|<знак>< целое без знака>
< целое без знака> ::= <цифра>|<цел. без знака><цифра>
<знак>::=+|-
<цифра>::=0|1|...|9
РБНФ:
<целое>::=[знак>]<целое без знака>
< целое без знака> ::= <цифра>{<цифра>}
<знак>::=[+|-]
з
нак
<целое>::=[+|-]< цифра >{< цифра >}
<цифра>::=0|1|...|9
