- •Этапы жизненного цикла программного продукта
- •Состав и схема функционирования классической системы программирования
- •Типы трансляторов, особенности интерпретаторов и компиляторов
- •Общая схема работы компилятора
- •Определение порождающей грамматики
- •Определение языка, порождаемого грамматикой
- •Определение типов грамматики и языков по Хомскому
- •Соотношения между типами грамматик
- •Соотношения между типами языков
- •Определение неоднозначности грамматики и языка
- •Определение недостижимых и бесполезных символов, определение приведенной грамматики
- •Определение детерминированного конечного автомата (ка)
- •Диаграмма состояний (дс) для заданной леволинейной регулярной грамматики. Построение дс
- •Определение недетерминированного конечного автомата
- •Алгоритм построения детерминированного конечного автомата по нка
- •Задачи лексического анализа
- •Организация классов таблиц лексического анализатора
- •Метод рекурсивного спуска: назначение, семантика процедур рекурсивного спуска
- •Достаточные условия применимости метода рекурсивного спуска
- •Расширение класса грамматик, к которым применим метод рекурсивного спуска (проблемы преобразования, эквивалентность предлагаемых преобразований)
- •Задачи семантического анализа
- •Свойства языка внутреннего представления программы, примеры таких языков
- •Машинно-независимая оптимизация. Основные оптимизирующие преобразования
- •Машинно-зависимая оптимизация. Основные оптимизирующие преобразования
- •Интегрированная среда разработки (иср)
- •Основные функции редактора текста в рамках иср
- •Основные функции отладчика в рамках иср
- •Назначение и функционирование редактора связей. Загрузчик
- •Библиотеки. Основные типы библиотек
- •Критерии проектирования стандартных библиотек
- •Stl: контейнеры, итераторы, алгоритмы, аллокаторы. Шаблоны vector и list
Основные функции отладчика в рамках иср
Пошаговое выполнение программы (шаг = строка, с трассировкой внутри вызываемой функции или без нее)
Выполнение программы до строки, в которой в редакторе стоит курсор
Выделение выполняемой строки в данный момент
Приостановка выполнения программы
Можно запросить значение переменной
Можно заказать вычисление некоторого выражения
Можно изменить значение переменной и продолжить выполнение программы
Расставить/снять точки останова, которые визуализируются в текстовом редакторе
Вся информация должна выдаваться в терминах исходной программы
Назначение и функционирование редактора связей. Загрузчик
Он должен разрешить межмодульные связи (для объектных файлов, порождаемых компилятором при раздельной трансляции модулей, составляющих программу)
Должен связать объектные файлы, порожденные компилятором, и библиотечные файлы, входящие в состав системы программирования (для статически связываемых библиотек)
Загрузчик обеспечивает подготовку готовой программы к выполнению, обрабатывают ресурсы, полученные с выхода компиляторов. Модуль, выполняющий преобразование относительных адресов в абсолютные непосредственно в момент запуска программы на выполнение.
Библиотеки. Основные типы библиотек
Библиотеки функций (определяют возможности системы, различают библиотеки для языков программирования и библиотеки для решения задач в конкретной проблемной области, представляют собой откомпилированные объектные модули)
Библиотеки классов (все ее классы должны быть написаны на том же ЯП, на котором пишется программа, различают конкретные классы, абстрактные классы, шаблоны классов, включаются в программу на этапе компиляции)
Библиотеки компонент (это готовые откомпилированные программные модули, предназначенные для использования в качестве составной части программы, и которыми можно манипулировать во время разработки программы, компоненты бывают локальные и распределенные; объявление и реализация интерфейса)
Критерии проектирования стандартных библиотек
Общезначимость содержимого
Эффективность
Безопасность
Завершенность
Сочетаемость с базовыми типами данных
Должна служить фундаментом для создания других библиотек
Stl: контейнеры, итераторы, алгоритмы, аллокаторы. Шаблоны vector и list