Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГЭ-2013-анн-130515.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.69 Mб
Скачать

5. Архитектура систем 38

5.1. Причины декомпозиции программы на модули (содержательные и технические аспекты). Декомпозиция как способ борьбы со сложностью 38

5.2. Модуль, его информационная закрытость. Интерфейс и реализация. Связность модуля, уровни связности 39

5.3. Сцепление модулей, уровни сцепления. Модели управления модульной системой 41

6. Программирование 42

6.1. Объектный подход к программированию. Объект и класс. Инкапсуляция, наследование, полиморфизм. Абстрактные и интерфейсные классы 42

6.2. Классы в современных системах программирования. Общие, собственные и защищенные области. Свойства, их назначение, описание и использование. Владелец и родитель класса 43

7. Формальные языки и методы трансляции 44

7.1. Право- и леволинейные грамматики. Регулярные (автоматные) грамматики. Регулярные множества и праволинейные грамматики 44

7.2. Автоматы с магазинной памятью (МП-автоматы). Детерминированные и недетерминированные МП-автоматы. Построение эквивалентного МП-автомата по КС-грамматике 44

7.3. Восходящий анализ КС-языков без возвратов. LR(k)-грамматики. Грамматики простого предшествования. Алгоритм «перенос-свертка» для грамматики простого предшествования 45

7.4. Алгоритмы удаления пустых и недостижимых символов в КС-грамматике. Нормальные формы КС-грамматик (Хомского и Грейбах). Устранение левой рекурсии в грамматике 45

7.5. Компиляторы и интерпретаторы. Архитектура компилятора. Фазы и этапы компиляции. Препроцессоры 46

7.6. Дерево вывода для КС-грамматик. Восходящий и нисходящий синтаксический анализ. Алгоритм нисходящего разбора с возвратами 47

7.7. Промежуточные представления программ: атрибутно-синтаксическое дерево, триадное представление, тетрады, обратная польская запись. Байт-коды внутреннего представления (Java-код, P-код и др.) 47

7.8. LL(k)-грамматики, соотношение классов LL(k). Множества FIRST(k) и FOLLOW(k) и их построение. Разделенная грамматика 48

7.9. Метод рекурсивного спуска построения синтаксического анализатора 48

7.10. Способы описания синтаксиса языков программирования. Диаграммы Вирта, расширенная форма Бэкуса-Наура 49

7.11. Работа с регулярными выражениями в языках программирования (C#, PHP). Описание типов XML-документов с помощью грамматики (DTD) 50

8. Методы распределения памяти и доступа к данным 51

8.1. Простые методы динамического распределения памяти: стек, дек, список блоков постоянной длины 51

Простейшее распределение памяти 51

Выделение памяти блоками постоянной длины 51

8.2. Методы динамического распределения памяти, основанные на списках блоков переменной длины 52

8.3. Методы доступа к данным, основанные на индексах: индексно-последовательный и индексно-произвольный 53

Индексные методы 53

Индексно-последовательный метод 53

Индексно-произвольный метод 54

8.4. Методы доступа к данным, основанные на инвертированных списках и битовых картах 55

Инвертированные списки 55

Битовые карты 55

8.5. Алгоритмы хеширования, основанные на методах деления, умножения и деления многочленов 56

Метод деления 56

Метод умножения 56

Деление многочленов 56

8.6. Алгоритмы разрешения коллизий в перемешанных таблицах, основанные на методах внешних и внутренних цепочек 57

Метод внешних цепочек 57

Метод внутренних цепочек 57