
- •Гуманитарная Академия Дистанционное образование
- •Оглавление
- •Дидактический план
- •Литература
- •Перечень компетенций
- •Тематический обзор
- •1 Понятие системы программирования
- •1.1 Классификация систем программирования
- •1.2 Средства автоматизированной разработки программ
- •1.3 Пакеты прикладных программ
- •1.4 Объектно-ориентированные системы программирования
- •2 Основные концепции трансляторов
- •2.1 Введение в методы трансляции
- •2.2 Разновидности языкового процессора
- •2.3 Компиляторы как класс программного обеспечения
- •2.4 Среда разработки компилятора
- •2.5 Упрощенная модель компилятора
- •2.6 Лексический анализ
- •2.7 Синтаксический анализ
- •2.8 Семантический анализ
- •2.9 Конечный автомат
- •2.10 Контексно-свободная грамматика
- •2.11 Атрибутные транслирующие грамматики
- •2.12 Генерация кода
- •2.13 Распределение памяти
- •3 Редактор связей
- •3.1 Управляющий язык редактора связей
- •3.2 Предложения определения секций
- •3.3 Спецификации файлов
- •3.4 Выходная секция
- •3.5 Создание и определение имен при редактировании связей
- •3.6 Размещение секций в именованных областях памяти
- •3.7 Инициализация пустот и секций .Bss
- •3.8 Определение точки входа
- •3.9 Библиотеки объектных файлов
- •3.10 Алгоритм размещения
- •3.11 Инкрементальное редактирование связей
- •3.12 Синтаксис управляющего языка редактора связей
- •4 Отладчик
- •4.1 Отладчик Turbo Debugger
- •4.2 Отладчик Турбо Паскаль
- •4.3 Отладка программ в системе Delphi 7
- •Задания для самостоятельной работы
- •Тренинг компетенций
- •Глоссарий
- •Системное программное обеспечение (курс 1) юнита 2
Задания для самостоятельной работы
1. Опишите назначение, возможности и классификация систем программирования:
2. Опишите пакеты прикладных программ:
3. Дайте определение объектно-ориентированным системам программирования:
4. Опишите процесс компиляции:
5. Опишите методы определения языков программирования в процессе компиляции:
6. Дайте определение понятия и типов грамматик для определения языков программирования:
7. Опишите генерацию и оптимизацию машинно-независимого кода:
8. Опишите распределение памяти в процессе компиляции:
9. Дайте определение отладчикам:
10. Опишите редактор связей:
Тренинг компетенций
1 Компетенция № 1. Средства автоматизированной разработки программ
1.1 Пример решения типовой задачи
Условие
Общие принципы, используемые при разработке программ.
Решение
№ п/п |
Этап (шаг) алгоритма |
Конкретное действие в соответствии с алгоритмом |
1 |
Частотный принцип |
Выделение в алгоритмах и в обрабатываемых структурах действий и данных по частоте использования
|
2 |
Принцип функциональной избирательности |
Проектирование программного обеспечения, объем которого превосходит имеющийся объем оперативной памяти
|
3 |
Принцип генерируемости |
Представление программного обеспечения, кото-рое позволяет осуществлять настройку на конк-ретную конфигурацию технических средств, круг решаемых проблем, условия работы пользователя |
4 |
Принцип функциональной избыточности |
Проведение одной и той же работы (функции) различными средствами |
5 |
Принцип «умолчания» |
Хранение в системе базовых описаний структур, модулей, конфигураций оборудования и данных, определяющих условия работы с программой |
1.2 Задания для самостоятельной работы
1.2.1 Задача
Общесистемные принципы разработки программ.
1.2.2 Задача
Основные виды совместного доступа к ресурсам.
1.2.3 Задача
Совместное использование объектов с несколькими приложениями.
2 Компетенция № 2. Пакеты прикладных программ
2.1 Пример решения типовой задачи
Условие
Классификация пакетов прикладных программ по функционально-организационному признаку.
Решение
№ п/п |
Этап (шаг) алгоритма |
Конкретное действие в соответствии с алгоритмом |
1 |
Проблемно-ориентированные пакеты прикладных программ |
Автоматизированный бухгалтерский учет, управ-ления персоналом, управления производством, банковские информационные системы |
2 |
Пакеты прикладных программ автоматизированного проектирования |
Поддержка работы конструкторов и технологов, связанной с разработкой чертежей, схем, графи-ческим моделированием и конструированием |
3 |
Программные системы мультимедиа |
Создание и использование аудио- и видеои-нформации для расширения информационного пространства пользователя |
4 |
Настольные издательские системы |
Обеспечение информационной технологии ком-пьютерной издательской деятельности |
5 |
Офисные пакеты |
Программы, обеспечивающие ориентационное управление деятельностью офиса |
2.2 Задания для самостоятельной работы
2.2.1 Задача
Пакеты прикладных программ общего назначения.
2.2.2 Задача
Проблемно-ориентированные пакеты прикладных программ.
2.2.3 Задача
Интеллектуальные системы.
3 Компетенция № 3. Объектно-ориентированное программирование
3.1 Пример решения типовой задачи
Условие
Особенности полиморфизма в ООП.
Решение
№ п/п |
Этап (шаг) алгоритма |
Конкретное действие в соответствии с алгоритмом |
1 |
Чистый полиморфизм |
Один код функции по-разному интерпретируется в зависимости от типа аргумента |
2 |
Простой полиморфизм |
Определение конкретного метода типом объекта при компиляции программы (раннее связывание) |
3 |
Сложный полиморфизм |
Определение конкретного метода типом объекта при выполнении программы (позднее связывание) |
4 |
Обобщенные функции или шаблоны |
Реализация в языке параметризованных классов, параметрами которых являются типы аргументов методов класса |
5 |
Переопределение |
Задание различных реализаций одноименных методов в иерархии классов |
6 |
Перегрузка |
Многократное использование имени функции в раз-ных местах программы; определение типами аргу-ментов или областью видимости нужной функции |
3.2 Задания для самостоятельной работы
3.2.1 Задача
Особенности инкапсуляции в ООП.
3.2.2 Задача
Особенности наследования в ООП.
3.2.3 Задача
Особенности композиции и наполнения в ООП.
4 Компетенция № 4. Основные концепции трансляторов
4.1 Пример решения типовой задачи
Условие
Инструменты для создания компиляторов.
Решение
№ п/п |
Этап (шаг) алгоритма |
Конкретное действие в соответствии с алгоритмом |
1 |
Генераторы синтаксических ана-лизаторов |
Разработка синтаксических анализаторов по входной информации, основанной на контекстно-свободной грамматике |
2 |
Генераторы сканеров |
Генерация лексических анализаторов с использованием спецификаций, построенных на регулярных выражениях |
3 |
Средства синтаксически управ-ляемой трансляции |
Создание наборов программ прохода по дереву разбора и генерации промежуточного кода |
4 |
Автоматические генераторы кода |
Получение набора правил, указывающих способ трансляции каждой операции промежуточного языка в определенный машинный язык |
5 |
Средства работы с потоком дан-ных |
Сбор и анализ информации о том, каким образом значения передаются из одной части программы в другую |
4.2 Задания для самостоятельной работы
4.2.1 Задача
Лексический анализ – этап компиляции.
4.2.2 Задача
Синтаксический анализ – этап компиляции.
4.2.3 Задача
Семантический анализ – этап компиляции.
5 Компетенция № 5. Редактор связей
5.1 Пример решения типовой задачи
Условие
Управляющий язык редактора связей.
Решение
№ п/п |
Этап (шаг) алгоритма |
Конкретное действие в соответствии с алгоритмом |
1 |
Выражения |
Использование глобальных имен, констант и операций |
2 |
Оператор присваивания |
Определение внешних имен и связывание их с определенными адресами |
3 |
Предложение MEMORY |
Указание общего размера виртуальной памяти целевого компьютера |
4 |
Предложение SECTIONS |
Указания способа комбинирования входных секций и размещения выходных секций |
5 |
Операторы присваивания ld(1) |
Получение имени значения, которое вычисляется при редактировании связей |
6 |
Команда ar(1) |
Создание библиотеки из объектных файлов, генерируемых компиляторами |
5.2 Задания для самостоятельной работы
5.2.1 Задача
Создание и определение имен при редактировании связей.
5.2.2 Задача
Инкрементальное редактирование связей.
5.2.3 Задача
Синтаксис управляющего языка редактора связей.