- •Учебное пособие
- •Учебное пособие
- •Оглавление
- •2. 2 Регулярные выражения
- •2. 3 Грамматика
- •2. 4 Способы получения одних цепочек символов из других
- •2. 5 Формальное определение языка
- •2. 6 Расширенные грамматики
- •2. 7 Задачи анализа
- •2. 8 Синтаксические диаграммы
- •2. 9 Введение в компиляцию
- •2. 30 Структура компилятора
- •2. 11 Проходы компилятора
- •3 Алгоритмический язык spl
- •3. 4 Символы
- •3. 4 Оператор цикла
- •4 Лексический анализ
- •4. 5 Блок-схема функции void main (int ac, char * av [ ])
- •4. 5 Блок-схема функции void number ()
- •4. 5 Блок-схема функции void word ()
- •4. 5 Блок-схема функции char*add(char*nm)
- •5 Полный синтаксис языка spl
- •5.6Алфавит нетерминальных символов
- •5. 6 Синтаксические диаграммы и функции распознавания цепочек для нетерминальных символов
- •6 Пояснения к выполнению курсовой работы
- •6. 7 Пример выполнения курсовой работы
- •6. 7 Варианты заданий для курсовой работы
- •6. 7 Требования к оформлению курсовой работы
- •7 Вопросы к экзамену
- •8 Список литературы
- •Учебное пособие
Министерство образования и науки Украины
Сумской государственный университет
Учебное пособие
по дисциплине «Системное программирование и операционные системы» для студентов всех специальностей заочной формы обучения
Сумы
Изд-во СумГУ
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 – это произвольное множество цепочек (слов).