SU1290358A1 - Устройство дл преобразовани выражений в польскую инверсную запись - Google Patents
Устройство дл преобразовани выражений в польскую инверсную запись Download PDFInfo
- Publication number
- SU1290358A1 SU1290358A1 SU853950536A SU3950536A SU1290358A1 SU 1290358 A1 SU1290358 A1 SU 1290358A1 SU 853950536 A SU853950536 A SU 853950536A SU 3950536 A SU3950536 A SU 3950536A SU 1290358 A1 SU1290358 A1 SU 1290358A1
- Authority
- SU
- USSR - Soviet Union
- Prior art keywords
- register
- shift
- block
- input
- decoder
- Prior art date
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Изобретение относитс к вычислительной технике. Целью изобретени вл етс повьппение достоверности работы за счет обеспечени контрол парности открывающей и закрывающей скобок, принадлежности символов / входного выражени множеству лексических единиц баланса операторов и операций, обеспечени классификации ошибок и повьппени быстродействи . .Устройство содержит регистр 1, депгаф- ратор 2 лексических единиц, блок 3 пам ти, дешифратор 4, блок 5 микропрограммного управлени , реверсивный регистр 6 сдвига, коммутатор 7, рет- гистр 8. 6 ил. нтт W со ел 00 gjuf.t
Description
fO
15
20
25
Изобретение относитс к вычислиельной технике и может быть испольовано в автоматизированных системах бработки данных и производства программ дл электронных вычислительных машин (ЭВМ).
Целью изобретени вл етс повыение достоверности работы путем беспечени контрол парности открыающей и закрывающей скобок, принадежности символов входного выражени множеству лексических единиц, баланса операторов и операций, обеспечени классификации ошибок и повыени быстродействи .
На фиг,1 представлена структурна схема устройстваз на фиг. 2 - структурна схема блока пам ти, на фиг.З- структурна схема блока микропрограммного управлени на фиг.4 - схема реверсивного регистра сдвига на фиг.5 - схема реверсивного регистра сдвига блока пам ти/ на фиг.6 - блок- схема микропрограммного управлени устройством.
, Устройство содержит регистр 1 , дешифратор 2 лексических единиц, блок 3 пам ти, дешифратор 4, блок 5 микропрограммного управлени , реверсивный регистр 6 сдвига, коммутатор 7, регистр Sijреверсивные регистры 9 сдвига, программируема логическа матрица И 10, программируема логическа матрица ИЛИ 11, узел 12 пам ти, элемент ИЛИ 13, гене- 35 ратор 14 тактовых импульсов, триггер 15, элемент 16 задержки, элемент И 17, группу 18 триггеров, группу 1 9 элементов ИЛИ, группу 20 элементов И, группу 21 триггеров, груп- 40 пу 22 элементов ИЛИ, группу 23 элементов И, элемент НЕ 24, узел 25 записи разр да.
Регистр 1 используетс дл хране- 45 ни очередной лексической единицы исходного выражени , дешифратор 2 лексических единиц раздел ет лексические единицы на операнды, операции, скобки.
Блок 3 пам ти - это пам ть с пос- 50 ледовательным безадресным принципом записи и чтени . Дешифратор 4 совместно с блоком пам ти реализуют логическую функцию выработки и сравнени приоритетов.
5
30
55
Блок 5 микропрограммного управлени организует взаимодействие всех элементов устройства и его функцио
.нирование описано блок-схемой микропрограммного управлени (фиг.6), где входные сигналы X , х , х формирует дешифратор 4, сх noxg- дешифратор 2 лексических единиц, х,, х,(,, - блок 6 контрол , сигналы микро- команд с у по y,g формирует блок 5 микропрограммного управлени . Содержательный смысл входных сигналов и микрокоманд следующий:
1, если ход операции, занесенный в старшие разр ды регистров сдвига блока 3 пам ти , имеет больший приоритет , чем код операции, занесенный в предшествующие старшим разр ды регистров - в противном случае.
1о
1.
г
}
если содержимое старших разр дов регистров сдвига блока 3 пам ти равно значению кода Пустой символ О-в противном случае.
1, если содержимое старших разр дов регистров сдвига блока 3 пам ти равно значению кода открывающей скобки
О - в противном случае
1
I О 1.
если очередна лексическа единица исходного выражени есть открывающа скобкаj
-в противном случае, если очередна лексическа единица исходного выражени есть операнд;
-в противном.случае.
1,
х
х.
если очередна лексическа единица исходного выражени есть операнду О-в противном случае.
если очередна лексическа единица исходного выражени есть закрьшающа с скобка 0 - в противном случае.
1, если очередна лексическа единица исходного выражени есть конец выражени j j
О-в противном случае.
1, если содержимое третьего разр да реверсивного ре- гистра 6 сдвига есть едини- ца
О-в противном случае.
, если содержимое первого разр да реверсивного регистра 6 сдвига есть единица5
-в противном случае.
, если содержимое четвертого разр да реверсивного регистра 6 сдвига eqTb единица,
-в противном случае,
разблокировать/ заблокировать регистр 1,
записать содержимое регистра 1 в N-e (старшие) разр ды регистров сдвига блока пам ти;
30
35
сдвинуть влево содержимое регистров сдвига блока пам ти переключить коммутатор 7 на запись из регистра 1j установить начальные значени 20 регистра 6 (значение кода 0100) и регистров сдвига блока 3 пам ти (значение кода О в (N-1) разр дах), выдать сигнал ошибки Отсут- ствует закрывающа скобка , переключить коммутатор 7 на запись из (N-1) разр дов регистров сдвига блока 3 пам ти J. сдвинуть вправо на один разр д содержимое сдвига блока 3 пам ти-,
переключить коммутатор 7 на запись из N разр дов регистров сдвига блока 3 пам ти, выдать сигнал ошибки Отсутствует открывающа скобка, выдать сигнал ошибки Лексическа единица не принадлежит алфавиту лексических единиц }
выдать сигнал ошибки Число операндов равно числу операций . Пропущен операнд J сдвинуть вправо на один разр д содержимое регистра 6,- сдвинуть влево на один разр д содержимое регистра 6;
вьщать сигнал ошибки Число 50 операций больше числа операндов . Пропущен операнд ; вьщать сигнал ошибки Число операндов превьшгает число операций больше чем на единицу. 55 Пропущена операци .
Регистр 6 провер ет наличие и по- док следовани лексических единиц
У4 У . у , у
у.
У,о У ..
45,
/О
5
0
5
0
0 5
0
5,
в исходном выражении и совместно с блоком микропрограммного управлени осуществл ет классификацию ошибок, Коммутатор 7 управл ет передачами лексических единиц, а регистр 8 предназначен дл хранени очередной лексической единицы в форме польской инверсной записи. Реверсивные регистры сдвига блока 3 пам ти поразр дно сдвигают код операций и совместно с дешифратором 4 осуществл ют сравнение приоритетов. Программируема логическа матрица И 10 совместно с программируемой логической матрицей ИЛИ 11 и узлом 12 пам ти органи- 3iTOT работу блока микропрограммного управлени . Элемент ИЛИ 13 вырабаты- вает сигнал Останов устройства. Генератор 14 тактовых импульсов совместно с триггером 15 и элементом И 17 организуют сигналы запуска устройства. Элемент 16 задержки предназначен дл начальной установки узла пам ти блока перед пуском устройства .
Группа 18 триггеров блока контрол образует четыре разр да реверсивного сдвигающего регистра, каждый из которых соответствует определенному клас- ру ошибок блока контрол . Группы 19 элементов ИЛИ совместно с группами элементов И организуют входные цепи реверсивного сдвигающего регистра таким образом, что начальна установка соответствует установке второго триггера (фиг,4) в единичное состо ние , а остальных в нулевое.
Группа 21 триггеров реверсивного регистра сдвига блока пам ти образует разр ды реверсивного сдвигающего регистра . Группа 22 элементов ШТИ совместно с группой 23 элементов И и элементом НЕ 24 организуют входные цепи .реверсивного сдвигающего регистра блока пам ти таким образом, что начальна установка соответствует установке разр да, предшествующего -старшему (фиг,5), в О. При этом элемент НЕ и св занные с ним элементы И образуют узел 25 записи разр да регистра 1, предназначенный дл организации информационного входа реверсив- ;ного регистра сдвига блока пам ти.
Устройство работает следующим об- разом.
Лексические единицы исходного выражени - последовательно поступают на
регистр 1, а затем на дешифратор 2 и на старший разр д блока 3 пам ти, причем дешифратор раздел ет их на опранды , операции, скобки рткрьшающие, скобки закрывающие и конец выраже- ни ;.
Если очередна лексическа единиц есть операнд, то дешифратор 2 запускет блок 5 микропрограммного управлени , управл ющие сигналы которого (микрокоманды у, у. ) переключают коммутатор 7 на запись лексической единицы из регистра 1 в регистр 8, а также осуществл ют сдвиг вправо на один разр д содержимого регистра 6. Если содержимое четвертого разр да регистра 6 есть ноль, что означает отсутствие ошибки Число операндов превьш1ает число операций больше, чем на единицу, происходит переход к анализу следующей лексической единиц Если же содержимое четвертого разр да регистра 6 есть единица, что соответствует наличию ошибки Число операндов превышает число операций больше, чем на единицу. Пропущена операци , блок 5 микропрограммного управлени вырабатьшает микрокоманды блокировки регистра 1 (у.) и вьщачи сигнала ошибки (y,g) Число операндо превьппает число операций больше, чем на единицу. Пропущена операци , заи
регистра 1 в старшие разр ды регистров сдвига блока 3 пам ти, сдвигают влево на один разр д содержимое регистра 6 сдвига, блокируют регистр 1. Если содержимое первого разр да регистра 6 сдвига равно единице, блок 5 микропрограммного управлени вырабатывает сигнал ошибки Число операций больше числа операндов. Пропущен операнд , формируетс Останов, и процесс перевода прекращаетс . Если содержимое первого разр да регистра 6 сдвига равно нулю, дешифратор 4, на который поступает содержимое старших и предшествующих старшим разр дов регистров сдвига блока 3 пам ти, формирует логический сигнал отношени приоритетов текущей и предшест- 20 вующей операций. Если код операции, занесенный в старшие разр ды регистров сдвига блока 3 пам ти, имеет больший приоритет, чем код операции, занесенной в разр ды, предшествующие старшим, дешифратор 4 запускает блок 5 микропрограммного управлени , управл ющий, сигнал которого сдвигает влево на один разр д содержимое ре-, гистров сдвига блока 3 пам ти, затем разблокируетс регистр 1, и происходит п€феход к1 анализу следующей лексической единицы. Если код операции , занесенньй в старшие разр ды регистров сдвига блока 3 пам ти,
тем формируетс Останов, и процесс перевода прекращаетс .
Если очередна лексическа единица 35 меньше или равен коду операции, за - есть открывакица скобка, дешифратор 2 несенной в предшествующие старшим
разр ды регистров сдвига блока 3 пам ти , дешифратор 4 запускает блок 5 микропрограммного управлени , управ- л ющий сигнал которого (микрокоманда у) переключает коммутатор 7 на запись содержимого из предшествующих старшим разр дов регистров сдвига блока 3 пам ти в регистр 8. Затем блок 5 мик- 45 ропрограммно го управлени сдвигает на один разр д вправо (микрокоманды Уд) содержиз юе регистров сдвига блока 3 пам ти. Процедура разрешени переключени коммутатора 7 на запись содер- блокирующий регистр 1, происходит пе- 50 жимого : федшествующих старшим разр - реход к анализу следующей лексической Дов регистров сдвига блока 3 пам ти единицы.S регистр 8 и разрешени сдвига впра . ,во содержимого регистров сдвига блоЕсли очередна лексическа единица ка 3 пам ти выполн етс до тех пор, есть операци , дешифратор 2 лексичес- 55 пока в предшествующих старшим разр - ких единиц запускает блок 5 микропрограммного управлени , управл ющие сигналы которого (микрокоманды у,
лексических единиц запускает блок 5 микропрограммного управлени , управл ющие сигналы которого (микрокоманды У, , У, ) записьюают открывающую скобку из регистра 1 в старшие раз-- р ды регистров сдвига блока 3 пам ти и блокируют регистр 1. Затем блок 5 микропрограммного управлени вырабатывает управл ющий сигнал (микрокоманду Уд), сдвигающий влево, содержимое регистров сдвига блока 3 пам ти, а вслед за этим вырабатываетс управл ющий сигнал (микрокоманда у, ), разн
у, ) записывают лексическую едидах регистров сдвига блока 3 пам ти
не будет находитьс код операции с приоритетом меньшим, чем приоритет
текущей операции.
10
5
03586
ницу (в данном случае операцию) из
регистра 1 в старшие разр ды регистров сдвига блока 3 пам ти, сдвигают влево на один разр д содержимое регистра 6 сдвига, блокируют регистр 1. Если содержимое первого разр да регистра 6 сдвига равно единице, блок 5 микропрограммного управлени вырабатывает сигнал ошибки Число операций больше числа операндов. Пропущен операнд , формируетс Останов, и процесс перевода прекращаетс . Если содержимое первого разр да регистра 6 сдвига равно нулю, дешифратор 4, на который поступает содержимое старших и предшествующих старшим разр дов регистров сдвига блока 3 пам ти, формирует логический сигнал отношени приоритетов текущей и предшест- 20 вующей операций. Если код операции, занесенный в старшие разр ды регистров сдвига блока 3 пам ти, имеет больший приоритет, чем код операции, занесенной в разр ды, предшествующие старшим, дешифратор 4 запускает блок 5 микропрограммного управлени , управл ющий, сигнал которого сдвигает влево на один разр д содержимое ре-, гистров сдвига блока 3 пам ти, затем разблокируетс регистр 1, и происходит п€феход к1 анализу следующей лексической единицы. Если код операции , занесенньй в старшие разр ды регистров сдвига блока 3 пам ти,
30
ка 3 пам ти выполн етс до тех пор, пока в предшествующих старшим разр -
дах регистров сдвига блока 3 пам ти
не будет находитьс код операции с приоритетом меньшим, чем приоритет
текущей операции.
Если очередна лексическа единиц есть закрывающа скобка, дешифратор запускает блок 5 микропрограммного управлени , управл ющие сигналы которого (микрокоманды уд, у,) сдвигают вправо на один разр д содержимое регистров сдвига блока 3 пам ти и блокируют регистр 1. Значение содержимого старших разр дов регистров сдвигов блока 3 пам ти.поступает на дешифратор 4. Если содержимое старших разр дов регистров сдвига блока 3 пам ти есть код открывающей скобки, то дешифратор 4 запускает блок 5 микропрограммного управлени , управл ющий сигнал которого (микрокоманды у.) сдвигает вправо содержимое регистров сдвига блока 3 пам ти , происходит разблокирование регистра 1 и переход к анализу следующей лексической единицы, т.е. закрывающа и перва из встретившихс открывающих скобок в регистр 8 не попадают. Если содержимое старших разр дов регистров сдвига блока 3 пам ти не вл етс кодом открывающей скобки, дешифратор 4 запускает блок микропрограммного управлени , управл ющий сигнал которого (микрокоманда Уд) переключает коммутатор 7 на запись содержимого старших разр дов регистров сдвига блока 3 пам ти в регистр 8, сдвигает на один разр д вправо содержимое регистров сдвига блока 3 пам ти. Дешифратор 4 определ ет значение кода старших разр дов регистров сдвига блока 3 пам ти. Если это значение есть код пустого символа, чТо означает отсутствие в исходном выражении символа открываю-, щей скобки, дешифратор 4 запускает блок 5 микропрограммного управлени , управл ющий сигнал которого (микрокоманда ) формирует сигнал ошибки Отсутствует открывающа скобка, формирует Останов и процесс, перевода прекращаетс . Если значение кода старших разр дов регистров сдвига блока 3 пам ти не вл етс кодом пустого символа, дешифратор 4 определ ет значение кода старших разр дов регистров сдвига блока 3 пам ти, и процесс анализа на наличие в блоке пам ти -открывающей скобки продолжаетс до тех пор, пока не будет найдена открывающа скобка (что соответствует правильности исходного выражени ), или обнаружен код пустого символа (что соответствует ошибке).
O
5
Если очередна лексическа единица есть символ Конец вьфажени , то дешифратор 2 запускает блок 5, управл ющий сигнал которого (микрокоман- - да у,) блокирует регистр 1. Дешифратор 4 определ ет значение кода стар- ших разр дов сдвига блока 3 пам ти. Если значение кода старших разр дов
регистров сдвига блока 3 пам ти есть код пустого символа, блок 5 анализирует значение содержимого третьего разр да регистра 6 сдвига. Если это значение равно единице, то блок 5 переключает коммутатор 7 на запись содержимого регистра 1 в регистр 8 (микрокоманда у). Процесс перевода нормально завершен. Устройство готово к переводу следующего выражени . Если значение третьего разр да регистра
0 6 сдвига равно нулю, то регистр 6 запускает блок 5 микропрограммного уп-. равлени , формирует сигнал у ошибки Число операндов равно числу операций . Отсутствует операнд, выраба-
5 тьшаетс Останов, и процесс перевода прекращаетс . Если значение кода старших разр дов регистров сдвига блока 3 пам ти отлично от кода пустого символа, дешифратор 4 запускает блок 5
0 микропрограммного управлени , который анализирует значение выходного сигнала дешифратора 4. Если в старших разр дах регистров сдвига блока 3 пам ти находитс лексическа единица
(скобка открьшающа ), то блок 5 микропрограммного управлени вырабатывает сигнал у ошибки Отсутствует закрывающа скобка и осуществл ет останов работы устройства. Если ошибка отсутствует , то дешифратор 4 запускает блок 5, управл кнций сигнал которого
0
(микрокоманда у„) переключает коммутатор 7 на запись из старших разр цоз регистров сдвига блока 3 пам ти в ре5 гйстр 8, и происходит сдвиг вправо на один разр д содержимого регистров сдвига блока 3 пам ти. Затем дешифратор 4 определ ет значение кода старших разр дов.регистров сдвига блока 3
0 пам ти и запускает блок 5; Процесс повтор етс до тех пор, пока не будет обнаружен код пустого символа или не будет обнар5 ен код открывающей скобки (что свидетельствует о наличии f
5 ошибки в исходном выражении) в старших разр дах регистров сдвига блока 3 пам ти, определ емых дешифратором 4.
Если очередна лексическа единица не вл етс ни операндом, ни oneрацией , ни открывающей скобкой, ни закрьшающей скобкой, ни символом конца вьфажени , то дешифратор 2 запускает блок 5 микропрограммного управлени , который формирует сигнал ошиб- 5 р д содержимого регистров сдвига
которьй формирует значение выходног сигнала, по которому с помощью блока 5 микропрограммного управлени производитс сдвиг влево на один ра
ки Лексическа единица не принадлежит алфавиту лексических единиц, блокируетс регистр 1, вырабатьгааетс Останов , и процесс перевода прекращаетс .
. П р им е.р 1. Пусть входное выражение имеет вид АхВ+С/ (D-E)J где ; используетс как лексическа единица Конец выражени .
блока 3.пам ти. После этого регистр разблокируетс .
Следующа лексическа единица В записьшаетс в регистр 1 и дешифруе 0 с как операнд С помощью блока 5 коммутатор 7 подключаетс на запись из регистра 1, и лексическа единица в переписьюаетс из регистра 1 в регистр 8, происходит сдвиг вправ
Процесс перевода исходного выраже- 15 на один разр д содержимого регистра 6 (на регистре образуетс код 0010). Производитс переход к след щей лексической единице, . Очередна лексическа единица 20 записываетс в регистр 1 и определ етс дешифратором 2 как операци ,
блокируетс регистр 1, осуществл е сдвиг на один разр д влево содержи мого регистра 6, т.е. на указанном
ни в польскую инверсную запись заключаетс в следующем. Производитс начальна установка значений регистра 6 и блока 3 пам ти, т,е, в регистр 6 заноситс код 0100, в разр ды , предшествунмцие старшим разр дам регистров сдвига блока 3 пам ти, заноситс значение кода пустого символа . На регистр 1 поступает лексическа единица А, котора определ ет- 25;регистре образуетс код 0100, Так с дешифратором 2 как операнд, и с помощью блока 5 микропрограммного управлени производитс подключение входа коммутатора 7 на запись лексической единицы А из регистра 1 в регистр 8, а также сдвиг вправо на один разр д содержимого регистра 6 (на регистре образуетс код 0010), Блок 5 микропрограммного управлени анализирует значение четвертого разр да регистра 6, Так как оно равно нулю, производитс переход к следующей лексической единице.
как значение первого разр да регис ра 6 сдвига равно нулю, дешифратор формирует значение X|g О,
Из регистра 1 код + записьтае
30 в старшие разр ды регистров сдвига блока 3 пам ти. Значение кода +, занесенное- в старшие разр ды регис ров сдвига блока 3 пам ти, и значе кода х, занесенного в предшеству
ij щие старшим разр ды регистров сдви блока 3 пам ти, поступают на дешиф ратор 4, которьй формирует значени выходного сигнала х О, так как приоритет предьщущей операции боль
На регистр 1 поступает следующа лексическа единица х, котора фиксируетс дешифратором 2 как знак операции. Производитс блокировка регистра 1, Из регистра 1 код х записываетс в старшие разр ды регистров сдвига блока 3 пам ти. Осуществл етс сдвиг влево на один разр д содержимого регистра 6, т.е. на указанном регистре образуетс код 0100. При этом дешифратор 4 формирует значение отсутстви ошибки, так как значение первого разр да регистра 6 равно нулю. Значение кода х, занесенное в старшие разр ды регистров сдвига блока 3 пам ти, и значение кода пустого символа, которое находитс в предшествующих старшим разр дах регистров сдвига блока 3 пам ти, поступают на дешифратор 4,
р д содержимого регистров сдвига
которьй формирует значение выходного сигнала, по которому с помощью блока 5 микропрограммного управлени производитс сдвиг влево на один разблока 3.пам ти. После этого регистр 1 разблокируетс .
Следующа лексическа единица В записьшаетс в регистр 1 и дешифрует- с как операнд С помощью блока 5 коммутатор 7 подключаетс на запись из регистра 1, и лексическа единица в переписьюаетс из регистра 1 в регистр 8, происходит сдвиг вправо
на один разр д содержимого регистра 6 (на регистре образуетс код 0010). Производитс переход к следующей лексической единице, . Очередна лексическа единица + 20 записываетс в регистр 1 и определ етс дешифратором 2 как операци ,
блокируетс регистр 1, осуществл етс сдвиг на один разр д влево содержимого регистра 6, т.е. на указанном
25;регистре образуетс код 0100, Так
егистре образуетс код 0100, Так
как значение первого разр да регист-. ра 6 сдвига равно нулю, дешифратор 4 формирует значение X|g О,
Из регистра 1 код + записьтаетс
в старшие разр ды регистров сдвига блока 3 пам ти. Значение кода +, занесенное- в старшие разр ды регистров сдвига блока 3 пам ти, и значение кода х, занесенного в предшествующие старшим разр ды регистров сдвига блока 3 пам ти, поступают на дешифратор 4, которьй формирует значение выходного сигнала х О, так как приоритет предьщущей операции больше,
чем последующей. С помощью блока 5 коммутатор 7 переключаетс на запись из предшествующих старшим разр дов регистров сдвига блока 3 пам ти и производитс запись содержимого этих
разр дов в регистр 8 (в данном случае лексической единицы х). Затем осуществл етс сдвиг на один разр д вправо содержимого регистров сдвига блока 3 пам ти и осуществл етс запись в старшие разр ды регистров сдвига блока 3 пам ти лексической единицы + с регистра 1. Значени старших и предшествующих старшим разр дов сдвига блока 3 пам ти поступают на
дешифратор 4, который формирует выходной сигнал х, 1, так как приоритет операции +, код которой хранитс в старших разр дах, больше приоритета пустого символа, хранимого в
11
предшествующих старшим разр дах регистров блока 3 пам ти. С помощью блока 5 производитс сдвиг влево на один разр д содержимого регистров
На регистр 1 принимаетс очередна
лексическа единица -, котора определ етс дешифратором 2 как операци . Производитс блокировка регистсдвига блока 3 пам ти. После этого ре-з ра 1 . Код - из регистра 1 записыtt/-iii
гистр 1 разблокируетс .
Следующа лексическа единица.С записываетс в регистр 1, определ етс дешифратором 2 как операнд, и с
ваетс в старшие разр ды регистров , сдвига блока 3 пам ти. Осуществл етс сдвиг влево на,один разр д содержимого регистра 6 (на регистре обрапомощью блока 5 производитс переклю- tO зуетс код 0100). При этом дешифрачение входа коммутатора 7 на запись операнда С в регистр 8, а также сдвиг вправо на один разр д содержимого регистра 6 (на регистре образуеттор 4 формирует сигнаш отсутстви опшбки, а дешифратор 2, на который поступают значени старших разр дов (код -) и предшествующих старшим
с код 0010). Так как значение четвер- 5 разр дов (код С) регистров сдвига того разр да регистра 6 равно нулю, блока 3 пам ти, формирует выходной блок 5 переходит к управлению работой сигнал х, 1, по которому с помощью устройства к анализу следующей лексической единицы.
Очередна лексическа единица / 20 сдвига блока 3 пам ти. После этого определ етс дешифратором; 2 как опера- регистр 1 разблокируетс , ци . Производитс блокировка регистра 1 . Из регистра 1 с помощью блока 5 / записьгоаетс в старшие разр блока 5 производитс сдвиг влево на один разр д содержимого регистров
Очередна лексическа единица Е принимаетс на регистр 1. Она вл етс операндом. На регистре 6 обра- 25 зуетс код 0010, и код Е записьша- етс в регистр 8.
На регистр 1 принимаетс следующа лексическа единица ). Дешифратором 2 она определ етс как скобкод
ды регистров сдвига блока 3 пам ти. Осуществл етс сдвиг влево на один разр д содержимого регистра 6 .(на регистре образуетс код 0100). При этом дешифратор 4 формирует сигнал .отсут- .
стви ошибки. Значение кода /, за- 30 ка закрывающа . С помощью блока 5 несенного в старшие разр ды регистров осуществл етс сдвиг на один разр д сдвига блока 3 пам ти, и значение кода +, занесенное ранее и наход щеес в предшествующих старшим разр дах регистров сдвига блока 3 пам ти, пос- 35 ™ выходного сигнала х,, О, .так как тупают на дешифратор 4, который фор- .старших разр.чдах регистров сдвига мирует значение выходного сигнала X, 1, по которому с помощью блока 5 производитс сдвиг влево на один разр д содержимого регистров сдвига бло- 40 .а 5 осуществл етс переключение
коммутатора
вправо содержимого регистров сдвига
блока 3 пам ти и блокируетс ре-. гистр 1. Дешифратор формирует значе-
блока 3 пам ти находитс код лексической единицы - (т.е. код, отличный от открывающей скобки). С помощью
ка 3 пам ти, после чего регистр 1 разблокируетс .
Очередна логическа единица С записываетс в регистр 1 и определ етс дешифратором 2 как скобка от-, крывающа . С помощью блока 5 блокируетс регистр 1, и значение кода С переписьшаетс из регистра 1 в старшие разр ды регистров сдвига блока 3 пам ти. После этого осуществл етс сдвиг влево на один разр д содержи- мого регистров сдвига блока 3 пам ти , регистр 1 разблокируетс ..
Очередна лексическа единица D . принимаетс на регистр 1. Она вл етс операндом. На регистре 6 образуетс код 0010, и код D записываетс в регистр 8.
7 на запись из старших разр дов сдвига блока 3 пам ти, и код лексической единицы г переписываетс в регистр 8. Затем осуществл етс
45 сдвиг вправо на один разр д содержимого регистров сдвига блока 3 пам ти. Дешифратор 4 формирует значение выходного сигнала х О, так как зна- : чени старших разр дов регистров
5Q сдвига блока 3 пам ти не равны значению кода Пустой символ, что означает наличие в блоке 3 пам ти кодов операций и скобок, т.е. необходимость дальнейшего перевода с целью обнару ,J2 жени окружающей скобки в блоке 3 пам ти . Сигнал с выходом дешифратора 4 запускает блок 5 микропрограммного управлени , которьй анализирует значение выходного сигнала и, так как
ло1290358 .12
На регистр 1 принимаетс очередна
лексическа единица -, котора определ етс дешифратором 2 как операци . Производитс блокировка регист
ваетс в старшие разр ды регистров , сдвига блока 3 пам ти. Осуществл етс сдвиг влево на,один разр д содержимого регистра 6 (на регистре обраразр дов (код С) регистров сдвига блока 3 пам ти, формирует выходной сигнал х, 1, по которому с помощью
блока 5 производитс сдвиг влево на один разр д содержимого регистров
сдвига блока 3 пам ти. После этого регистр 1 разблокируетс ,
Очередна лексическа единица Е принимаетс на регистр 1. Она вл етс операндом. На регистре 6 обра- зуетс код 0010, и код Е записьша- етс в регистр 8.
На регистр 1 принимаетс следующа лексическа единица ). Дешифратором 2 она определ етс как скобка закрывающа . С помощью блока 5 осуществл етс сдвиг на один разр д ™ выходного сигнала х,, О, .так как .старших разр.чдах регистров сдвига .а 5 осуществл етс переключение
вправо содержимого регистров сдвига
блока 3 пам ти и блокируетс ре-. гистр 1. Дешифратор формирует значе-
ка закрывающа . С помощью блока 5 осуществл етс сдвиг на один разр д ™ выходного сигнала х,, О, .так как .старших разр.чдах регистров сдвига а 5 осуществл етс переключение
блока 3 пам ти находитс код лексической единицы - (т.е. код, отличный от открывающей скобки). С помощью
30 ка закрывающа . С помощью блока 5 осуществл етс сдвиг на один разр д 35 ™ выходного сигнала х,, О, .так как .старших разр.чдах регистров сдвига 40 .а 5 осуществл етс переключение
коммутатора
7 на запись из старших разр дов сдвига блока 3 пам ти, и код лексической единицы г переписываетс в регистр 8. Затем осуществл етс
45 сдвиг вправо на один разр д содержимого регистров сдвига блока 3 пам ти Дешифратор 4 формирует значение выходного сигнала х О, так как зна- чени старших разр дов регистров
5Q сдвига блока 3 пам ти не равны значению кода Пустой символ, что означает наличие в блоке 3 пам ти кодов операций и скобок, т.е. необходимость дальнейшего перевода с целью обнару ,J2 жени окружающей скобки в блоке 3 пам ти . Сигнал с выходом дешифратора 4 запускает блок 5 микропрограммного управлени , которьй анализирует значение выходного сигнала и, так как
131290358
- 1 (в старших разр дах регистров сдвига блока 3 пам ти находитс код открывающей скобки), блок 5 разрешает сДвиг вправо на один разр д содержимого регистров сдвига блока пам ти. При этом значение кода открывающей скобки, находившеес до сдвига в старших разр дах регистров сдвига блока 3 пам ти, после сдвига тер етс и в регистр 8 не попадает. Разблокируетс регистр 1.
10
ни ин
ра де ще
ни в ле л в ед де ва сд ос ги вл
Очередна лексическа единица ; записываетс на регистр 1 и дешифри- руетс как код конца выражени , Де- 5 шифратор 2 запускает блок 5, которьй блокирует регистр 1, Дешифратор 4 формирует значение выходного сигнала х„ О , так как значение старших разПроцесс перевода входного выр ни и обнаружени ошибки заключае в следзпощем. На регистр 1 поступа лексическа единица А, котора л етс операндом и переписываетс в регистр 8, Очередна лексическа единица + поступает на регистр дешифрируетс как операци и запи ваетс в старшие разр ды регистро сдвига блока 3 пам ти, после чего осуществл етс сдвиг содержимого гистров блока 3 пам ти на один ра влево, так как значение выходного
р дов регистров сдвига блока 3 пам ти 20 сигнала х дешифратора 4 равно 1, не равно коду nycToiro символа, а равно коду операции /, и значение выходного сигнала Хз О, так как значение старших разр дов регистров сдвига блока 3 пам ти не равно значению кода открывающей скобки, и запускает блок 5, которьй переключает коммутатор 7 на запись со старших разр дов регистров сдвига блока 3 пам ти (лексическа единица / переписываетс - в регистр 8), а затем разрешает сдвиг вправо на один разр д содержимого регистров сдвига блока 3 пам ти, и в старшие разр ды регистра сдвига бло Разблокируетс регистр 1.
На регистр 1 поступает лексиче единица В, котора вл етс опе дом и переписогоаетс в регистр 8,
Очередна лексическа единица поступает на регистр 1, дешифриру как скобка закрывающа . Блокирует регистр 1, и осуществл етс сдвиг вправо на один разр д соде ржимого гистров сдвига блока 3 пам ти. Де ратор 4 формирует выходной сигнал Xj О, так как в старших разр дах регистров сдвига блока 3 пам ти н находитс код открывающей скобки
ка 3 пам ти попадает лексическа еди- 35 (там находитс код лексической едини- ница +, Так как дешифратор 4 форми- цы +) и запускает блок 5, которьй рует значени выходных сигналов х О, Xj О, аналогичным образом лекси- :ческа единица + переписьгоаетс в
разрешает запись кода + из старших
разр дсй сдвига блока 3 пам ти через коммутатор 7 в регистр 8, а затем разрешает сдвиг вправо на один разр д содержикюго регистров сдвига блока 3 пам ти. В старших разр дах регистров сдвига блока 3 пам ти образуетс код пустого символа. Дешифратор 4 формирегистр 8, и после сдвига в старших. 40 разр дах регистров сдвига блока пам - ,ти образуетс код пустого символа, в этом случае дешифратор 4 формирует значение выходного сигнала х 1 и
запускает блок 5, который анализирует 45 рует выходной сигнал х Г, так как значение третьего разр да регистра 6, значение старших разр дов регистров
сдвига блока 3 пам ти равно коду пустого символа и запускает блок 5, который формирует сигнал ошибки Отсутразр дсй сдвига блока 3 пам ти через коммутатор 7 в регистр 8, а затем разрешает сдвиг вправо на один разр д содержикюго регистров сдвига блока 3 пам ти. В старших разр дах регистров сдвига блока 3 пам ти образуетс код пустого символа. Дешифратор 4 формиа , так как значение последнего равно единице (отсутствие ошибки), блок 5 разрешает переключение коммутатора 7
на запись лексической единицы ; из 50 ствует открывающа скобка и формирурегист1 )а 1 в регистр 8, Устройство закончило перевод выражени и готово к приему следующего выражени .
ет останов работы устройства.
Пример 3. Пусть входное выражение :имеет вид АВ + ; , т.е. содержит ошибку - подр д идущие операнТаким образом, на регистр 1 посту- 55 ды с пропущенным знаком операции между ними.
пило выражение А х В + С / (D - Е); а через регистр 8 на выход устройства выражение поступило в виде АВ х CDE- / +
Полученньй пор док следоваПроцесс обнаружени ошибки заключаетс в следующем. Перва лексичес
ни си1 1волов соответствует польской инверсной записи входного выражени .
Пример 2„ Пусть входное выражение имеет вид А + В/ ; , т.е. содержит ошибку - отсутствие открьгоаю- щей скобки.
Процесс перевода входного выражени и обнаружени ошибки заключаетс в следзпощем. На регистр 1 поступает лексическа единица А, котора вл етс операндом и переписываетс в регистр 8, Очередна лексическа единица + поступает на регистр 1, дешифрируетс как операци и записываетс в старшие разр ды регистров сдвига блока 3 пам ти, после чего осуществл етс сдвиг содержимого регистров блока 3 пам ти на один разр д влево, так как значение выходного
сигнала х дешифратора 4 равно 1,
Разблокируетс регистр 1.
На регистр 1 поступает лексическа единица В, котора вл етс операндом и переписогоаетс в регистр 8,
Очередна лексическа единица ) поступает на регистр 1, дешифрируетс как скобка закрывающа . Блокируетс регистр 1, и осуществл етс сдвиг вправо на один разр д соде ржимого регистров сдвига блока 3 пам ти. Дешифратор 4 формирует выходной сигнал Xj О, так как в старших разр дах регистров сдвига блока 3 пам ти не находитс код открывающей скобки
(там находитс код лексической едини- цы +) и запускает блок 5, которьй
разрешает запись кода + из старших
(там находитс код лексической едини- цы +) и запускает блок 5, которьй
рует выходной сигнал х Г, так как значение старших разр дов регистров
разр дсй сдвига блока 3 пам ти через коммутатор 7 в регистр 8, а затем разрешает сдвиг вправо на один разр д содержикюго регистров сдвига блока 3 пам ти. В старших разр дах регистров сдвига блока 3 пам ти образуетс код пустого символа. Дешифратор 4 формиПроцесс обнаружени ошибки заключаетс в следующем. Перва лексическа единица А поступает на регистр 1. Дешифрируетс как операнд. Дешифратор 2 запускает блок 5, который записывает лексическую единицу . А регистра 1 в регистр 8 через ком- мутатор 7 и разрешает сдвиг вправо на один разр д содержимого-регистра 6 где после сдвига образуетс код 0010 (при начальной установке был код 0100). Блок 5 анализирует значение старшего разр да регистра 6 и, так как это значение равно нулю, производит переход к следующей лексической единице.
Очередна лексическа единица В поступает на регистр 1. Она вл етс операндом, с помощью блока 5 В пере письгоаетс в регистр 8, осуществл етс сдвиг вправо на один разр д содержимого регистра 6, где образуетс код 0001. Блок 5 микропрограммного управлени анализирует значение старшего разр да регистра 6 и, так как оно равно единице, выдает сигнал у.
ошибки Число операндов превьш1ает число операций больше чем на единицу.
Пропущена операци
блокирует реществл етс сдвиг вправо на один раз р д содержимого регистров сдвига бло ка 3 пам ти (значение кода ( тер етс ) и производитс переход к следующей лексической единице исходного выражени .
Очередна лексическа единица ;
гистр 1 и формирует останов работы
устройства.
Пример 4. Пусть входное выра-30 дешифрируетс как конец выражени .
жение имеет вид А + ХВ, т.е. содержит Дешифратор 2 запускает блок 5, который блокирует регистр 1. Так как в старших разр дах регистров сдвига
ошибку - пропущен операнд.
Процесс перевода и обнаружени ошибки заключаетс в следующем. Перблока 3 пам ти находитс код лексива лексическа единица А есть.one- 35 ческой единицы ( (втора из скобок ранд. Она переписываетс ,в регистр 8, на регистре 6 формируетс код 0010.
Следующа лексическа единица + есть операци . Она записываетс в
потер на, так как была встречена закрывающа скобка, а перва из открывающих скобок присутствует в блоке 3 пам ти), дешифратор 4 формирует значение выходного сигнала Xg О и запускает блок 5, который анализирует значение выходного сигнала, формируемого дешифратором 4, а так .как х 1, блок 5 формирует сигнал у
блок 3 пам ти, на регистре 6 форми- 40 руетс код 0100. Очередна лексическа единица х есть операци . Она
потер на, так как была встречена закрывающа скобка, а перва из открывающих скобок присутствует в бло ке 3 пам ти), дешифратор 4 формирует значение выходного сигнала Xg О и запускает блок 5, который анализирует значение выходного сигнала, формируемого дешифратором 4, а так .как х 1, блок 5 формирует сигнал
записываетс в блок 3 па.м ти, блокируетс регистр 1, и после сдвига влево на один разр д содержимого регист- 45 ошибки Отсутствует закрывающа ра 6 на нем образуетс код 1000. скобка и формирует останов работы Блок 5 анализирует значение первого
устройства.
разр да регистра 6 и, так как оно равустройства .
но единице,вьщает сигнал у, ошибки Пропущенный операнд будет обнару- Число операций больше числа операн- 50 после исправлени ошибки, св занной с отсутствием закрывающей скобки, при повторном переводе вырадов . Пропущен операнд. и формирует останов работы устройства.
Пример 5. Пусть исходное выражение имеет вид ((А +) ; , т.е. 55 пропущена закрьшающа скобка и операнд . Лексические единицы (, ( занос тс в регистры сдвига блока 3 па- М ти
Лексическа единица А переписываетс в регистр 8. Лексическа единица + записываетс в регистры сдвига блока 3 пам ти, осуществл етс сдвиг на один разр д вправо содержимого регистров сдвига блока 3 пам ти Очередна лексическа единица дешифрируетс как скобка закрывающа . С помощью блока 5 блокируетс регистр 1 .и осуществл етс сдвиг вправо на один разр д содержимого регистров сдвига блока 3 пам ти, в результате чего в старших разр дах регистров сдвига блока 3 пам ти образуетс лексическа единица +, котора записываетс в регистр 8, и осуществл етс сдвиг на один разр д вправо содержимого.регистров сдвига блока 3 пам ти, так как в старших разр дах ре.гистров сдвига блока 3 пам ти образуетс код лексической
единицы (,
и так как х 1, осу
ществл етс сдвиг вправо на один разр д содержимого регистров сдвига бло- ка 3 пам ти (значение кода ( тер етс ) и производитс переход к следующей лексической единице исходного выражени .
Очередна лексическа единица ;
ешифрируетс как конец выражени .
блока 3 пам ти находитс код лексической единицы ( (втора из скобок
потер на, так как была встречена закрывающа скобка, а перва из открывающих скобок присутствует в блоке 3 пам ти), дешифратор 4 формирует значение выходного сигнала Xg О и запускает блок 5, который анализирует значение выходного сигнала, формируемого дешифратором 4, а так .как х 1, блок 5 формирует сигнал у
ошибки Отсутствует закрывающа скобка и формирует останов работы
ошибки Отсу скобка и фо
устройства.
Claims (2)
1. Устройство дл преобразовани выражений в польскую инверсную запись, содержащее дешифратор, первый регистр.
информацйонньш вход которого вл етс информационным входом устройства, а выход соединен с первым информационным входом коммутатора, с информационым входом блока пам ти и с входом дешифратора лексических единиц, выхо которого соединен с входом признаков лексических единиц блока микропрограмного управлени , первый выход микрокоманд которого соединен с входом за гтси первого регистра, второй выход микрокоманд соединен с первьм управл ющим входом коммутатора, третий выход микрокоманд соединен с входом записи блока пам ти, второй регистр, выход которого вл етс информационным выходом устройства, вход пуска блока микропрограммного управлени вл етс входом пуска устройства, отличающеес тем, что, с целью повышени быстродействи и достоверности работы путем обеспечени контрол парности открывающей и закрывающей скобок, принадлежности символов входного .выражени множеству лексических единиц, баланса операторов и операций, обеспечени классификации ошибок, в него введен реверсивный регистр сдвига, причем информационный выход и выход старшего разр да блока пам ти соединены соответственно с вторым и третьим информационными входами коммутатора и с входами дешифратора,, выход коммутато
ра подключен к входу второго регистр
выход дешифратора соединен с входом признаков отнсгшений приоритетов блока микропрограммного управлени , выходы микрокоманд которого, начина с четвертого ,, соединены соответственно с вторым и третьим управл ющими входами коммутатора, с входами сдвига влево и сдвига вправо блока пам ти, с входами сдвига влево и сдвига вправо реверсивного регистра сдвига и с уста- новочньми входами блока пам ти и реверсивного регистра сдвига, выходы разр дов которого соединены с входом признаков ошибки блока микропрограммного управлени , выходы сигналов ошибок которого вл ютс соответственно выходами сигналов ошибок устройства .
2. Устройство по п,1, отличающеес тем, что блок пам ти содержит реверсивные регистры сдвига, входы сдвига влево, сдвига вправо, записи и установочные входы которых вл ютс соответственно входами сдвига влево, сдвига вправо, записи и установочным входом блока, входы старших разр дов регистров сдвига соединены
с информационным входом блока, выходы старших разр дов регистров сдвига и выходы разр дов, предшествующих старшим вл ютс соответственно выходом старшего разр да и информационным
Фиг2
/7ycff
XfXf.
4 О
Xw
У1 Ув а,,г Уа Уа
J4 15
Гб
13
12
Н
m±
JO
//
Xs
fpus:
(A g/yf4)
ipueo
Произв.-полигр. пр-тие, г. Ужгород,
фигб ВНИИПИ Заказ 7905/49 Тираж 673
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU853950536A SU1290358A1 (ru) | 1985-08-30 | 1985-08-30 | Устройство дл преобразовани выражений в польскую инверсную запись |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU853950536A SU1290358A1 (ru) | 1985-08-30 | 1985-08-30 | Устройство дл преобразовани выражений в польскую инверсную запись |
Publications (1)
Publication Number | Publication Date |
---|---|
SU1290358A1 true SU1290358A1 (ru) | 1987-02-15 |
Family
ID=21196333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU853950536A SU1290358A1 (ru) | 1985-08-30 | 1985-08-30 | Устройство дл преобразовани выражений в польскую инверсную запись |
Country Status (1)
Country | Link |
---|---|
SU (1) | SU1290358A1 (ru) |
-
1985
- 1985-08-30 SU SU853950536A patent/SU1290358A1/ru active
Non-Patent Citations (1)
Title |
---|
Авторское свидетельство СССР № 890403, кл. G 06 F 15/38, 198Q. Авторское свидетельство СССР № 1130879, кл. G 06 F 15/38, 1982. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4053871A (en) | Method and system for the iterative and simultaneous comparison of data with a group of reference data items | |
US3949365A (en) | Information input device | |
SU1290358A1 (ru) | Устройство дл преобразовани выражений в польскую инверсную запись | |
US3548385A (en) | Adaptive information retrieval system | |
US3764993A (en) | Word backspace circuit for buffered key entry device | |
JPH0315221B2 (ru) | ||
SU1080132A1 (ru) | Устройство дл ввода информации | |
KR930021017A (ko) | 제어코드 학습 원격제어 수신기와 학습 및 제어방법 | |
RU2793554C1 (ru) | Устройство параллельно-последовательного поиска и замены вхождений в обрабатываемых словах | |
US3222648A (en) | Data input device | |
SU1177812A1 (ru) | Микропрограммное устройство управления | |
SU991437A2 (ru) | Устройство дл перевода выражений в польскую инверсную запись | |
SU981987A1 (ru) | Устройство дл определени экстремального числа | |
SU932638A1 (ru) | Устройство групповой синхронизации | |
SU1140112A1 (ru) | Суммирующее устройство с контролем | |
SU1233155A1 (ru) | Микропрограммное устройство управлени с контролем | |
SU765886A1 (ru) | Устройство дл коррекции ошибок в блоке пам ти | |
SU1621140A2 (ru) | Счетное устройство с контролем | |
SU1176322A1 (ru) | Вычислительное устройство | |
SU1087999A1 (ru) | Устройство дл контрол последовательности микрокоманд | |
RU1789993C (ru) | Устройство дл редактировани элементов таблиц | |
RU1805466C (ru) | Устройство микропрограммного управлени с контролем | |
SU1073769A1 (ru) | Цифровой амплитудный дискриминатор | |
SU1487050A1 (ru) | Устройство доя контроля переходов | |
SU1130879A1 (ru) | Устройство дл перевода выражений в польскую инверсную запись |