26
Федеральное агентство связи Государственное образовательное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики» Факультет ИВТ Кафедра ВС Системное программное обеспечение Курс лекций Молдованова Ольга Владимировна Новосибирск - 2010

› sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Федеральное агентство связиГосударственное образовательное учреждение

высшего профессионального образования«Сибирский государственный университет телекоммуникаций и информатики»

Факультет ИВТКафедра ВС

Системное программное обеспечение

Курс лекций

Молдованова Ольга Владимировна

Новосибирск - 2010

Page 2: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

График учебного процессаНачало Окончание Лабораторные работы РГЗ

06.09.2010 12.09.2010 Лабораторная работа №1. Формальные грамматики и их свойства

Разработка компилятора

для заданного языка

программиро-вания

13.09.2010 19.09.2010

20.09.2010 26.09.2010 Лабораторная работа №2. Грамматики и конечные автоматы27.09.2010 03.10.2010

04.10.2010 10.10.2010 Лабораторная работа №3. Работа с таблицей идентификаторов11.10.2010 17.10.2010

18.10.2010 24.10.2010 Лабораторная работа №4. Проектирование лексического анализатора

25.10.2010 31.10.2010

01.11.2010 07.11.2010

08.11.2010 14.11.2010 Лабораторная работа №5. Построение простейшего дерева вывода15.11.2010 21.11.2010

22.11.2010 28.11.2010

29.11.2010 05.12.2010 Лабораторная работа №6. Генерация и оптимизация объектного кода06.12.2010 12.12.2010

13.12.2010 19.12.2010

20.12.2010 26.12.2010 Сдача долгов

Page 3: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Содержание курса

1. Структура и состав системного программного обеспечения.

2. Языки и грамматики.

3. Трансляторы, методы и средства их разработки.

4. Макропроцессоры и ассемблеры.

5. Загрузчики и редакторы связей.

Page 4: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Список литературы

1. Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. 3-е изд. – СПб.: Питер, 2010. – 400 с.

2. Ахо А.В., Лам М. С., Сети Р., Ульман Дж. Д. Компиляторы: принципы, технологии и инструментарий, 2-е изд. : Пер. с англ. – М.: ООО "Изд. дом Вильямс", 2008. – 1184 с.

3. Aхо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 1. Синтаксический анализ. – М.: Мир, 1978. – 613 с.

4. Карпов Ю.Г. Теория и технология программирования. Основы построения трансляторов. – СПб.: БХВ-Петербург, 2005. – 272 с.

5. Серебряков В.А., Галочкин М.П. Основы конструирования компиляторов. – М.: Едиториал УРСС, 2001. – 224 с. (http://www.citforum.ru/programming/theory/serebryakov/)

6. Голубь Н.Г. Искусство программирования на Ассемблере. Лекции и упражнения. – М.: DiaSoft, 2002. – 656 с.

Page 5: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Вычислительная система — это программно-аппаратный комплекс, который предоставляет услуги

пользователю.

Page 6: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Системное программное обеспечение (СПО)

Системное программное обеспечение ‒

комплекс управляющих и обрабатывающих программ, описаний и инструкций, обеспечивающих функционирование вычислительной системы, а также разработку и исполнение программ пользователей.

Page 7: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Группы СПО

1. Операционные системы.

2. Системы управления файлами.

3. Интерфейсные оболочки для взаимодействия пользователя с ОС.

4. Системы программирования.

5. Утилиты.

Page 8: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Системы программирования

Page 9: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Транслятор

Транслятор – это программа, переводящая программу на исходном (входном) языке в эквивалентную ей программу на результирующем (выходном) языке

Транслятор = компилятор?

Компилятор – это транслятор, который осуществляет перевод исходной программы в эквивалентную ей результирующую программу на языке машинных команд или на языке ассемблера

Page 10: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Интерпретатор

Интерпретатор – это программа, которая воспринимает исходную программу на входном (исходном) языке и выполняет её

Page 11: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Гибридный компилятор

Page 12: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу
Page 13: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Проход – процесс последовательного чтения компилятором данных из внешней памяти, их обработки и помещения

результата работы во внешнюю память

Однопроходные компиляторы возможны только для очень простых языков

Реальные компиляторы выполняют, как правило, от двух до пяти проходов

Наиболее распространены двух- и трёхпроходныекомпиляторы:

1. Лексический анализ2. Синтаксический разбор и семантический анализ3. Генерация и оптимизация кода

Page 14: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Лексический анализ

Лексический анализатор читает поток символов, составляющих исходную программу, и группирует эти символы в значащие последовательности, называющиеся лексемами. Для каждой

лексемы анализатор строит выходной токен (token) вида:

<имя_токена, значение_атрибута>

position = initial + rate * 60

<id,1> <=> <id,2> <+> <id,3> <*> <60,4>

Page 15: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Синтаксический анализ

Анализатор использует первые компоненты токенов, полученных при лексическом анализе, для создания

синтаксического дерева, которое описывает грамматическую структуру потока токенов.

<id,1> <=> <id,2> <+> <id,3> <*> <60,4>

Page 16: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Семантический анализСемантический анализатор использует синтаксическое дерево и

информацию из таблицы символов для проверки исходной программы на семантическую согласованность с определением языка. Он также собирает информацию о типах и сохраняет ее в

синтаксическом дереве или в таблице идентификаторов для последующего использования в процессе генерации

промежуточного кода.

Page 17: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Генерация промежуточного кода

t1 = inttofloat(60) t2 = id3 * t1t3 = id2 + t2 id1 = t3

Page 18: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Оптимизация кода

Фаза машинно-независимой оптимизации кода пытается улучшить промежуточный код, чтобы затем получить более

качественный целевой код

t1 = id3 * 60.0 id1 = id2 + t1

Page 19: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Генерация кода

Генератор кода получает в качестве входных данных промежуточное представление исходной программы и

отображает его в целевой язык

LDF R2, id3 MULF R2, R2, #60.0 LDF R1, id2 ADDF R1, R1, R2 STF id1, R1

Page 20: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Инструментарий для создания компиляторов

1. Генераторы синтаксических анализаторов (YACC – Yet Another Compiler Compiler)

2. Генераторы сканеров (LEX, FLEX)

3. Средства синтаксически управляемой трансляции

4. Генераторы генераторов кода

5. Средства работы с потоком данных (Datalog)

6. Наборы для построения компиляторов

Page 21: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Языки программирования

• Императивные (процедурные)

BASIC, FORTRAN, Ada, Pascal, C, C++, Java, C#

• Языки функционального программирования

LISP, Miranda, Haskell

• Логические

Prolog

• Объектно-ориентированные

Smalltalk , C++, Java, C#

Декларативные

Page 22: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Критерии оценки языков программирования

Понятность

Надежность

Гибкость

Простота

Естественность

Мобильность

Стоимость

Page 23: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Описание языков программирования

Множество основных символов

Синтаксис (определяет правила составления корректных программ)

Семантика (задает смысловые значения конструкций языка, а также интерпретацию различных синтаксических конструкций)

Page 24: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Синтаксически-ориентированная трансляция

Лингвист Ноам Хомский (Noam Chomsky), профессор Массачусетского технологического института США

• Все языки людей восходят к одному «протоязыку»• Функции генерации и понимания фраз являются врожденными функциями мозга

Двухуровневая модель естественного языка

Схема понимания человеком предложений

Предложение Понимание

Структура предложения

Page 25: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Как происходит понимание двусмысленных предложений?

Порядок сменит хаос

Порядок сменит ХАОС ПОРЯДОК сменит хаос

Предложение

Именная группа

Группа глагола

ГлаголГруппа

дополнения

Сущ. Сущ.

Порядок сменит хаос

Предложение

Группа глагола

Именная группа

Группа дополнения

Глагол

Сущ. Сущ.

Порядок сменит хаос

Page 26: › sites › default › files › courses › spo › spo_lecture1.pdf · Факультет ИВТ Кафедра ВС Системное программное …программу

Структура транслятора

• Построение структуры входной цепочки

Распознаватель

• Выражение смысла входной цепочки

Генератор

Входной

текст Выход