- •4. Таблица идентификаторов.
- •5. Кэш адресация
- •6. Формальные языки и грамматики.
- •7. Понятие языка
- •8. Запись грамматики в форме Бэкуса-Наура.
- •9. Запись правил грамматики с использованием метасимволов.
- •10. Запись правил гр-ки в граф-м виде
- •11. Классификация грамматик
- •12. Классификация языков.
- •Цепочки вывода
- •Дерево вывода
- •Правила задающие неоднозначность грамматик
- •Распознаватель
- •Задача разбора
- •Этапы семантического анализа
СПО
СПО – это программы и комплексы программ явл-ся общими для всех,кто совместно исп-т техн-ие ср-ва комп-ра и применяемые как для автоматизации и разработки новых программ,так и для организации пр-м существующих.
Жизненный цикл СПО делится:
-разработка(основная):1)опр-ие требований;2)проектирование(основная):а)разд-ие программ на части;б)опр-ие формы организации данных;в)опр-ие возм-ти модификаций(в пр-се разработки и эксплуатации);г)обесп-ие надежности;3)фаза компановки; 4)тестирование;5)документирование
- применение;
- сопровождение (продолж-ся разработки):1)вкл новых функций;2)модификация функций; 3)модификация оборудования; 4)исправление ошибок
Классификация СПО
1 Операционные системы (ОС).
2 Системы программирования.
3 Утилиты.
Операционная система
ОС - набор программ,кот-е оьеспечиывают возм-ти исп-ия аппаратуры комп-ра. ОС – администратор ресурсов.
ОС делятся:1) по назначению: а)общего; б)специального; 2)по кол-ву польз-лей одновр-но обслуж-х системой:а)однопольз-ие;б)многопольз-ие; 3)по числу процессов,кот-е могут одновр-но вып-ся под упр-ем ОС:а)однозадачные б)многозад-ые; 4)по типу ср-в выч техники для управления ресурсами которых предназначены:а)однопроцессорные;б)многопроцессорные;в)сетевые;г)распред-ые; 5)по архитектурному принципу:а)микроядерные;б)монолитные
Функции ОС:1)опре-ет ентерфейс польз-ля;2)принимает от польз-ля задания и их обрабатывает;3)принимает и исп-ет программные запросы на запуск,приостановку и остановку др программ;4)осущ-ет загрузку в опер-ую память подлежащих исп-ю программ;5)осущ-ет инициал-ю программ;6)идент-т все прогр и данные;7)обесп-ет работу системы упр-я файлами;8)обесп-ет работу многозад-го режима вып-я программ;9)осущ-ет распред-е памяти и орг-ю вирт памяти;10)осущ-ет планирование и диспетчеризацию задач;11)орг-т мех-зм обменя сообщаниями и данными;12)обеспечивает защиту одной прогр от влияния другой и сохранность данных;13)осущ-ет восст-ие и нФ-ии и выч порцесса;14)обесп-ет работу системы программирования
Требования,предъявляемые к ОС:надежность,защита,эффект-ть,предсказуемость,удобство
Структура ОС:
Ур-нь |
Имя |
Объекты |
Примеры операций |
1 |
Электронные схемы |
Регистры,вентили,шины и т.д. |
Очистка регистра,чтение содержимого ячейки памяти |
2 |
Системы команд |
Стек для выч-ний, микропр-ый интерпритатор, массивы |
Загрузка,запись,переход, сложение,вычитание |
3 |
подпрограммы |
Подпрограммные сегменты и стек вызовов |
Обращение к сегменту, вызов возврата |
4 |
прерывания |
Порграмма обработки прерываний |
Активировать,маскировать,демаскировать |
5 |
Элементарные процессы |
Симафоры,списки готовности,элементарные процессы |
Прочесть,записать, выделить,освободить |
6 |
Локальная внешняя память |
Блоки данных,каналы устройств |
Прочесть,записать, выделить,освободить |
7 |
Вирт память |
Сегменты памяти |
Прочесть,записать,загрузит |
Поскольку элементарный процесс м/б прерван в любой момент,требуется спец мех-зм обесп-ий приостановку процесса и его последующее возобновление.Этот мех-зм состоит: 1) «словосостояние программы» 2)стр-ра данных,в кот-е м. входить сведения о содержимом всех регистров центр процесса 3)операция переключения контекста.
Симафоры - ср-ва синхронизации процессов.
До 7 ур-ня ОС имеет дело с ресурсами 1-го комп-ра
8 |
Коммуникации |
Конвейеры |
Создать,уничтожить, открыть,закрыть,прочесть, записать |
9 |
Ур-нь файловой системы |
Файлы |
Создать,уничтожить,открыть,закрыть,прочесть,записать |
10 |
устройство |
Внешн устр-ва |
Создать,уничтожить, открыть,закрыть,прочесть, записать |
11 |
Каталоги |
Каталоги |
Созд,уничт,срезать, открепить,найти, распечатать |
12 |
Пр-сы пользователей |
Пр-сы польз-лей |
Выйти,уничт, приостановить,возобновить |
13 |
Оболочка |
Прогр среда польз-ля |
Оператор на языке оболочки |
Пр-мы ур-ня 6 имеют дело с диск0ой памятью терм-х дорожек и секторов
Пр-мы ур-ня 9 работают с более абстрактными объектами.
Каждый каталог предст собой список эл-ов,в кот указано внешнее имя и внутр имя,кот хранится в двоичном коде.
На 13 ур-не работает интерпретатор командного языка высокого уровня.На этом же урн ах-ся прогр «слушатель»,которая:1)проводит синтакс анализ каждой вводимой строки;2)создает и активир-ет процесс польз-ля для каждой программы и связ-ет его с конвейерами,файлами и устр-ми.
Основные принципы построения ОС:1)принцип модульности;2)принцип функциональной избирательности;3)генерируемости;4)функц-ой избыточности;5)виртуализации(планировщики);6)независимости программ от внешн устр-в;7)совместимости;8)открытости и наращиваемости;9)мобюильности или переносимости;10)обеспечение безопасности вычислений
Системы программирования
Сп объединяют прогр,связанные с решением языковых проблем и предназн для разработки ПО.
В СП входят:1)трансляторы;2)библиотеки программ;3)редакторы;4)компановщики; 5)загрузчики;6)отладчики
Системы обслуживания программ – это спец с-ые программы,с пом кот-х м. обслуживать саму ОС
Транслятор – это программа,кот-я переводит вхлдящую программу на исх языке в эквив-ую на выходном результир-щем языке.
Компилятор – это транслятор,кот осущ-ет перевод исх программы в эквив-ю ей объектную прог-у на языке машинных команд.
Интерпретатор – это прог-а, кот-я воспринимает вх прог-у на исх языке и сразу её вып-ет(нет результирующего кода)
Компилятор с т.зрения формальных языков вып-ет 2 осн-ые функции:1) он явл распознавателем для языка исх программы(генератором цепочек явл автор вход программы);2)явл генератором для языка результирующей программы(рапсознавателем явл выч с-а)
Схема компиляции
Лекс анализ – это часть компилятора, кот-я читает литеры прогр-ы и строит из них слова лексемы исх языка.
Синтакс анализ – это осн часть компилятора на этапе анализа. Выделяет синтакс-ие конструкции языка.
Семантический анализ – это часть комп-ра, проверяя-я текст прогр-ы с т.зрения семантики исх языка.
Подготовка к генерации кода – вып-ся предварит-е д-я, связ-ые с синтезом результир прог-ы
Генарация кода – непоср-но порождение результир-го кода – осн фаза. Вкл оптимизацию кода.
Таблица идентификаторов – набор данных,служ-ий для хранения инф-ии об лементах исх-й программы. Сущ-ет неско-ко таблиц идентификаторов.
Проход – это процесс послед-го чтения данных из внешней памяти, их обработка и помещение во внешн память. Одна аза компиляции – один проход.
4. Таблица идентификаторов.
Таблица идентификаторов – набор данных,служ-ий для хранения инф-ии об лементах исх-й программы. Сущ-ет неско-ко таблиц идентификаторов.
Организация ТИ:В зав-ти от идент-ра м.хранится разл инф-я:1)Переменная-имя,тип,адрес 2)Константа-имя,если есть,адрес,значение;3)Функция-кол-во арг-ов,тип,имя,адрес
ТИ созд на фазе лекс-го анализа и заполн-ся послед-но.На фазе лексич-го ан-за запис-ся типы идент-ов.На фазе подготовки генер-ии кода – выделение памяти.
Основным критерием выбора способа орг-ции ТИ явл время поиска,т.к. осн-ми функ-ми явл добавления и поиска (поиск происходит чаще)
Неупорядоченный список – в ТИ доб-ся эл-ты в порядке поступления
Упорядоченный список – все эл-ты в ТИ упорядочены согласно естесств-му порядку по убыв-ю и возр-ю.
Бинарное дерево ТИ имеет формубинарного дерева. Каждый эл-т или вершина – идентификатор. Корневой вершиной дерева явл первый поступивший идентификатор.
Форма бинарного дерева зависит от порядка поступивших идент-ов.Недостаток – дерево м.выродиться в упор-ный список.
5. Кэш адресация
Согласно методу символ преобр-ся в индекс эл-та в массиве.кыширование – вып-е любых лог-х или арифм-х оперций над символом. КЭШ адресация закл в исп-ии значения возвращающего КЭШ-функцией в качестве адреса ячейки из некоторого массива данных.размер массива данных должен соотв-ть области значенпия КЭШ функции.
Время поиска и время размещения – это время,затрачиваемое на вычисление КЭШ ф-ии.
Недостатки: 1)неэфф-ное исп-ие объема памяти; 2)необх-ть соотв-го разумного выбора кэш функции.
Коллизия – это ситуация, когда 2-м разл-м идент-рам соотв-ет одно и то же зн-ие кэш ф-ии.
Способы разрешения коллизии(рекэширование).При возникн-ии коллизии выч-ся новое зн-ие кэш ф-ции.
Формула рекэширования hi(A)=(H(A)+pi)modNm Nm – макс зн-ие из обл кэширования, pi выч число
Метод простого рекэширования hi(A)=(h(A)+i)modNm (вместо pi берем i)
Рекэширование с использованием псевдослучайных чисел вместо pi берем послед-ть целых псевдосл-х чисел.При хорошем выборе генератора псевдосл-х чисел послед-ть k=Nm
Рекэширование с помощью произведения hi(A)=(h(A)*i)modNm
Метод цепочек Здесь к ТИ добав-ся дополненная кэш таблица,в кот-ой хр-ся либо пустое зн-ие,либо зн-ие указ-ля на некоторую обл-ть памяти из осн-ой ТИ.
Достоинства: 1)нет необх-ти заполнять пустыми зн-ми ТИ;2)каждому идент-ру соотв-ет строго одна ячейка в ТИ,поскольку в ней нет пустыхнсип-х ячеек.В ТИ доб-ся поле ссылки,в кот-м м. содержаться указатель на любой элемент ТИ.исп-ся спец переменная,которая всегда указ-ет на первую своб-э ячейку основной ТИ.
Комбинированные методы. Исп-ся доп-ое поле ссылки,если коллизии не возн-ет,для выборки инф-ии исп-ся кэш функцияи поле ссылки остается пустым.если коллизия возн-ет,то ч/з поле ссылки орган-ся поиск идент-ров по одному из рассм выше методов.
Преим-во над цепочками:для хранения ид-ров с совпад-ми значентиями кэш функции исп-сяоласть памяти не пересекающаяся с основной ТИ.
Недостаток:необх-ть работы с динамически распределенными областями памяти.