
- •1. Основные понятия и определения. Операционные системы как средство распределения и управления ресурсами.
- •2. Архитектура unix. Основные стандарты.
- •3. Модель системы unix.
- •4. Ядро системы. Внутренняя структура ядра.
- •5. Файловая подсистема
- •6. Подсистема ввода/вывода
- •7. Подсистема управления процессами
- •8. Работа в операционной системе unix
- •9 Файлы и файловая подсистема. Типы файлов.
- •11 Владельцы файлов. Права доступа к файлу. Дополнительные атрибуты файла.
- •12 Командный интерпритатор Shell. Синтаксис языка Bourn Shell. Общий синтаксис скрипта.
- •13 Основные утилиты unix
- •14 Подсистема управления процессом. Структура данных процесса, состояния процесса.
- •15Типы процессов: системные процессы, демоны, прикладные процессы.
- •16.Жизненый путь процесса. Инфраструктура процесса ос unix.
- •21. Планирование и управление процессами. Основные принципы и механизмы, обработка прерываний таймера, алармы, создание процесса.
- •22. Сигналы. Управление сигналами: отправление сигнала, доставка и обработка сигнала.
- •23. Взаимодействие между процессами. Средства межпроцессного взаимодействия.
- •24. Настройка командного интерпретатора. Работа с командным интерпретатором. Способы установки командного интерпретатора.
- •26. Файловая подсистема. Базовая файловая система System V . Основные компоненты файловой системы s5fs, массив индексных дескрипторов. Достоинства, недостатки.
- •27. Файловая система ffs. Основные изменения.
- •28. Архитектура виртуальной файловой системы. Монтирование файловой системы. Трансляция имен. Системные вызовы, требующие трансляции имени.
- •33. Блочные устройства
- •35. Трансляторы. Основные понятия и определения
- •36. Общие особенности языков программирования и трансляторов
- •37. Обобщённая структура компилятора, интерпритатора.
- •38. Фазы процесса трансляции и компиляции.
- •Обобщенная схема синтаксического анализатора
- •41. Варианты взаимодействия блоков транслятора. Особенности.
- •42. Многопроходная организация взаимодействия блоков транслятора. Достоинства и недостатки.
- •43. Однопроходная организация взаимодействия блоков транслятора. Достоинства и недостатки.
- •Наиболее широкое применение при разработке трансляторов нашли кс-грамматики и порождаемые ими кс языки. Способы записи синтаксиса языка
- •Метаязык Хомского
- •46 Метаязык Хомского-Щутценберже
- •49. Распознаватели.
- •50. Организация лексического анализа. Назначение и необходимость фазы
- •55. Грамматики с ограничениями на правила.
- •56.Устройства управления с конечной памятью.
- •57. Методы лексического анализа
- •58. Организация прямого л/а
- •59. Общие принципы организации синтаксического разбора. Назначение, классификация методов синтаксического разбора.
- •60. Методы синтаксического разбора.
- •Последовательность разбора.
- •Использование просмотра вперед.
- •Разработка программы по таблице переходов амп
- •64 Организация автоматов с магазинной памятью.
- •65 Распознаватель скобочных выражений.
- •67 Основные команды Linux. Ввод и вывод данных.
60. Методы синтаксического разбора.
Классификация методов с/р
1. Методы разбора: нисходящий., восходящий, комбинированный (сочетает особенности 2-ух предыдущих).
2. Последовательность разбора: слева направо, справа налево, произвольный.
3. Просмотр вперед: на 1 символ, ... , на n символов.
4. Использование возвратов: есть, нет.
Нисходящий и восходящий подходы широко используются в различных областях деятельности (искусственный системный анализ и синтез, метод разбора программного обеспечения сверху вниз и снизу вверх). Нисходящий разбор заключается в построении дерева разбора, начиная с корневой вершины. Разбор заключается в заполнении промежутков между начальными нетерминалами и символами входной цепочки правилами. Подстановка основывается на том факторе, что корневая вершина явл. узлом , состоящим из листьев, явл. цепочкой терминалов и нетерминалов одного из альтернативных правил, порождающих входным нетерминалом. Подставляемое правило выбирается произвольно. Вместо новых нетерминальных вершин осуществляется новая подстановка и т.д. Процесс протекает до тех пор пока не будут установлены все связи нитей, соединяющих корневую вершину и символы входной цепочки, или пока не будут рассмотрены все возможные комбинации правил. В последнем случае входная цепочка отвергается. Построенное дерево разбора подтверждает принадлежность данной цепочки входному языку. Для одной и той же цепочки могут быть построены различные деревья разбора. При восходящем разборе дерево строится от терминальных листов, применимых по входной цепочке. В результате будет дерево, корнем кот. явл. начальный нетерминал. Комбинированный разбор может быть реализован тогда, когда процесс распознавания разбивается на 2 этапа. Их может быть больше 2 –ух и порядок произвольный. Комбинированным можно считать разбор в любом трансляторе, если л/а – 1-ый этап, а с/а – 2-ой. При этом мы не можем считать л/а как истинный распознаватель. Прямой л/а будет явл. восходящим распознавателем, если он будет сочетаться с нисходящим разбором. Непрямой л/а – нисходящий разбор. В с/а – комбинация различных видов разбора не используется, т.к. в этом нет смысла.
Слева направо- когда порождение новой цепочки осуществляется до самого левого нетерминала. На каждом шаге, как только из самого левого нетерминала порождается цепочка осуществляется переход к след. Последовательность разбора сочетается с методом разбора. При нисходящем разборе слева направо входная цепочка распознается с ее начала. При нисходящем разборе справа налево – ведет к первоначальному символу. Восходящий разбор слева направо – осуществляет замену на нетерминальные символы, кот. расположены в конце цепочки. Замена начальных символов происходит при восходящем разборе справа налево.
Языки бывают различными по сложности и ряд языков нельзя описать с помощь простых грамматик, поэтому в грамматиках могут встречаться альтернативные правила, начинающиеся с одинаковых цепочек символов. Возникающая неоднозначность может быть разрешена путем предварительного просмотра правила на n символов вперед до той границы, начиная с кот. данное правило будет отличаться от других. В контекстно-свободных грамматиках число, определяющее количество символов, анализирующееся перед выбором подстановки, используется для классификации. По этому критерию контекстно-свободные грамматики задаются след. образом: КС(1), КС(2) – количество символов, анализируемых при подстановке. Просмотр вперед – один из возможных вариантов упорядочивания подстановок, обеспечивающий решение проблемы недетерминированности.
С/р с возвратом выполняется аналогично тому как осуществляется непрямой л/а. Возвраты производятся для альтернативных правил, начинающихся с одинаковых подцепочек. В этом случае появление отказа при разборе правил ведет к восстановлению входной головки в то положение, в кот. она была до разбора данного правила. Использование возвратов может выступать в качестве альтернативы просмотра вперед. Приоритет правил назначается также как и при л/а и зависит от того явл. ли некоторое правило подмножеством другого. Этот метод считается универсальным, легким. Недостаток: замедление, увеличение времени разбора., увеличение времени построения объектной модели.
Т.о. приведенные варианты с/р могут встречаться в разнообразных сочетаниях. Однако, при разработке языка программирования необходимо искать разумный компромисс Чем сложнее синтаксис языка программирования, тем сложнее его грамматика. Чем сложнее грамматика, тем больше сложность и универсальность методов разбора. Универсальность ведет к более медленному выполнению процессов разбора. Поэтому от начала процесса разбора до его выполнения постоянно необходимо обеспечивать баланс между сложностью замысла и простотой реализации.
Билет №61