SU1465894A1 - Параллельный синтаксический анализатор - Google Patents

Параллельный синтаксический анализатор Download PDF

Info

Publication number
SU1465894A1
SU1465894A1 SU874302078A SU4302078A SU1465894A1 SU 1465894 A1 SU1465894 A1 SU 1465894A1 SU 874302078 A SU874302078 A SU 874302078A SU 4302078 A SU4302078 A SU 4302078A SU 1465894 A1 SU1465894 A1 SU 1465894A1
Authority
SU
USSR - Soviet Union
Prior art keywords
input
channel
inputs
outputs
code
Prior art date
Application number
SU874302078A
Other languages
English (en)
Inventor
Виталий Константинович Водопьянов
Юрий Алексеевич Орлов
Сергей Николаевич Вавилов
Виталий Николаевич Волков
Сергей Павлович Зайцев
Original Assignee
Предприятие П/Я Р-6668
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Предприятие П/Я Р-6668 filed Critical Предприятие П/Я Р-6668
Priority to SU874302078A priority Critical patent/SU1465894A1/ru
Application granted granted Critical
Publication of SU1465894A1 publication Critical patent/SU1465894A1/ru

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

Изобретение относитс  к вычислительной технике и может быть использовано в быстродействующих системах обработки информации, диалоговой разработки и отладки программ. а также о аппаратных преобразовател х и интерпретаторах  зыков высокого уровн . Цель изобретени  - повышение быстродействи . Анализатор осущестс:л ет двухэтапный контроль входного выражени . Первый, предварительный , зтап обработки осуществл етс  двум  идентичными канал - ми 3 и i i синтаксического анализа, работающими параллельно и независимо друг от друга. Устройство содержит также регистры 1 и,, 9 текушего символа, ;ijiOK 5 микропрограг 1м1юго управлеыи , схемь; 6 и 7 сравнени  и дешифр,атор 8 полу основ, которые осуществл ют окончательную свертку входного выражени , 1 з.п„ ф-лы, 1 табл.5 5 ил, о

Description

Сл 00
Изобретение относитс  к вычислительной технике и может быть использовано в быстродействующих системах обработки информации, диалоговой разработки и отладки програм1ч, а также в аппаратных преобразовател х и интеграторах  зыков высокого уровн .
изобретени  - повышение бы- стродействи ,
На фиг.1 представлена структурна схема анализатора; на фиг.2 - то же канала синтаксического анализа; на фиг.3-то же,блока пам ти;на фиг.4- блок-схема, микропрограммного управлени  каналом синтаксического анализа; на фиг.5 - блок-схема микропрограммного управлени  устройством в целом.
Параллельны анализатор фиг.1) содержит регистр 1 текущего символа дешифратор 2 лексических единиц в канале 3 синтаксического анализа, элемент ИЛИ 4 в блоке 5 микропрограм много управлени , схем,1 6 и 7 сравнени , дешифратор 8 полуоснов, регистр 9 текущего символа, дешифратор 10 лексических единиц в канале
11синтаксического анализа. Кан,ал 3 (11) синтаксического
анализа (фиг.2) содержит также блок
12микропрограммного управлени  , дешифратор 13 кода операции, регистр 14 кода операции,, блоки 15 и 16 элементов ИЛИ, коммутатор 17,с: сему 18 сравнени , блок 19 пам ти, дешифратор 20 основ.
В состав блока 19 пам ти (фиг.З) входит группа 21 из трек реверси1з- ных сд зигаю1)щх регистров.
Регистры 1 и 9 текущего символа используютс , дл  хранени  очередных лексических единиц исходного вьфажени .
Дешифраторы 2 и 10 вьщел ют из лексических единиц исходного выражени  операнды,операции,скобки,а . также признаки начала и конца части выражени . При зтом отличие в под- 1сгаочении группы выходов дешифратора 10 к группе входов призн,зков лексических единиц канала 11 от подключени  группы выходов деш ратора 2 к группе входов признаков лексических единиц канала 3 заключаетс  в том, что вьпсод дешифратора 10, означающий поступление на вход дешифратора лексической единицы ( - скоба откры
ю
is ..
25
30
5
вающа , подключаетс  по входу признака лексической единицы ) - скоба закрывающа  канала 11, а выход дешифратора 2, означающий поступление на вход дещифратора лексической единицы ( - ко входу признака лексической единицы ) канала 3.
Каналы 3 и 11 синтаксического анализа осуществл ют предварительную свертку частей исходного выражени  с учетом приоритета операций. Каналы полностью идентичны по составу , назначению элементов и алгоритму функционировани .
Элемент ИЛИ 4 служит дл  формировани  сигнала завершени  цикла синтаксическогоконтрол , возвращающего каналы в исходное состо ние.
Схемы 6 и 7 сравнени  осуществл ют сравнение кодов операций, содержащихс  в блоках пам ти первого и второго каналов синтаксического анализа.
Дешифратор 8 полуоснов в зависимости от содержани  трех старших ;разр дов блоков 19 пам ти первого и второго каналов формирует признаки, Ни основании которых блок 5 микропрограммного управлени  производит свертку частей выражени .
Регистр 14 кода операции используетс  в канале синтаксического анализа дл  временного хранени  лексических единиц, соответствующих кодам операций.
Коммутатор 17 обеспечивает выборочное подключение в зависимости от сигналов на его управл ющих входах к входу записи блока 19 пам ти вы- ходов регистра 14 кода операции,бло- сов 5 или 12 микропрограмного управлени  или выхода блока пам ти второго канала.
Группы элементов ИЛИ 15 и 16 алйзуют объединение используемых дл  управлени  коммутатором 17 и блоком 19 пам ти выходных сигналов блоков, 12 к 5 микропрограммного управлени .Блок 19 пам ти - зто.пам ть с последовательным безадресным принципом записи и чтени , с обеспечением возможности доступа дл  чтени  одновременна к трем старшим разр дам.
Реверсивные сдвигающие регистры 21 блока 19 пам ти реализуют запись кодов лексических единиц в старшие N разр ды, хранение записанной информации , поразр дный сдвиг содер314
жимого вправо или влево, а также выдачу записанной информации из (N-2), (N-I) и N-X разр дов на первый, второй и третий выходы блока пам ти.
Блок 12 микропрограммного управлени  управл ет работой всех элементов канала.
На фиг.4 приведена блок-схема функционировани  блока 12, где
входные сигналы - Х, Х, Хд формирует дешифратор 2 (дл  второго канала - дешифратор 10) лексических единиц; Х5, Xg - дешифратор 13 кода операции; Xg, Х - дешифратор 20 основ; - схема 18 сравнени ; XjT, - блок 4 элементов ИЛИ.
На выходе блока 12 микропрограммного управлени  формируютс  сигналы микроопераций Y-i - Y, .
Содержательньш смысл входных и выходных сигналов следующий:
1, если лексическа  единица исходного выражени  есть знак конца части выражени  ; в противном случае; если лексическа  единица исходного выраж-ени  есть открывающа  скобка; О, в противном случае; 1, если лексическа  единица исходного вьфажени  есть операнд;
0,в противном случае;
1,если лексическа  единица исходного выражени  есть нкоприоритетна  операци .
,0, в противном случае; 1, если в регистре кода операции содержитс  код закрывающей скобки;
0,в противном случае;
1,если регистр кода операции очищен;
0,в противном случае;
1,если лексическа  единица иходного выражени  естьвыс коприоритетна  операци .
.0, в противном случае; 1, если в разр дах (N-2), (N-1) и N регистров 21 блока 19 пам ти содержитс  основа F4 F, где F - код, соответствующий операнду, Ч - код, соответствующий операции (высоко- или низкоприоритетной); О, в противном случае;
Х
Хп
X.
Хл
Х5
Хс
X,
5 о
5
0
0
XQ
ш
Xi
13
t
1, если лексическа  единица исходного выражени  есть закрывающа  скобка;
0,в противном случае;
1,если значение кода, со-, держащегос  в регистре 14 кода операции, больше значени  кода, содержащегос  в (N-l)-x разр да регистров 21 блока 19 пам ти;
0,в противном случае;
1,если в разр дах (N-2), (N-1) и N блока 19 пам ти содержитс  основа (F);
0,в противном случае;
1,если блоком 5 микропрограммного управлени  была вьщана одна из операций Yf(5 - Y.Q , означающих завершение цикла синтаксического контрол ;
0, в противном случае; Yrj, Yj - микроперации, используемые дл  формировани  кодов лексических единиц на первом входе коммутатора 17;
Y/I4 , , - микрооперации, используемые дл  формировани  кодов на входе регистра 14 кода операции;
YIA - микроопераци , соответствующа  коду лексической единицы ) - скоба закрывающа ;
YIS совокупность микроопераций , соответствующа  коду низкоприоритетной операции типа - сложение;.
, , YI - совокупность .микроопераций, соответствующа  коду высокоприоритетной операции типа V умножение;
YI , Y-i - совокупность микроопе- 5 раций, соответствующа  коду начала части вьфажени  ;
Y7 - микроопераци , соответствующа  коду конца части выражени 
Y , YI - совокупность микроопераций , соответствующа  коду лексической единицы ( - скоба открывающа ;
Yg - микроопераци , соответствующа  коду лексической единицы F - операнд.
5
Сигналы микроопераций Y , Y, Y поступают на информационный вход блока 19 пам ти через коммутатор 17.
Сигналы микроопераций Y , ,5 ,й поступают на информационный вх регистра 14 кода операции.
Y - микроопераци , разрешающа  запись сформированного на информа- ционном входе блока 19 пам ти кода в разр ды регистров 21;
Yy - микроопераци , разрешающа  сдвиг содержимого регистров 21 бло пам ти 19 на один разр д влево;
Y6 - микроопераци ,, разрешающа  сдвиг содержимого регистров 2 Г бло пам ти 19 на один разр д вправо;
Y - микроопераци , разрешающа  очистку регистра 14 кода операции;
YI - микроопераци ,, разрешающа  запись сформированного на информационном входе кода в регистр 14 кода операции;
YQ - микроопераци , разрешающа  запись следующей лексической единицы в регистр 1 (дл  второго канала - в регистр 9);
10 Y - микрооперации, используемые дл  формировани  адреса на управл ющем.входе коммутатора 17 указанные микрооперации поступают н первые входы группы 15 элементов ИЛИ.
Отсутствие сигналов на управл ющем входе коммутатора означает подключение информационного входа блок 19 пам ти через коммутатор 17 к первому выходу блока 2 микропрограммного управлени .
Y-10 - микроопераци ,, обеспечивающа  переключение информационного вход блока 19 пам ти через коммутатор 17 на выход регистра 14 кода операции (вьщача сигнала микрооперации YIO при отсутствии сигнала микрооперации Y,, означает подачу на управл ющий вход коммутатора кода 1 - подключение выхода коммутатора к его второму входу);
Yig, - микроопераци , формирующа  на входе блока 5 микропрограммного управлени  сигнал X,j (Х - дл  второго канала), означающий нормальное завершение предварительной свертки части входного выражени  в канале);
Yi3 - микроопераци , формирующа  на входе блока 5 микропрограммного управлени  сигнал Х (дл  второго канала - Х, ), означающий ошибочное завершение предварительной свертки части входного выражени  в канале.
n
5
0
5
Алгоритм функционировани  блока 5 микропрограммного управлени  описан блок-схемой (фиг.5), где входные 1г 13 и Х , Х|з формисигналы X
, .7 I } f I lrt
руютс  соответственно первым и вторым каналами синтаксического анализа , Xi4 - , Х(л - дешифратором 8 полуоснов; Х,о - первой схемой
6сравнени ; Х - второй схбмой
7сравнени .
На выходе блока 5 микропрограммного управлени  генерируютс  сигна- ль1 микроопераций Y; , Y. g , Y,, - , Y,, , Y . Ylg - Y|,, Y«,
Содержательный смысл перечисленных входных и выходных сигналов следующий ;
1, если предвариу fv {г
о.
тельна  свертка части входного выражени  в первом (во втором) канале завершена нормально; в противном случае;
30
35
0
5
0
5
XJ5 (х;)
ь
1.
XQO
-0, 1,
Ч(
О,
если при предварительной свертке части входного выражени  в первом (во втором ) канале обнаружена ошибка; 0 в противном случае;
если приоритет операции , код которой содержитс  в (N-I)-M разр де блока 19 пам ти первого канала, больше или равен приоритету операции, код которой содерл итс  в N-M разр де блока 19 ° пам ти второго канала; в противном случае;
если приоритет операции , код которой содержитс  в (N-I)-M разр де блока 19 пам ти второго канала, больше или равен приоритету операции, код. которой содержитс  в N-M разр де блока 19 пам ти первого канала; в противном случае.
Услови  формировани  единичных значений остальных входных сигналов блока 5 микропрограммного управлени  приведены в таблице.
Хь
VoF
VVF
или
Приме.чание, У - код- произвольной лексической единицы.
Нулевые значени  входных сигналов- М ig «1 образуютс  при от- личных от приведенных в таблице со- держимых старших трех разр дов блоков 19 пам ти первого и второго каналов . ,|з (23 ) микроопераци , исполь- зуема  дл  формировани  кода лексической единицы F - операнд на третьем входе кo o yтaтopa 17 первого (второго) канала;
Y44(Y) - микроопераци , разрешающа  запись сформированного на информационном входе блока 19 пам ти первого (второго) канала хода в старшие N-e разр ды регистров 21j
Y2y(Y45) - микроопераци , разрешающа  сдвиг влево на один разр д содержимого регистров 21 блока 19 пам ти первого (второго) канала;
Y26 (26) микроопераци , разрешающа  сдвиг влево на один разр д содержимого регистров 21 блока 19 пам ти первого (второго) канала;
Yi7 ,.Y,g (Y,r , Y,g) - микрооперации , используемые дл  формировани  адреса на управл ющем входе коммутатора 17 первого (второго) ка нала, указанные микрооперации по
465894
ступают на вторые входы группы ИЛИ;
15
элементов
, 7 ( ) микроопераци , обеспечивающа  переключение информационного входа блока 19 пам ти первого .(второго) канала через коммутатор 17 на первый (второй) выход блока 5 микропрограммного управлени ;
10
15
20
25
в- в
30
35
40
45
50
55
Ч
14
(Y
17
Y/g ) - совокупность микроопераций, обеспечивающа  переключение информационного входа блока 19 пам ти первого (второго) канала через коммутатор 17 на третий вход канала;
Yig - микроопераци  формировани  признака нормального завершени  анализатором цикла синтаксического контрол ;
YQO микроопераци  формировани  признака ошибочного завершени  анализатором цикла синтаксического контрол .I ,
Сигналы микроопераций Yr24 , Yji , Y26 (Y,,, , , еб) поступают на вторые входы группы 16 элементов ИЛИ первого (второго) каналов, выходы элементов ИЛИ группы 16 подключены к управл ющим входам блока 19 пам ти .
Устройство работает следующим образом.
Исходное вьфажение перед началом делитс  внешним устройством в произвольном месте на две примерно равные части. Лева  (права ) часть входного выражени  справа дополн етс  признаком конца fr.
Права  (втора ) часть выражени  дополн етс  признаком слева.
Лексические единицы левой части исходного вьфажени  поступают в регистр 1 текущего символа слева ,направо, лексические единицы правой части - в регистр 9 текущего символа справа налево, т.е. с конца выражени .
После включени  устройства блок 5 микропрограммного выражени  анализирует входные сигналы нормального завершени  свертки части входного выражени  в первом канале ( ) , ошибочного завершени  свертки части входного вьфажени  в первом канале
(Х) , нормального завершени  свертки во втором канале (х ) ошибочного завершени  свертки во втором канале (Х,; ).
Ан;элиз перечисленных входных сигналов осуществл етс  циклически блоком 4 микропрограммного управлени  до тех пор, пока в обоих каналах не будет завершена предварительна  свертка частей входного выражени , т.е. до момента, когда вьтолнитс  условие истинности выражени 
i xf,
11
. .
I Перечисленные входные сигналы блока 5 микропрограммного управлени  формируютс  блоками 12 микро- I программного управлени  каналов I синтаксического анализа по завер- I шению предварительной свертки ча- I стей исходного выражени .
Каналы 3, 11 осуществл ют предварительную свертку частей входного выражени  полностью идентично, па- I раллельно и независимо друг от друга , поэтому рассмотрим работу толь- i ко одного из них (первого), Блок 12 микропрограммного управ- i лени  в начале цикла своей работы : генерирует микрооперации очистки регистра 14 кода операции (Y),формировани  кода признака $ начала выражени  (Y, , Y) и разрешени  записи сформированного кода в N-й разр д блока 19 пам ти (Y). На уп- 1 равл ю1цем входе коммутатора 17 сиг- 1 налы отсутств5пот, что соответству- ет подключению информационного вход блока 19 пам ти к первому выходу : блока 12 микропрограммного управлени 
На следующем шаге блок 12 начи- , нает обработку очередной лексической единицы,
БЛОК 12 микропрограммного управлени  выдает микрооперацию разрешени  записи (Yg) в регистр 1 текущего символа.
На выходе дешифратора 2 лексических единиц формируютс  признаки лексических единиц,  вл ющиес  входными сигналами блока 12 микропрограммного управлени  (X, - Хл Х-,
V 7 Г J
Хд) .
Если очередна  лексическа  единица на входе дешифратора 2 есть от- крьгоающа  скобка, то на его соответствующем выходе формируетс  сиг- нал (Хе), запускающий в блоке 12
1465894
10
микропрограммного управлени  микрооперацию (YS), разрешающую сдвиг содержимого регистров 21 блока 19 па- м ти на один разр д влево, тем са-. мым освобождаетс  старший N-й разр д блока пам ти дл  записи в него кода очередной лексической единицы. На следующем шаге блок 12 мйкро- 10 программного управлени  выдает микрооперации (Y ,Ye) формировани  на информационном входе блока 19 пам - ти кода 011 - скобка открывающа  и Yz| - разрешение записи сформиро- 15 ванного кода в N-й разр д блока 19 пам ти„
Если очередна  лексическа  единица на входе дешифратора 2 есть операнд, то на его соответствую- 20 щем выходе формируетс  сигнал (Xj), запускающий в блоке 12 выдачу микрооперации (YS), разрешающей сдвиг содержимого блока 19 пам ти на один разр д влево. Затем блоком 12 микро- 25 программного управлени  выдаютс  микрооперации формировани  (Yj) на информационном входе блока 19 пам ти кода операнда F (100) и разрешени  записи (Y) сформирован- 30 ного кода в N-й разр д блока 19 пам ти .
Если очередна  лексическа  единица на входе дешифратора 2 есть низкоприоритетна  операци , то на его соответствующем выходе формируетс  сигнал (Хд), запускающий в блоке 12 микрооперации формировани  (Yj5 ) на информационном входе регистра 14 кода 4- (ПО) и Q разрешени  записи (Y) сформированного кода в регистр 14 кода операции.
Если очередна  лексическа  единица на входе дешифратора 2 есть высокоприоритетна  операци , то нас его соответствующем выходе формируетс  сигнал (Х), запускаюпглй в бло- . ке 12 микрооперации формировани  1( , Y45 , ) на информационном входе регистра 14 кода х (111) и разрешени  записи (Yj) сформированного кода в регистр 14 кода операции,
Если очередна  лексическа  едини- g ца на входе дешифратора 2 есть за- крьшающа  скобка, то на его соответствующем выходе формируетс  сигнал (Хд), запускающий в блоке 12 микрооперации формировани  (Yf ) на
0
информационном входе регистра 14 кода ) (001.) и разрешени  записи (Yg) сформированного кода в регистр 14 кода операции.
Если на выходе дешифратора 2, соответствующем поступлению на его вход признака конца выражени  t, формируетс  сигнал (Х), то блок 12 микропрограммного управлени  вьщает микрооперацию признака нормального завершени   предварительной свертки асти входного выражени  в канале (). Эта микроопераци , формирующа  входной сигнал признака нормального завершени  работы первого канала (Х(а ) дл  блока 5 микропрограммного управлени , выдаетс  блоком 12 микропрограммного управлени  в каждом последующем такте до тех пор, пока блок 5 микропрограммного управлени  не выдаст одну из микроопераций (Y,q , ) признаков нормаль- ного или ошибочного завершени  контрол , формирующих входной сигнал ( ) блока 12 микропрограммного управлени . При этом генераци  микрооперации YU прекращаетс , и блок 12 микропрограммного управлени  завершает работу (возвращаетс  в начальное состо ние).
Если очередной символ входного выражени  не  вл етс  допустимой .лексической единицей, то сигналы на выходах дешифратора 2 (Х - Х, Xf, XJ .отсутствуют. При отсутствии входных сигналов признаков лексических единиц (X, - Х, Х, Xq) блок 12 микропрограммного управлени  выдает микрооперацию признака ошибочного .завершени  предварительной сверки части входного выражени  исходного выражени  в канале (Yo ).
Указанна  микроопераци , формирующа  входной сигнал признака ошибочного завершени  работы канала (xli, ) блока 5 микропрограммного управлени , выдаетс  блоком 12 микропрограммного управлени  в каждом последующем такте до тех пор, пока блок 5 микропрограммного управлени  не вьщает одну из микроопераций (У„ или- Y4U ) признаков нормального или ошибочного завершени  контрол , формирующих входной сигнал .(Xijj) блока 12 микропрограммного управлени . При этом генераци  микрооперации Y,, прекращаетс ,и блок 12
5
0
5
0
5
0
5
0
5
микропрограммного управлени  завершает работу (возвращаетс  в начальное состо ние).
После распознавани  очередной лексической единицы и запоминани  ее кода в N-M разр де блока 19 пам ти (коды F и ( или в регистре , 14 кода операции (коды к, + или )) блок 12 микропрограммного управлени  переход т на анализ входных сигналов, выpaбaтывae tыx схемой 18 сравнени  () , дешифратором 13 кода операции (Xs, Хб) и дешифратором 20 основ (Xj, Хц ).
Если на выходе схемы 18 сравнени  вырабатываетс  сигнал (Х(о), означаюишх, что код операции, содержащийс  в регистре 14 кода операции , имеет большое значение, чем код операции, содержащийс  в (N-I)-M разр де блока 19 пам ти, то это означает, что приоритет текущей операции, код которой записан в регистре 14, выше приоритета предыдущей операции, код которой содержитс  в (N-1)-M разр де блока 19 пам ти . В этом случае свертка основы, заключающа с  в замене сочетаний кодов типа FxF, F + F ил51 (F) кодом операнда F невозможна. Свертка допускаетс  лишь тогда, когда приоритет операции, следующей за ос- нов ой, ниже или равен приоритету операции, соедин ющей два операнда внутри основы.
Кроме кодов высокоприоритетной (х) и низкоприоритетной (+) операций регистр 14 может содержать код закрывающей скобки ) или ну- левое значение (после операции очистки ) .
Если на входе блока 12 микропрограммного управлени  схемой 8 сравнени  сформирован сигнал Х , то блок 12 генерирует микрооперашто (YS), разрешающую сдвиг на один разр д влево содержимого регистров 21 блока 19 пам ти. Затем генерируютс  микрооперации формировани  (У/о ) на управл ющем входе коммутатора 17 кода 01 переключени  его выхода на второй вход, в результате чего информационный вход блока 19 пам ти оказываетс  соединенным с выходом регистра 14 кода операции, и разрешен1-1Я записи (Y4) в блок 19 пам ти кода, сформированного на его информационном входе. После пеоезаписи содержимого 14 кода
9 ам
ти блок 12 микропрограммного управ ленвд генерирует микрооперащ (у разрешающую очистку регистра 14 Затем блок 15 микропрограммного управлени  выполн ет действи  по вво и обработке следующей лексической единигды исходного зыражени 
сигнаГх ™ - ° сравнени  сигнал X,, отсутствует, то блок 12
микропрограммного управленга анализирует наличие входного.сигнала X формируемого деиифратором 13 копов операций. .-i.oB
Еспи на входе блока 12 микропрограммного управлени  дешифратором J кода операции формируетс  сигн. л Хб), соответствующий очищенному состо нию регистра 14.. то блок 12 выполн ет действи  по обработке еле ОТей лексической единицы исходно- го выражени .
При отсутствии входного сигнала Аб, что соответствует непустому состо нию регистра 14 кода операции , блок 12 микропрограммного уг-. Равлени  анализирует формируемьй де- шифратором 20 основ сигнал (Х«) соответствующий наличшо в старших трех разр дах блока 19 пам ти свора- чиваемои основы вида RxF или
Блок 12 микропрограммного управлени  при налшчии на его входе сиг- нала X,i выдает последовательность микроопераций, осуществл ющих сверт- ку основы, т.е. замену сочетани  коран а °- ранда F , Свертка осуи,ествл етс 
путем вьщачи блоком 12 микропрограммного управлени  шкpooпepaций дв ж™
,
,
входе блока 19 пам ти (у,), подключенном к выходу блока 12 микропро- граммного управлени  через коммутатор 17, и разрешени  записи сформированного кода в N-й старший раз-- РЯД блока 19-пам ти (У),,
После выполненных действ ий блок 1 микропрограммного управлени  снова анализирует входной сигнал Сх,п ) формируемый схемой 18 сравнени  дл  определени  возможности свертки ооразовавшегос  выражени ,.
-:
10
15
0
1 6589414
на входе блока 12 микропрограммного управлени  отсутствует формируемый дешифратором 20 основ сигнал (Xg), что означает отсут- .ствие основы типа РнР в старших трех разр дах блока 19 пам ти, где
означает код произвольной операции то в этом случае-в старших N-2), (N-1) и M.,J, разр дах блока 19 пам ти могут содержатьс  только основы типа F Пш« .ли Ос
«на н . Любое другое содержимое данных разр дов свидетельс ву- ет о наличии ошибки во входном выражении . В этом случае на входе блока 12 микропрограммного управлени  отсутствует сигнал Х-, формируемьм дешифратором 20 основ. При этом анализ части входного вырал ени  завершаетс . Блок 12 микропрограммного -лравлени  выдает микрооперацию признака ошибочного завершени  предварительной свертки части исходного
Р5 - Указанна  : Р°операци , формирующа  входной сигнал признака ошибочного завершо- ни  работы канала (х,, ) блока 5 микропрограммного управлени , вьщает- с  блоком 12 в калсдом последующем -Ю такте до тех пор, пока блок 5 микропрограммного управлени  не вьщаст одну из микроопераций - у,. „DU- знаков нормального или ошибочного завершени  контрол , формирующих 35 входной сигнал (х„ ) блока 12 микро- програм много управлени . При этом генераци  микрооперации У,, прекращаетс , и блок 12 завершает работу
При наличии в трех старших разр - 40 Дах б.лока 19 пам ти кодов, образую- № основу типа (F), де.шифратор и основ формирует сигнал (Хк-) запускающий в блоке 12 микропрограмм много управлени  последовательность 45 микроопераций, осу,цествл ющи:
свертку основы. Блок 12 микропрограммного управлени  вьщает ми.кро- операции двавды разрешени  сдвига на один разр д впраазо содержимого регистров 21 блока 19 пам ти (У и формировани  кода F (у ) информационном входе блока 19 пам - ™ и разрешени  записи сформированного кода в N-й разр д блока 19 пам ти . После этого блок 12 микропрограммного управлени  вьшолн ет действи  по вводу и обработке следующей лексической единицы игход- ного выражени .
0
5
15 1
Окончательна  свертка входного выражени  производитс  под управлением блока 5 микропрограммного управлени . При этом в резз льтате предварительной свертки частей вход- ного выражени  в каналах синтаксического анализа длина анализируемого выражени  существенно уменьшена, что обеспечивает погышение быстро- действи  устройства.
Блок 5 микропрограммного управлени  продолжает анализировать формируемые блоками 12 микропрограммного управлени  обоих каналов признаки нор- мального (Х,д и Х,) и ошибочного (Х, и ) завершени  предварительной свертки частей входного выражени  до тех пор, пока не завершитс  работа обоих каналов, .
В том случае,когда в первом и/ил во втором канале свертка части входного выражени  завершилась ошибочно , т.е. истинно значение описы- Бающего состо ни  входных сигналов блока 5 микропрограммного управлени вырал ени  вида
г х/; Y . , xf,,
S -
TO блок 5 микропрограммного управле ни  вьщает микрооперацию признака ошибочного завершени  контрол  (Ygo формирующую на входах блоков 12 микропрограммного управлени  первого и второго каналов сигнала завершени  синтаксического контрол  (). На этом цикл работы устройства заканчиваетс .
ь случае нормального завершени 
предварительной свертки частей вход- ного выражени  в обоих каналах,т.е. на входе блока 5 микропрограммного- управлени  сформированы первым ( ) и вторым (XjQ ) каналами сигналы нор- мального завершени  предварительной свертки, блок 5 микропрограммного управлени  выполн ет цикл микроопераций по окончательной свертке час- гей исходного выражени .
.Если на входе блока 5 микропро- граг много управлени  отсутствует формируемый дешифратором 8 сигнал (Х) наличи  завершающего выражени  в блоках 19 пам ти каналов, т.о блок 5 продолжает окончательную свертку выражени . В зависимости от содержани  старших разр дов блока 19 пам 94
ти дешифратор 8 формирует признаки полуоснов ( - Х,9, Х2.|).
Если в очередном шаге свертктг н входе блока 5 микропрограммного управлени  одновременно отсутствуют все формируемые дешифратором 8 признаки полуоснов ( - -Х,д И X л
то это свидетельствует о наличии ошибки 30 входном выра кении.
В этом случае блок 5 микропрограммного управлени  выдает микро- опепацпга (Y.jo) сигнала признака ошбочного завершени  контрол ,котора  формирует на входах блоков 12 микропрограммного управлени  перво и второго каналов сигнала завер- лепн  синтаксического контрол  (Х. Яа этом цикл работы анализатора за- oepujaeTCH,
Устройство готово к анализу следующего входного выражени .
Если в очередном шаге свертки i-a выходе дешифратора 8 полуоснов ф формируетс  сигнал (Xtg), соответ- ст)зую1Ц1 й наличию в трех старших разр дах блока 19 пам ти первого канала кодов, образуюищх основу FxF или то блок 5 микропрограммного управлени  анализирует наличие входного сигнала (Х,2д). формируемого схемой 6 сравнени ,
Сигнал Хг2п формируетс  схемой 6 сравнени  в том случае, если значение кода, содержащегос  в W-M старшем разр де блока 19 пам ти второго канала, больше значени  кода, со- дер/кащегос  в (N-I)-M разр де блока 19 пам ти первого канала. В этом случае приоритет операции, следующей за основой типа F-fF, вьпие кода операции, соедин ющего операнды основы. Свертку при этом производить нельз .
При отсутствии на выходе схемы 6 сравнени  сигнала (Хор) блок 5 микропрограммного управлени  вьщает последовательность микроопераций, осуществл ющих свертку основы. Выдаютс  микрооперации дважды разрешени  сдвига вправо на один разр д содержимого регистров 21 блока 19 пам ти первого канала (Yj нУ ), формировани  кода F на треть ем входе коммутатора 17 первого канала (Y25 ) , формировани  на управл ющем входе коммутатора 17 кода 10 (Y|5 ) , переклрочающего выход коммутатора на его третш вход, тем самым
it-pii
1465894
18
код F формируетс  на информацион- ч нЬм входе блока 19 пам ти первого канала, и разрешени  записи (4) сформированного кода в N-й старший рйзр д б -1ока 19 пам ти первого канала.
I Если в очередном шаге свертки на выходе дешифратора В полуоснов фэрмируетс  сигнал (Х ),, что соот- в гтствует наличию в трех старших разр дах блока 19 пам ти второго клнала кодов ,образующих основу 1ГхР или F+F, то блок 5 микро- п)ограммного управлени  анализирует наличие входного сигнала (Х), формируемого схемой 7 сравнени .
Сигнал 12 формируетс  схемой 7 сравнени  в том случае,если значе- .ние кода, содержащегос  в N-M стар- разр де блока 19 пам ти первого канала больше значени  кода,содержащегос  в (N-1)M разр де блока 19 п;1м ти второго канала, В этом случае свертка основы не проигшодитс .
При отсутствии на выходе схемы 7 сравнени  синала (Xijj) блок микро- П1)ограммнсго управлени  вьщает пго- а1едовательность микроопераций, осу- Щ|;ствл ющих свертку основы. Вьщают- CII микрооперации дважды разрешени  сдвига на один разр д вправо содержимого регистров 21 блока 19 пам ти второго канала (|ь иУ,) формировани  кода операнда (Y|.j ), формировани  на управл ющем входе коммутатора 17 второго канала кода 10 ( ) переключак цего выход коммута- тфра на его третий вход, и разрешеН1|1Я записи (Yj4 ) СфОрМИрОВ 1ННОГО
Kitoa в N-й старший разр д блока 19 п,|1м ти второго канала.
Если в очередном шаге свертки на дешифратора 8 полуоснов фортьем входе коммутатора 17 второго канала (Yj,,,), формировани  на управл ющем входе этого коммутатора g кода 10 (Yf ) переключени  выхода коммутатора 17 на его третий вход резрешени  записи кода операнда в старший N-й разр д блока 19 пам ти второго канала (Y44).
10 Если в очередном шаге свертки на выходе дешифратора 8 полуоснов формируетс  сигнал (Х), соответ- ствуюудий наличию в старших разр дах блоков 19 пам ти первого канала
15 кода F и второго канала - кодов xF+, то блок 5 микропрограммного управлени  генерирует последовательность микроопераций, осуществл ющих совместный сдвиг выражени ,
20 лева  часть которого находитс  в бло ке 19 пам ти первого канала, а права  часть - в блоке 19 пам ти вто- |рого канала, на два разр да влево. Выдаютс  микрооперации разрешени 
25 сдвига на один разр д влево содержимого блока 19 пам ти первого канала (), формировани  на управл ющем входе коммутатора 17 первого канала кода 10 (Y,g ) переключени  выхода
30 коммутатора на его третий вход, разрешени  (Y24.) записи %ода с информационного входа блока 19 пам ти первого канала в N-e разр ды регистров 21,
В результате вьтолненных деист- .: ВИЙ код из старшего N-ro разр да блока 19 пам ти ВТОРОГО канала переписываетс  в N-й разр д блока 19 пам ти первого канала.
дд Затем вьщаютс  микрооперации разрешени  сдвига на один разр д содержимого блоков 19 пам ти первого канала влево (Yjg), второго канала - вправо (Yl), снова выполн етс  со35
.j,,.,,/„ V 26 / - вынилниетСЯ СО-
Фуетс  сигнал ( ), соответствую- вокупность микроопераций,осуществл - vsM наличию в старших оазо шах бло-: «mae „-,,.«„„„. ...
vs наличию в старших разр дах бло-. юов 19 пам ти первого канала кода Р и второго канала - кодов Fx и)|1и первого канала - кода ( и Btoporo канала - кодов )F, или первого канала - кода F и второ- гф канала - кодов , то блок 5 М1 кропрограммного управлени  произ- В(|)дит свертку основы. Блок 5 микро- nij orpaMMHoro управлени  генерирует М1 крооперации разрешени  сдвига на оДин разр д вправо содержимого реги- c l-poB 21 блоков 19 пам ти первого (t26 ) и второго (Y| ) каналов, фор- М1 1ровани  кода операнда F на тре50
юща  перезапись кода из старшего N-ro разр да блока 19 пам ти первого канала в старший N-й разр д блока 19 пам ти второго канала (Y, , 54) и разрешени  сдвига на один разр д вправо содержимого блока 19 пам ти второго канала (Y),
В результате выполнени  совокупности перечисленных микроопераций 55 содержимое блока 19 пам ти первого канала сдвигаетс  на два разр да влево, в освободившиес  (N-1) и N-й разр ды переписываетс  содержимое соответственно (К-1)-го разр дов
18
тьем входе коммутатора 17 второго канала (Yj,,,), формировани  на управл ющем входе этого коммутатора g кода 10 (Yf ) переключени  выхода коммутатора 17 на его третий вход резрешени  записи кода операнда в старший N-й разр д блока 19 пам ти второго канала (Y44).
0 Если в очередном шаге свертки на выходе дешифратора 8 полуоснов формируетс  сигнал (Х), соответ- ствуюудий наличию в старших разр дах блоков 19 пам ти первого канала
5 кода F и второго канала - кодов xF+, то блок 5 микропрограммного управлени  генерирует последовательность микроопераций, осуществл ющих совместный сдвиг выражени ,
0 лева  часть которого находитс  в блоке 19 пам ти первого канала, а права  часть - в блоке 19 пам ти вто- |рого канала, на два разр да влево. Выдаютс  микрооперации разрешени 
5 сдвига на один разр д влево содержимого блока 19 пам ти первого канала (), формировани  на управл ющем входе коммутатора 17 первого канала кода 10 (Y,g ) переключени  выхода
0 коммутатора на его третий вход, разрешени  (Y24.) записи %ода с информационного входа блока 19 пам ти первого канала в N-e разр ды регистров 21,
В результате вьтолненных деист- .: ВИЙ код из старшего N-ro разр да блока 19 пам ти ВТОРОГО канала переписываетс  в N-й разр д блока 19 пам ти первого канала.
д Затем вьщаютс  микрооперации разрешени  сдвига на один разр д содержимого блоков 19 пам ти первого канала влево (Yjg), второго канала - вправо (Yl), снова выполн етс  со5
f V 26 / - вынилниетСЯ СО-
вокупность микроопераций,осуществл - «mae „-,,.«„„„. ...
вокупность микроопераций,осуществл - «mae „-,,.«„„„. ...
юща  перезапись кода из старшего N-ro разр да блока 19 пам ти первого канала в старший N-й разр д блока 19 пам ти второго канала (Y, , 54) и разрешени  сдвига на один разр д вправо содержимого блока 19 пам ти второго канала (Y),
19
блока 19 пам ти второго каналов и содержимое блока 19 пам ти второго канала сдвигаетс  на два разр да вправо,.вытесн   за пределы регистров 21 содержимое перенесенных в пам ть первого канала двух старших разр дов.
Если в очередном паге свертки на выходе дешифратора 8 полуоснов формируетс  сигнал (Х,), соответствующий наличию в старших разр дах блоков 19 пам ти первого канала кодов F+ и второго канала - кодов xF, то блок 5 микропрограммного управлени  генерирует последовательность микроопераций, осуществл ющих совместный сдвиг выражени  лева  часть которого находитс  в блоке 19 пам ти первого канала, а права  часть - в блоке 19 второго канала, на один разр д влево.
Выдаютс  микрооперации разреше- ,ни  сдвига на один разр д влево содержимого блока 19 пам ти первого канала (YC) формировани  на управл ющем входе коммутатора 17 первого канала кода 10 (Y/g ) переключени  выхода коммутатора на его третий вход, разрешени  (Y) записи кода с информационного входа блока 19 пам ти первого канала в старшие N-e разр ды регистров 21, разрешени  .сдвига на один разр д вправо содержимого блока 19 пам ти второго канала (Yl).
Если в очередном шаге свертки на выходе дешифратора 8 полуоснов формируетс  сигнал (KIJ), соответствующий наличию в старших разр дах блока 19 пам ти первого канала кодов Fx и второго канала - кода F, или первого канала - кодов (F и . второго канала - кода ), или первого канала кодов F+ и второго канала - кодов , то блок 5 микропрограммного управлени  производит свертку основы. ВЬщаютс  микрооперации разрешени  сдвига на один разр д вправо содержимого блоков 19 пам ти первого (Yj ) и второго (Y каналов, формировани  кода операнда F на третьем входе коммутатора 17 первого канала (Y ), формировани  на управл ющем входе этого коммутатора кода 10 (Y/a ) переключени  выхода коммутатора на его третий вход, разрешени  записи кода операн10
465894
да в старший N-й разр д блока 19 пам ти первого канала (Yj )
Если в очередном шаге свертки на выходе дешифратора 8 полуоснов формируетс  сигнал () соответствующий наличию на входах дешифратора составл ющих завершающего выражени , т.е. в (N-1) и N-M разр дах блока 19 пам ти первого канала содержатс  коды $F, а в N-M разр де блока 11 пам ти второго канала - код или в N-M разр де блока 19 пам ти первого канала содержитс  код f, а в (N-1) и N-M разр дах блока 19 пам ти второго канала - коды F, то в блоке 5 микропрограммного управлени  выдаетс  микроопераци  ( ) формировани  признака нормального завершени  контрол , формирующа  на входах блоков 12 микропрограммного управлени  первого и второго каналов -сигнала завершени  синтаксического 25 контрол  (Хгз). На этом цикл работы анализатора завершаетс . Устройство
15
20
30
готово к анализу следующего входного
выражени .

Claims (1)

1. Параллельный синтаксический анализатор, содержащий первый и второй регистры текущего символа, информационные входы которых  вл ютс  первым и вторым информационными входами анализатора, первый и второй каналы синтаксического анализа, информационные входы которых соединены с выходами первого и второго .регистров текущего символа соответственно , отличающийс  тем, что, с целью повьшени  быстродействи , в него введены блок микропрограммного управлени , две схемы сравнени  и дешифратор полуоснов, первые, вторые и третьи выходы формировани  полуоснов перв.ого и второго каналов синтаксического анализа соединены с информационными входами дешифратора полуоснов, выход которого подключен к входу признаков полуоснов блока микропрограммного управлени , первые выходы формировани  полуоснов первого и второго каналов синтаксического анализа соединены с первыми входами второй и первой схем сравнени  соответственно и с входами кода переноса
5
0
21
второго и первого каналов синтаксического анализа соответственно, втрые выходы формировани  полуоснов торых соединены с вторыми входами второй и первой схем сравнени  соответственно , выходы которых соединены с входами признаков приоритет операций в втором и первом канале блока микропрограммного управлени  первые и вторые входы признаков обнаружени  ошибки и правильной запис которого подключены к выходам одно- I именных признаков первого и второго каналов синтаксического анализа со- I ответственно, управл ющие входы котрых соединены с выходами первой и второй групп блока микропрограммно- |Го управлени  соответственно, вы- |ход признака обнаружени  ошибки ко- (торого соединен с одноименным выходом анализатора, выходы стробирова- :ни  ввода первого и второго каналов синтаксического анализа соединены 1C входами записи первого и второго регистров текущего символа соответ- jCTBeHHo
I 2, Анализатор по п,1, о т л и - |чающийс  тем, что каждый канал синтаксического анализа содержи ешифратор лексических единиц, инфо Национный вход которого  вл етс  информационным входом канапа, блок миропрограммного управлени , дешифратор кодов операций, регистр кода операции, схему сравнени , коммутатор , блок пам ти, дешифратор осно И два блока элементов ИЛИ,, выходы которых соединены с управл ющими Входами коммутатора и блока пам ти соответственно, с первого по третий Выходы которого соединены с первого.
22
по третий выходами формировани  полуоснов канала и с первого по третий информационными входами дешифра- g тора о снов, выходы которого соединены с входами первой группы блока микропрограммного управлени , выходы первой, второй, третьей и четвертой групп которого соединены с разр да10 ми информационного входа регистра кода операции, разр дами первого информационного входа коммутатора и первыми входами первого и второго блоков элементов ИЛИ соответственно,
15 разр ды вторых входов которых и разр ды второго информационного входа коммутатора соединены с управл ющими входами канала, вход кода переноса которого соединен с третьим входом
0 коммутатора, выход которого соединен с информационным входом блока пам - второй выход которого соединен
ти,
с первым входом схемы сравнени , .второй вход которой соединен с выходом
5 регистра кода операции, четвертым информационньм входом коммутатора и информационньви входом дешифратора кодов операции, выходы которого и выход схемы сравнени  соединены с вхо0 дами второй группы и первым входом блока микропрограммного управлени , с первого по четвертый выходы которого соединен с входом записи регистра кода операции, с выходами стро- бировани , признаков обнаружени  ошибки и правильной записи канала соответственно, входы третьей группы и вход начальной установки блока микропрограммного управлени  соеди0 выходами дешифратора лексических единиц и соответствующим разр дом управл ющего входа канала.
5
/3
14
}S
f
JH-l
2}
§
112 №i
w группа It л и
Л
19
Hi f Т
f
JH-l.tHH
Фие.З
г . J
С наголо)
,., У ,
У.У.УШ
1 щdJII
iMisMsM
mMiJС . коней)
1
9i9.3v у
С Мазало
}УМУ| ,У/  {
Иг
ЧЖЗ ЕЖНЭНЭ ЕП С
.iLj;j :
г
ijjififT wEI
Яге
Угз,гу ,
Lj.
SU874302078A 1987-07-13 1987-07-13 Параллельный синтаксический анализатор SU1465894A1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SU874302078A SU1465894A1 (ru) 1987-07-13 1987-07-13 Параллельный синтаксический анализатор

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SU874302078A SU1465894A1 (ru) 1987-07-13 1987-07-13 Параллельный синтаксический анализатор

Publications (1)

Publication Number Publication Date
SU1465894A1 true SU1465894A1 (ru) 1989-03-15

Family

ID=21326247

Family Applications (1)

Application Number Title Priority Date Filing Date
SU874302078A SU1465894A1 (ru) 1987-07-13 1987-07-13 Параллельный синтаксический анализатор

Country Status (1)

Country Link
SU (1) SU1465894A1 (ru)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Авторское свидетельство СССР № 1130879, кл. G 06 F 15/38, 1982. Авторское свидетельство СССР № 669356, кл. G 06 F 11/28, 1976, *

Similar Documents

Publication Publication Date Title
Wirth Modula: A language for modular multiprogramming
AU593570B2 (en) Digital data processing system
JPS61107431A (ja) 演算装置
US3213427A (en) Tracing mode
SU1465894A1 (ru) Параллельный синтаксический анализатор
Gifford et al. Report on the FX-91 programming language
Camilleri et al. Combining interaction and automation in process algebra verification
US3660825A (en) Electronic computer
Donovan et al. A formal system for the specification of the syntax and translation of computer languages
SU1661766A1 (ru) Устройство дл имитации неисправностей
SU985791A1 (ru) Микропрограммный процессор с контролем
SU1334149A1 (ru) Синтаксический анализатор
SU1439591A1 (ru) Синтаксический анализатор
Fuller PDP-11 40E microprogramming reference manual
Boyle et al. An algorithmic semantics for ALGOL 60 identifier denotation
SU1256010A1 (ru) Процессор дл реализации операций над элементами расплывчатых множеств
SU877520A1 (ru) Устройство дл сопр жени
Jacquet et al. On Composing Concurrent Logic Processes.
SU1700560A1 (ru) Микропрограммное устройство сопр жени
SU1665382A1 (ru) Устройство дл вычислени математических функций
SU890401A1 (ru) Электронна клавишна вычислительна машина
SU1645950A1 (ru) Устройство дл преобразовани информации
Gutz An extension of the syntax of a FORTRAN compiler for hybrid computation
SU752343A1 (ru) Дуплексна система вычислительных машин
Wirth The programming language Modula-2