- •Теория автоматов. Уровни представления эвм.
- •Операционные элементы. (оэ)
- •Процессор гса:
- •Достоинства и недостатки.
- •Операционное устройство для выполнения операций алгебраического сложения двоичных чисел.
- •Суммирование при использовании прямого кодирования.
- •Суммирование чисел при использовании обратного кода.
- •Дополнительный код.
- •Модифицированный код.
- •Пример суммирования.
- •Конечные автоматы.
- •Теория конечных автоматов
- •Способы задания функций переходов.
- •Автоматы ( с выходным преобразователем)
- •Способы задания автоматов
- •Способы задания автомата Миля
- •Преобразование автоматов из Миля в Мура и обратно Понятие эквивалентности автоматов
- •Преобразование Мура в Миля
- •Техника преобразований.
- •Обратный переход. Построение Мура для заданного Миля.
- •Частичные или не полностью определенные автоматы.
- •Синтез конечных автоматов.
- •Абстрактный синтез конечных автоматов.
- •Построение дерева входных последовательностей.
- •Структурный этап синтеза автоматов.
- •Основные этапы структурного синтеза.
- •Типы памяти.
- •Основные типы триггеров.
- •Пример структурного синтеза синхронного автомата.
- •`Временная диаграмма.
- •Этап минимизации автомата при абстрактном синтезе. Минимизация полностью определенного автомата.
- •Алгоритмы минимизации на основе треугольной матрицы.
- •Минимизация числа состояний частичного автомата.
- •Минимизация частичного автомата.
- •Абстрактный этап синтеза конечного автомат. (неканонический метод).
- •Алгоритм перехода от граф схемы микропрограммы к автомату Мура.
- •Учет взаимодействия проекционного и управляющего автоматов. Алгоритм получения.
- •Алгоритм получения частичного автомата.
- •Множество входных значений.
- •Кодирование состояний синхронного автомата.
- •Кодирование соседними кодами.
- •Минимизация числа переключений элементов памяти.
- •Универсальный способ кодирования (для синхронного автомата).
- •Автомат с дешифратором.
- •Асинхронные автоматы.
- •Этапы синтеза асинхронного автомата.
- •Реализация асинхронного rs триггера на логических элементах.
- •Установочные входы в триггерах.
- •Синхронные элементы памяти.
- •Требования, предъявляемые к синхросигналу.
- •Синтез синхронного rs триггера.
- •Синтез триггера с задержкой.Реализация асинхронного t триггера.
- •Исключение состязаний элементов памяти в синхронных автоматах.
- •Структура автоматов на плм и пзу.
- •Явление рисков в комбинационных узлах.
- •Исключение влияние рисков.
- •Построение схем без риска.
- •Алгоритм построения схемы без рисков по днф.
- •Алгоритм построения схемы без риска.
- •Автоматы, языки и грамматики.
- •Задача распознавания цепочек языка.
- •Классификация грамматик по Хомскому.
- •Примеры построения грамматик.
- •Грамматика для выполнения арифметических операций.
- •Соответствие конечных автоматов и автоматных грамматик.
- •Этапы для заданной автоматной грамматики.
- •Этапы для заданной автоматной грамматики.
- •Недетерминированные конечные автоматы.
- •Преобразование недетерминированного автомата в детерминированный.
- •Преобразование некоторых типов грамматики к автоматному ввиду.
- •Алгоритм получения правил, не содержащих правил вывода нетерминальных символов.
- •Построение распознавателей и преобразователей.
- •Построение распознавателей.
- •Алгоритм построения преобразователя.
Задача распознавания цепочек языка.
Задачей распознавания является задача определяющаяся является ли заданная цепочка порождением заданной грамматикой.
R = φψ, гдеφ,ψ € V*
ώ1 = ξ1φ ξ2= ώ2 = ξ1ψξ2
ξ1ξ2 €V* - цепочки
то говорят, что ώ2непосредственно сворачивается в ώ1и обозначается ώ1<= ώ2 либо
n
ώ1<= ώ2
Пусть задано множество цепочек
Ω = { ώ1 , ώ2 , ώ3 , … , ώn}
ώn-1< = ώn
…
ώ1 <= ώ2
говорят, что ώn<= ώ1
Если заданная цепочка может быть сведена к начальному символу, то она принадлежит языку, который порождает данную грамматику.
Классификация грамматик по Хомскому.
Грамматика типа 0 или общего вида
φ ψ , φ ≠e(e– символ конца)
φ может содержать не только терминальные символы
| ώ| - длина цепочки – число символов цепочки.
| φ | < | ψ |
Могут быть правила, которые укорачивают цепочки. Эта грамматика не имеет практического использования.
Грамматика типа 1 или непосредственных составляющих.
Это контекстно-зависимая грамматика и неукорачивает длину цепочки.
ξ1φ ξ2 ξ1ψ ξ2
ξ1ξ2φ ψ € V*
Грамматика контекстно-зависимая и неукорачивающая.
G8
Vт = {a , b , с, d}
I
Vn = {I , A , B}
R = {IaAI , AIAA , AAAABA , aBA bcdA , bI ba}
Грамматика типа 2 или контекстно-свободная
A € Vn , ώ € V*
G9
Vт = {a , b}
I
Vn = {I }
R = {IcIa , IbIb , Iaa , I bb}
I aIa abIba abaIaba ababbaba
L(G9) = {xx1 ; x € Vт*}
Грамматика типа 3 или автоматная
левосторонняя
A a , A Ba
правосторонняя
A a , A aB
A , B € Vn , a € Vт
В грамматике либо левосторонняя, либо правосторонняя.
AaA;AAa– рекурсивное
Для каждой автоматной грамматики может быть построена, реализуя ей конечный автомат.
G10
Vт = {a , b}
I
Vn = {I , A}
R = {IaI , IaA , AbA , A b}
L(G10) = {anbm , a,b € Vт , n>0 , m>0 }
L0<=LI<=LII<=LIII
Язык LIIIболее узок, чем языкLIIи так далее.
Примеры построения грамматик.
Предположим, что необходимо построить грамматику, содержащую 2 символа * , / при этом каждая цепочка начинается с одной * а заканчивается **, внутри содержит последовательность ////, разделенных *, т.е. допустимы */**, *///** , *//*/*///**
Vт= {/,*}
Vn= {A,I}Aбудет обозначать любую непустую последовательность наклонных
R= {I*B** ,AA/ ,A/}
B– произвольное количество черточек, разделенное *
BA,BB*A(!)
Чтобы получить произвольное количество цепочек из наклонных, введем нетерминальный символ B, который означает цепочку из наклонных, разделенная *, при этом надо добавить два правила (!) и изменить первоначальное правило:
I*B***B*A***A*A***A/*A***//*A***//*/**
Примеры грамматик, используемых при определении языков программирования. Терминальные слова – множество основных символов языка, нетерминальные – синтаксические понятия языка. Для описание правил языка будем использовать язык Бекуса.
Пример: <целое без знака>
<> ::= <> это есть
В левой части пишется определенное понятие, в правой цепочка символов и синтаксических понятий. В правой части могут быть символы.
Пример:
<целое без знака>::=<цифра>
<цифра>::=0| 1|2 … | 9.
Vт ={0,1,2…9}
Vn = {I,A}
I
R= {IIA,IA,A0 ,A1…A9}
Пример грамматика для идентификатора:
<идентификатор>::=<буква>|<идентификатор><буква>|<идентификатор><цифра>
<цифра>::=0| 1| 2…|9
<буква>::=a|b|c…|z
Vт = {0,1,2…9,a,b,…,z}
Vn = {I,B,C}
R = {IB , IIB , IIc , Ba , B…z , C0…C9}
Контекстно-свободные грамматики типа 2
<идентификатор>::=<буква><конец идентификатора>
<буква>::=a|b…|z
<конец идентификатора>::=<буква><идентификатор>|<цифра><идентификатор>| BK
Предполагается что идентификатор заканчивается символом BK.
Vт={0,1…9,a,b,c…,z,BK}
Vn ={I , B , C , E}
R = {IBE , EBE , ECE , EBK , Aa..z , C0..9}
пример определения десятичное число с точкой и знаком.
<десятичное число с(.)>::=+<десятичное число с (.)>|<десятичное число с (.)>|-<десятичное число с (.)>
< десятичное число с (.)>::=<целое число> , <целое число> | . <целое число>.
<целое число>::= <цифра>|<целое число><цифра>
<цифра>::=0|1…|9
Vт ={0,1…9 , + , - , .}
Vn = {P , Q , N , D}
R = {P+Q , PQ , P-Q , QN , QN , ND , NND , D0 , D1…D9}