Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uchebnik.docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
557.61 Кб
Скачать

4.1.1 Вывод цепочек

Цепочкой символов (строкой символов) называют произвольную упорядоченную конечную последовательность символов, записанных один за другим.

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

Над цепочками символов можно выполнять следующие операции:

Конкатенация (сложение, объединение) двух цепочек символов — это дописывание второй цепочки в конец первой. Конкатенация цепочек α и β обозначается αβ. Поскольку для цепочек важен порядок символов, следовательно αβ <> βα.

Обращение цепочки — запись цепочки символов в обратном порядке. Обращение цепочки α обозначается αR. Т.е., если α= 0101, то αR = 1010.

Итерация (повторение) цепочки n раз — конкатенация цепочки самой с собой n раз. Итерация цепочки α n раз обозначается как αn.

Пустая цепочка символов — цепочка, не содержащая ни одного символа (обозначается символами e или ε).

Выводом называется процесс порождения цепочек языка на основе правил, входящих в состав грамматики данного. Непосредственно выводимой цепочкой называется цепочка, которая получается из текущей, после применения только одного какого-то правила вывода. Последовательность непосредственно выводимых цепочек — цепочка вывода. Например, в школе, при решении задач по физике, алгебре или геометрии, часто просят решить задачу аналитически, т. е. на основе нескольких базовых отношений (формул) необходимо вывести с помощью законов алгебры конечное выражение, в котором бы использовались только известные исходные данные. В данном примере: законы алгебры являются правилами вывода, а сами формулы — цепочками символов какого то алфавита (условных обозначений принятых в той или иной предметной области — физики, алгебре, геометрии и т. п.).

4.1.2 Конечный и магазинный автоматы, распознаватели и преобразователи, построение автомата по заданной грамматике

Математической моделью конечного цифрового автомата является абстрактный автомат, определяемый как шестикомпонентный кортеж S = {A, z, w, , , a1}, у которого:

1) A = {a1, ..., am, ..., aM}множество состояний (алфавит состояний);

2) Z = {z1, ..., zf, ...,zF}множество входных сигналов (входной алфавит);

3) W = {w1, ...,wg, ...,wG}множество выходных сигналов (выходной алфавит);

4) функция переходов определяет правила перехода автомата из одного состояния в другое в зависимости от значений входных сигналов и состояния автомата: (a, z);

5) функция выходов определяет правила формирования выходных сигналов автомата: (a, z);

      1. a1 начальное состояние автомата (a1 Є A).

Под алфавитом здесь понимается непустое множество попарно различных символов. Элементы алфавита называют буквами, а конечная упорядоченная последовательность букв — словом в данном алфавите. Пустое слово (последовательность нулевой длины) обозначается буквой e.

В каждый момент t дискретного времени автомат находится в некотором состоянии а(t) Є A, причём в начальный момент t = 0 он всегда находится в начальном состоянии a(0) = a1. Будучи в момент времени t в состоянии a(t), автомат способен воспринимать на своём входе сигнал z(t) Є Z. В соответствии с функцией выходов в этот же момент времени он выдает выходной сигнал w(t) Є W и в следующий момент времени (t+1) согласно функции переходов перейдёт в состояние a(t+1) Є A. Смысл понятия абстрактного автомата состоит в том, что он реализует некоторое отображение множества слов входного алфавита Z в множество слов выходного алфавита W. Иначе, если на вход автомата, установленного в начальное состояние a1, подавать буква за буквой некоторую последовательность букв входного алфавита z(0)z(1)z(2), ... – входное слово, то на выходе автомата будут после­до­вательно появляться буквы выходного алфавита w(0),w(1),w(2), ... – выходное слово. Относя к каждому входному слову, соответствующее ему выходное слово, получаем отображение, индуцированное абстрактным автоматом. Термин “абстрактный” используется в связи с идеализированным дискретным временем, а также потому, что в этой модели абстрагируются от реальной физической природы входных и выходных сигналов, рассматривая их как буквы некоторого алфавита.

Магазинный автомат – автомат специального вида (как правило, бесконечный), в основе которого лежит понятие магазинной памяти (стека). Магазин удобно представлять в виде бесконечной в одну сторону ленты, состоящей из ячеек, пронумерованных целыми натуральными числами. При чтении воспринимается содержимое только первой ячейки памяти. Переход из одного состояния в другое, у магазинного автомата, зависит не только от входного символа, но и от содержимого первой ячейки магазинной памяти. Таким образом, конфигурация магазинного автомата описывается состоянием автомата, текущим символом входного алфавита и содержимым первой ячейки магазинной памяти. При считывании содержимое первой ячейки памяти стирается, а оставшееся содержимое поднимается на одну ячейку вверх. При записи данных в такую память – содержимое верхней ячейки сдвигается вниз, а в верхнюю ячейку записывается новое содержимое. Различают распознающие магазинные автоматы (акцепторы) у которых выходной алфавит пуст, порождающие магазинные автоматы у которых входной алфавит пуст и магазинные преобразователи (трансдьюсеры).

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

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

Таким образом, конечным преобразователем является шестерка S = {A, Z, W, φ, a0, F}

где

А — конечное множество состояний преобразователя;

Z — конечный входной алфавит

W – конечный выходной алфавит

φ — отображение множества в множество конечных подмножеств множества

a0 – начальное состояние распознавателя

- множество заключительных состояний.

Задача построения автомата по заданной грамматике подробно рассматривается в курсе «Теория автоматов».

Контрольные вопросы

1 Что такое формальный язык?

2. Что такое формальная грамматика?

3. Перечислить типы грамматик по Хомскому

4. Что такое цепочка символов?

5. Какие операции можно выполнить над цепочками символов?

6. Что такое абстрактный автомат?

7. Что такое магазинный автомат, распознаватель, преобразователь?

Литература

      1. Таненбаум Э. Современные операционные системы. 2-е изд. - СПб.: Питер, 2002 г.

      2. Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000. Мастер-класс./Пер с англ. - 4-е изд. - М.: Издательско-торговый дом «Русская редакция»; СПб.: Питер, 2005 г.

      3. Intel® 64 and IA-32 Architectures Software Developer’s Manual

      4. Давыдов В. Г. Visual C++. Разработка Windows-приложений с помощью MFC и API-функций. - СПб.: БХВ-Петербург, 2008 г.

      5. MSDN Library - http://msdn.microsoft.com

      6. Рихтер Дж., Назар К. Windows via C/C++. Программирование на языке Visual C++ /Пер. с англ. - М.: Изд-во "Русская редакция"; СПб.: Питер, 2008 г.

      7. Пирогов В. Ю. Ассемблер для Windows. — М.: Издатель Молгачева С.В., 2002 г.

      8. Магда Ю. С. Ассемблер. Разработка и оптимизация Windows-приложений. - БХВ-Петербург, 2003 г.

      9. Харт Джонсон М. Системное программирование в среде Windows, 3-е издание. Пер с англ. - М.: Издательский дом «Вильямс», 2005 г.

      10. А. Ахо, Дж. Ульман Теория синтаксического анализа, перевода и компиляции. Пер. с англ.- М.:Мир, 1978 г.

      11. Системное программное обеспечение: Учебник для вузов / А. Ю. Молчанов - СПб.: Питер, 2003 г.

      12. Грачева Е. В. Системное программное обеспечение. Изд-во Пенз. ЦНТИ: Пенза, 2010 г.

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