Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie_CP.doc
Скачиваний:
18
Добавлен:
19.04.2015
Размер:
960.51 Кб
Скачать

Министерство образования и науки Украины

Сумской государственный университет

Учебное пособие

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

Сумы

Изд-во СумГУ

2006

Министерство образования и науки Украины

Сумской государственный университет

К печати и в совет разрешаю на основании «Единых правил», п.2.6.14

Проректор В.А. Любчак

Учебное пособие

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

Все цитаты, цифровой, фактический материал и библиографические сведенья проверены, запись единиц соответствует стандартам

Составители: А.Н. Скаковская, В.В. Авраменко

Ответственный за выпуск В.А. Любчак

Декан факультета С.М. Верещака

Сумы

Изд-во СумГУ

2006

Оглавление

с.

1 Структура математического обеспечения ЭВМ 5

1. 2 Средства программирования 5

1. 2 Средства управления 6

2 Элементы компиляции. Анализ формальных языков 6

2. 1Сведения о регулярных выражениях и грамматиках 6

2. 2 Регулярные выражения 8

2. 3 Грамматика 9

2. 4 Способы получения одних цепочек символов из других 11

2. 5 Формальное определение языка 12

2. 6 Расширенные грамматики 14

2. 7 Задачи анализа 15

2. 8 Синтаксические диаграммы 18

2. 9 Введение в компиляцию 21

2. 30 Структура компилятора 23

2. 11 Проходы компилятора 25

3 Алгоритмический язык SPL 26

3. 4 Символы 27

3. 4 Идентификаторы 28

3. 4 Константы 28

3. 4 Переменные 28

3. 4 Выражения 29

3. 4 Служебные слова 29

3. 4 Функции 29

3. 4 Оператор цикла 31

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

4. 5 Блок-схема функции void main (int ac, char * av [ ]) 39

4. 5 Блок-схема функции void number () 41

4. 5 Блок-схема функции void word () 44

4. 5 Блок-схема функции char*add(char*nm) 49

5 Полный синтаксис языка SPL 51

5. 6 Алфавит нетерминальных символов 52

5. 6 Синтаксические диаграммы и функции распознавания цепочек для нетерминальных символов 58

6 Пояснения к выполнению курсовой работы 73

6. 7 Пример выполнения курсовой работы 78

6. 7 Варианты заданий для курсовой работы 84

6. 7 Требования к оформлению курсовой работы 92

7 Вопросы к экзамену 93

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

1 Структура математического обеспечения ЭВМ

СМО

Системное-программное Прикладное программное обеспечение обеспечение

(операционные системы)

Средства Средства Программы Программы

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

управления

пользователя

технического обслуживания (тесты)

1. 2 Средства программирования

Существуют такие средства программирования:

Текстовые редакторы (диалоговые программы);

Трансляторы (перевод с одного языка на другой, чаще из алгоритмического языка на язык программных кодов), препроцессор, интерпретатор, компилятор - перекладывают с одного языка высокого уровня на другой;

Редакторы связей (компоновщики) lіnker;

Утилиты (сервисные программы, копирование, перемещение и т.д.);

1. 2 Средства управления

Средствами управления являются:

−Внутренние команды (при изготовлении ПК);

−Внешние программы (в DOS);

−Драйверы (программы, которые руководят внешними устройствами).

2 Элементы компиляции. Анализ формальных языков

2. 1Сведения о регулярных выражениях и грамматиках

Любой язык имеет свой алфавит.

Алфавит – это конечное множество I элементов, называемых символами.

Цепочка или слово в алфавите I – это конечная последовательность элементов (символов) из алфавита I. Например, если алфавит языка состоит только из заглавных и строчных букв латинского алфавита, то любые последовательности этих букв являются цепочками (словами), в том числе цепочка может состоять из одного символа.

С цепочками (словами) могут быть проделаны действия, которые имеют следующие обозначения:

  • хn. Цепочка символов х повторяется (пишется без пробелов одна за другой) n раз. Например, abba2 – это abbaabba.

  • хk. Цепочка символов х записывается в обратной последовательности. Например, portR - это trop.

  • xy. За цепочкой символов x без пробела помещается цепочка символов y.

  • х*. Цепочка символов х в цикле может повторяться нуль и более раз.

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

Например: intl iden (‘,’ iden)* ‘;’

Это означает, что за символом intl должно следовать iden. Затем через запятую может еще повторяться iden нуль и более раз. В конце должна быть точка с запятой.

  • х+. Цепочка символов х должна повторяться один и больше раз. В алгоритмическом языке Pascalэто реализуется операторомrepeat, а в языке Си – оператором циклаdowhile.

  • х. Определение длины цепочки символов х (количество символов в цепочке).

  • {} или l, или- обозначение пустой цепочки символов.

  • [х]. Так обозначается необязательная цепочка символов. Например, такая запись нужна для того, чтобы обозначить, что перед числом знак может быть, а может и отсутствовать.

Кроме алфавита и цепочки символов (слов), важным понятием является язык.

Язык в алфавите I – это произвольное множество цепочек (слов).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]