|
Теория компиляторов
Карпов В.Э.(ктн., доцент, вице-президент Российской ассоциации искусственного интеллекта)
- Введение. Предмет курса и его связь со смежными дисциплинами.
- Архитектура ЭВМ. История развития вычислительной техники. Автоматически управляемые вычислительные машины.
- Организация памяти. Элементная база ЭВМ. Структура и принципы организации машин фон-неймановской архитектуры.
Современные тенденции развития вычислительной техники. Машины не-фон-Неймановской архитектуры. Параллельные машины. Нейрокомпьютеры.
Машины искусственного интеллекта.
- Основные понятия и определения. Терминология. Ассемблер и автокод. Логическая структура компилятора. Процесс компиляции.
Основные части компилятора Понятие синтаксического и семантического анализа. Многопроходные компиляторы.
- Формальные системы и языки программирования. Принципы описания и задания языков. Формальные грамматики.
- Иерархия Хомского. Регулярные и ОК-грамматики. Форма Бэкуса-Наура.
- Регулярные грамматики. Конечные автоматы. Формальное определение. Детерминированные и недетерминированные конечные автоматы
- Программирование сканера. Регулярные выражения и конечные автоматы. Структура сканера.
- Организация таблиц символов. Хеш-функции, хеш-адресация. Способы решения задачи коллизии. Рехеширование.
- Контекстно-свободные грамматики. Ок-грамматики. Синтаксический анализ и генерация промежуточных форм представления программы.
- Схема синтаксически управляемого перевода.
- Автоматы с магазинной памятью.
- Операторные грамматики (грамматики простого предшествия).
- Матрицы переходов.
- Внутренние формы представления исходной программы. Польская форма. Тетрады.
- Оптимизация программ. Оптимизация линейных участков, циклов и условий.
- Интерпретаторы. Принципы построения. Особенности интерпретируемых языков. Компиляторы компиляторов.
- Генерация объектного кода. Генерация кодов арифметических выражений. Система адресации. Объектные модули и компоновка.
Объектный язык. Регистры. Модификация адресов. Принципы построения общесистемных ассемблеров. Основные конструкции и алгоритмы.
- Отладчики Общие принципы отладки программ. Технологии отладки. Трассировка и контрольные точки. Отладка в интегрированных средах.
- Макросы. Макрокомады и макроопределения. Макроязык и макропроцессор. Реализация макропроцессоров. Однопросмотровые и двупросмотровые алгоритмы.
Макроассемблеры.
- Загрузчики. Принципы организации памяти. Выделение памяти различным типам данных. Динамическое распределение.
Схемы загрузки. Абсолютные и настраивающие загрузчики. Связывание подпрограмм. Принципы проектирования загрузчиков. Алгоритм работы загрузчика.
Объектно-ориентированное программирование
- Современные системы управления сложными объектами основаны на применении высокотехнологичных приемов и методов программирования,
одним из которых является объектно-ориентированное программирование (ООП). Несмотря на то, что история ООП насчитывает уже более 20 лет, основные тенденции
современного программирования остаются неизменными. Изучению общих принципов объектно-ориентированного программирования и получению навыков практического
применения ООП при создании сложных программных комплексов и посвящена настоящая дисциплина.
- Курс разбит на 2 части. Первая часть посвящена основам программирования на, пожалуй, единственном "настоящем" на данный момент времени
объектно-ориентированном языке – языке Смолток.
- Язык Смолток – очень элегантен и прост с точки зрения синтаксиса (попробуйте найти еще один язык, в котором было бы всего три оператора).
Тем не менее это одно из наиболее эффективных средств для моделирования сложных систем, на этом языке создаются надежные сверхсложные программные комплексы.
- Во второй части курса рассматриваются принципы объектно-ориентированного программирования на языке C++. Рассматриваются основные
ООП-конструкции, приемы и методы.
- На основании изучения этой дисциплины студент должен уметь применять приемы и методы ООП в своей практической деятельности,
знать основные принципы организации сложных объектно-ориентированных систем, иметь представление об основных тенденциях развития современных
информационных технологий. Этот курс является составной частью цикла специальных дисциплин, определяющих подготовку студентов в области современных
информационных технологий.
Рекомендуемая литература
- .
- .
- .
- .
- .
| |
|
Факультет нанотехнологии и информатики, МФТИ, 2007 г.,
|
|
|
|
|
|