SU1399741A1 - Синтаксический анализатор - Google Patents

Синтаксический анализатор Download PDF

Info

Publication number
SU1399741A1
SU1399741A1 SU864089673A SU4089673A SU1399741A1 SU 1399741 A1 SU1399741 A1 SU 1399741A1 SU 864089673 A SU864089673 A SU 864089673A SU 4089673 A SU4089673 A SU 4089673A SU 1399741 A1 SU1399741 A1 SU 1399741A1
Authority
SU
USSR - Soviet Union
Prior art keywords
input
code
output
unit
adder
Prior art date
Application number
SU864089673A
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 SU864089673A priority Critical patent/SU1399741A1/ru
Application granted granted Critical
Publication of SU1399741A1 publication Critical patent/SU1399741A1/ru

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

Изобретение относитс  к вьиис- лительной технике и может быть ., пользовано в автоматизированных системах обработки данных и производства программ дл  ЭВМ, дл  поддержки процессов трансл ции  зыков высокого уровн . Цель изобретени  - расширение функциональных возможностей за счет обеспечени  бесприоритетного синтаксического анализа исходных выражений при одновременном повышении быстродействи  и упрощении устройства Дл  достижени  указанных целей в устройство дополнительно введен блок 9 выделени  аксиомы. Реализаци  бесприоритетного синтаксического анализа сокраТцает аппаратурные затраты и увеличивает быстродействие синтаксического анализатора. Кроме того, введение блока 9, управл емого блоком 3 микропрограммного управлени , повьппает надежность и устойчивость работы синтаксического анализатора. 3 ил. (Л

Description

со со
-4
4
Изобретение относитс  к вычислительной технике и может быть использовано в автоматизированных системах обработки данных и производства программ дл  ЭВМ.
Цель изо(5ретени  - расширение функциональных возможностей анализатора за счет обеспечени  бесприоритетного синтаксического анализа ис- Ходных выргикений при одновременном повышении быстродействи  и упрощении..
На фиг. 1 представлена структурна  схема анализатора; на фиг. 2 - структурна  схема блока пам ти; на 1ФИГ. 3 - блок-схема микропрограммного lynpaajleHHH анализатором. ; Синтаксический анализатор (фиг. 1) |содержит входной регистр 1, дешифра- |тор :2 лексических единиц, блок 3. управлени , вьтолненный, например, на программируемых логических матрицах , шифратор 4 основ, блок.5 пам ти, дешифратор 6,кодов операций, буферный |регистр 7, сумматор 8 и блок 9 выде- ;лёни  аксиомы.
i В состав .блока 5 пам ти входит :группа реверсивных регистров 10 ; сдвига.
: Дл  задани  грамматики входного  зыка разработан функционально полный набор видов основ, где терминальным символом или терминалом будем назьюать символ, однозначно соответствующий символу входного  зыка. Нетерминальный символ или нетерминал - это символ, эквивалентный одному или целой группе символов входного  зыка.
Входной регистр 1 используетс  дл  хранени  очередной лексической единицы исходного выражени , дешифратор 2 лексических единиц раздел ет лексические единицы на операнды, операции, скобки.
Блок 3 управлени  управл ет работой всех элементов устройства. При- мер его функционировани  дл  операций + и х описан блок-схемой микропрограммного управлени  (фиг. 3), где входные сигналы , Х„ формирует дешифратор 2 лексических единиц X.f, Xg, X, - дешифратор кодов операций, а Х дешифратор аксиомы, На выходе блока 3 микропрограммного управлени  формируютс  сигналы микроопераций Yi,Y -Yij, и Y|5, а также сигналы Y,, Y, Y, tg.. , Y, Y,3, ,HB- л ющиес  совокупност ми микроопераций . Содержательный смысл входных и выходных сигналов следующий:
1, если лексическа  единица ис- . ходного напр жени  есть открьгаающа  скобка; О в противном случае.
Х,
5 0 5
g
5
X,
х,.X .
v
1 , если лексическа  единица исходного выражени  есть операнд;
О в противном случае.
1, если лексическа  единица исходного выражени  есть знак плюс;
О в противном случае.
1, если лексическа  единица исходного выражени  есть знак умножить;
О в противном случае.
1, если лексическа  единица исходного выражени  есть закрывающа  скобка;
О в противном случае,
I, если терминал в (N-1). разр дах блока 5 пам ти есть код знака плюс;
О в противном случае.
1, если терминал в (N-1) разр дах блока 5 пам ти есть код знака умножить; О в противном случае.
X J
к
1, если лексическа  единица исходного выражени  есть знак конца выражени  ;
О в противном случае.
1, если терминал в (N-l) разр дах блока 5 пам ти есть код открывающей скобки;
О в противном случае.
1, если в сумматоре содержитс 
код нетерминала О в противном случае.
5
Y, у, , г СУ5. 4 {у,
Уг УП. УЭ Уг 9 УЧ J Э У|г
Y. fy,,. у,б ;
I yis 5
Уг. Y, у,;; Ye у,б; Yq Уп1 Y|o y,g ; Y, у ; Y,2 Ую Y,,, У4 ; Y, у, У5, у,
5 У,,.
де у.
крьшаюп1а  скобка в буферный регистр 7;
сложение в сумматоре 8 кода терминала/нетерминала, поступающего из буферного регистра ,7;
запись кода терминала От- крьшающа  скобка в блок 5 пам ти;
чтение следующей лексической единицы исходного выражени  из входного регистра 1; запись кода нетерминала F в буферный регистр 7; запись кода нетерминала основы FxF в буферный регистр 7;
вычитание кода нетерминала основы из содержимого сумматора 8;
сдвиг на два разр да эправо (в сторону старших разр дов ) содержимого . блока 5 пам ти;
запись кода нетерминала основы (F) в буферный регистр 7;
запись кода нетерминала основы F-vF в буферный ре- . гистр 7;
вьщача сообщени  Ошибка ; сдвиг на разр д влево содержимого блока 5 пам ти; - запись кода терминала Знак плюс в буферный регистр 7; запись кода терминала Зна- коумножитель в буферный per истр 7;
запись кода терминала Знак плюс в блок 5 пам ти;
запись кода терминала Знак умножени  в блок 5 пам ти; запись кода терминала За- крьшающа  скобка в блок 5 пам ти;
КоIt
У- У ,
.У4
у.; Уб у
УО у« y«t - у«УП - У.5 У (б У17 - У|8 запись кода терминала нец исходного выражени  (знак 4J:) в блок 5 пам ти.
Шифратор 4 основ формирует коды
ерминалов и нетерминалов.
Блок 5 пам ти - это пам ть с поледовательным безадресным принципом аписи и чтени . В состав блока па ти (фиг. 2) входит группа реверивных сдвигающих регистров 10. Заый
а 1399741
пись информации производитс  в старшие N-e разр ды параметров.
Реверсивные регистры 10 сдвига блока 5 пам ти поразр дно сдвигают
0
коды терминалов, а также совместно с дешифратором 6 кодов операций производ т выбор основы дл  свертки исходного выражени .
0 Буферный 7 регистр используетс  дл  хранени  кодов терминалов и нетерминалов .
Сумматор 8 вьтолн ет либо функцию вычитани  кодов терминалов и не- 5 терминалов, либо функцию вычитани  нетерминалов основ.
Блок 9 выделени  аксиомы выдел ет код нетерминала F, определенный в качестве начального нетерминала 0 (или аксиомы) и соответствующей успешному завершению синтаксического анализа.
Устройство работает следующим образом.
5 Лексические единицы исходного выражени  последовательно поступают на входной регистр 1, а затем на дешифратор 2 лексических единиц, ко- торый различает и выдел ет операнды, операции, скобки и выражени  4|.
При поступлении лексической единицы , например, открывающей скобки (, ) дешифратор 2 лексических -единиц запускает блок 3 управлени , который вырабатывает совокупность микроопераций (Y,). Управл ющие сигналы с блока 3 управлени  поступают на вход шифратора А основ и формируют код терминала открьгаающей Q скобки, а затем разрешают запись кода терминала в буферный регистр 7 (микроопераци  у и сложение его с содержимым сумматора 8 (микроопераци  у), а также осуществл ют сдвиг на 1 разр д влево содержимого блока 5 пам ти (микроопераци  у,2), запись в разр ды блока 5 пам ти кода терминального символа и разрешают чтение следующей лексической единицы из входного регистра 1 (микроопераци  У4)..-Если следующа  лексическа  единица есть операнд (, Х,0, ), то блок 3 управлени  выполн ет сое вокупность микроопераций (Y,j, Yj) : . на шифраторе 4 основ формируетс  код нетерминала F, производитс  запись кода нетерминального символа F в буферньШ регистр 7 (микроопераци 
5
5
0
У-) происходит сложение кода и содержимого сумматора 8, выполн етс  сдвиг на 1 разр д влево содержимого блока 5 пам ти (микрооперади  у,) и вырабатываетс  разрешающий сигнал на чтение очередной лексической еди- ниды из входного регистра 1, Если лексическа  единида не была операндом (, Х,0, ), то формиру- етс  управл ющий сигнал об ошибке (микроопераци  у,,) .
Если очередна  лексическа  едини™ ца есть операди , например, знак плюс ()|, то дешифратор 2 логи- ческих единид запускает блок 3 управлени , входные сигналы ( Yg) которого формируют на шифраторе 4 основ код терминала Знак плюс, запись Кода в буферный регистр 7 (микроопе™ раци  у,) и в старшие разр ды блока 5 пам ти (микрооперади -у,з) J сложени Кода терминального символа с содер жимым сумматора 8 (микроопераци  у) И сбрасывает запрет на чтение оче- редной единицы из входного регистра 1, Если лексическа  единица не операди  (Х., ), то происходит формирование сигнала (Yjj)« сообщающего об ошибке.
Если следующа  лексическа  единица есть открывающа  скобка ( Х,1), то дешифратор 2 лексических единид запускает блок 3 управлени , Который вырабатьгоает совокупность Микроопераций (Y) , и работа устройства повтор етс .
Если очередна  лексическа  единица есть не операнд и не открьша- Ьща  скобка (, Х,0), то форми- руетс  управл ющий сигнал об ошибке микроопераци , у,) .
Если очередна  лексическа  единица есть операнд (), то блок 3 управлени  вьшолн ет совокупность микроопераций (Y, Y.) на шифраторе 4 основ формируетс  код нетерминала F, производитс  запись кода нетерминального символа F в буферный регистр 7 (микроопераци  Ус.)з проис™
ходит сложение содержимого сумматора
8 и кода, выполн етс  сдвиг на i разр д влево содержимого блока 5 пам - ти (микроопераци  у,) и вырабатываетс  разрешающий сигнал на чтение очередной лексической единицы из входного регистра 1,
Если очередна  лексическа  единица не знак операции, не закрьшаю
5 Q
0
В
5
ща  скобка и не конец выражени  (Х,0, , , ), то в блоке 3 управлени  формируетс  управл ющий сигнал выдачи ошибки (микроопераци  у,) .
Если очередна  лексическа  единица есть знак (X,), или знак (), или закрьгеающа  скобка (Xg 1) , или конец выражени  4 (Х 1) , то блок микропрограммного управлени  формирует на шифраторе 4 основ код терминала Знак плюс, Знак умножить , Закрьгоающа  скобка, Конец выражени  соответственно, затем происходит запись соответствующего кода в N-й разр д блока 5 пам ти.
После записи кода терминала в старшие разр ды реверсивных регистров сдвига блока 5 пам ти содержимое (N-l)-x разр дов блока 5 пам ти поступает на вход дешифратора 6 кодов операций, который формирует сигнал, определ ющий вид основы дл  свертки исходного выражени . Деши|)ратор 6 кодов операций запускает блок 3 управлени , который разрешает-выполнение операций (Y,,-Y,4) . Если в ()x разр дах реверсивных сдви- - гающих регистров находитс , например, код терминала Знак плюс (Xgi Oj ), то в буферный регистр 7 запи- сьюаетс  код нетерминала основы ; F + F (микрооперади  У|д) , затем из содержимого сумматора 8 вычитаетс  код нетерминала основы (микроопераци  у), а в буферный регистр 7 заноситс  код нетерминала F (микроопераци  У5), после чего производитс  сложение кода нетерминала с содержимым сумматора 8 (микроопераци  y-j) и осуществл етс  сдвиг на 2 разр да вправо содержимого реверсивных сдвигающих регистров блока 5 пам ти (микроопераци  у„),
Если в (N-l)-x разр дах реверсивных сдвигающих регистров находитс  код терминала Знак умножени  (), то в буферный регистр 7 записьшаетс  ко д нетерминала основы F«P и следует операци  Y}(}.,
Если в (N-l)-x разр дах реверсивных сдвигающих регистров находитс  код терминала Закрьюающа  скобка (, XT.O, ), то в буферный регистр 7 запись1ваетс  код нетерминала основы (F) и следуют разрешение на чтение очередного символа на входной
регистр I (микроопераци  у) и операци  Y,.
Если выбрана несуществующа  основа (, ,-Х,0), то в блоке 3 управлени  формируетс  управл ющий сигнал выдачи ошибки (Y.g).
Если очередна  лексическа  единица есть закрывающа  скобка (), то дешифратор 2 лексических единиц д запускает блок 3 управлени , который вьшолн ет (Y) сдвиг на 1 разр д влево содержимое реверсивных сдвигающих регистров (микроопераци  у),
ходит сдвиг на 1 разр д влево содержимого реверсивных сдвигающих регистров , в старшие разр ды которых за- письгваетс  код терминала, после чего записьшаетс  чтение с входного регистра I следующей лексической едини- ць1 исходного выражени .
Лексическай единица А дешифруетс  дешифратором 2 как операнд (), и выдаетс  сигнал на запуск блока 3 управлени , который разрешает формирование на шифраторе 4 основ кода нетерминала F, заносит его в
затем на шифраторе А основ происходит 5 буферный регистр 7, суммирует содерформирование кода терминала Закрывающа  скобка и запись (Y) кода терминала в.блок 5 пам ти микроопераци  у). Далее работа устройства повтор етс .
Если очередна  лексическа  единица не закрьгоающа  скобка (), не конец выражени  :Jf (), то, дешифратор 2 лексических единиц запускает блок 3 управлени , который вьшолн ет (YJ) сдвиг ,на 1 разр д влево содержимого реверсивных сдвигающих регисл ров (микроопераци  у) . Далее работа устройства повтор етс .
Если очередна  лексическа  единица е.сть конец выражени  (, ), то блок 9 выделени  аксиомы осуществл ет проверку содержимого
сумматора 8. .1
Если сумматор 8 содержит код нетерминала F (, , ), то - входное выражение синтаксически правильно.
Если сумматор 8 содержит код другого символа (, ), то блок 3 управлени  формирует сигнал об ошибке ().
Пример 1. Пусть входное вы- ражение имеет вид {A+(B+C) D f.Процесс синтаксического анализа происходит следующим образом. На входной регистр 1 поступает лексическа  единица (, котора  дешифратором 2 лекси- , ческих единиц определ етс  как открывающа  скобка (X.I), и происходит запуск блока 3 управлени , формирующего совокупность микроопераций, котора  блокирует входной регистр 1, запускает шифратор 4 основ на формирование кода терминала Открьгоающа  скобка. Затем происход т запись кода терминала в буферный регистр 7, сложение кода терминала с содержимым сумматора 8. В блоке 5 пам ти проис20
жимое сумматора 8 с кодом нетерминала производит сдвиг на 1 разр д влево содержимого блока 5 пам ти и снимает блокировку на чтение с входного регистра 1, с которого поступает очередна  лексическа  единица +. ,
Дешифратор 2 лексических единиц распознает ее как операцию () и возбуждает блок 3 управлени , ко- 25 торый запускает шифратор основ, фор- мирующий код.терминала Знак плюс, записьшаемый в буферный регистр 7 и в N-e разр ды реверсивных сдвигающих регистров блока 5 пам ти, происходит сложение кода терминала с содержимым сумматора 8 и даетс  с блока 3 управлени  разрешение на чтение очередной лексической единицы.
Лексическа  единица, поступающа  на дешифратор 2, определ етс  как открывающа  скобка. С помощью блока 3 управлени  шифратор 4 основ формирует код терминала о.ткрывающей скобки , которьй заноситс  в буферный регистр 7, .складьтаетс  с содержимьм сумматора 8, а также производитс  сдвиг на 1 разр д влево содержимого блока 5 пам ти и разрешаетс  считьгоа- ние следующей лексической единицы В
30
35
40
45
из входного регистра.
Дешифратор 2 лексических единиц
(Х,
определ ет ее как операнд (,х 1) и запускает блок 3 управлени , выходные сигналы с которого разрешают шифрато- 50 РУ основ формирование кода нетерминала F, запись его в буферный регистр 7, сложение кода с содержимым сумматора 8 и чтение очередной лексической единицы с входного регист55 Ра 1.
Поступивша  на дешифратор 2 лекйИческа  единица + есть операци  (Х, «О. Блок 3 управлени  на тт.1фра-- торе 4 основ формирует код т(рмннала
ходит сдвиг на 1 разр д влево содержимого реверсивных сдвигающих регистров , в старшие разр ды которых за- письгваетс  код терминала, после чего записьшаетс  чтение с входного регистра I следующей лексической едини- ць1 исходного выражени .
Лексическай единица А дешифруетс  дешифратором 2 как операнд (), и выдаетс  сигнал на запуск блока 3 управлени , который разрешает формирование на шифраторе 4 основ кода нетерминала F, заносит его в
0
жимое сумматора 8 с кодом нетерминала, производит сдвиг на 1 разр д влево содержимого блока 5 пам ти и снимает блокировку на чтение с входного регистра 1, с которого поступает очередна  лексическа  единица +. ,
Дешифратор 2 лексических единиц распознает ее как операцию () и возбуждает блок 3 управлени , ко- 5 торый запускает шифратор основ, фор- мирующий код.терминала Знак плюс, записьшаемый в буферный регистр 7 и в N-e разр ды реверсивных сдвигающих регистров блока 5 пам ти, происходит сложение кода терминала с содержимым сумматора 8 и даетс  с блока 3 управлени  разрешение на чтение очередной лексической единицы.
Лексическа  единица, поступающа  на дешифратор 2, определ етс  как открывающа  скобка. С помощью блока 3 управлени  шифратор 4 основ формирует код терминала о.ткрывающей скобки , которьй заноситс  в буферный регистр 7, .складьтаетс  с содержимьм сумматора 8, а также производитс  сдвиг на 1 разр д влево содержимого блока 5 пам ти и разрешаетс  считьгоа- ние следующей лексической единицы В
0
5
0
5
из входного регистра.
Дешифратор 2 лексических единиц
(Х,
определ ет ее как операнд (,х 1) и запускает блок 3 управлени , выходные сигналы с которого разрешают шифрато- 0 РУ основ формирование кода нетерминала F, запись его в буферный регистр 7, сложение кода с содержимым сумматора 8 и чтение очередной лексической единицы с входного регист5 Ра 1.
Поступивша  на дешифратор 2 лекйИческа  единица + есть операци  (Х, «О. Блок 3 управлени  на тт.1фра-- торе 4 основ формирует код т(рмннала
1399741
Знак п.шос, записывает его в старшие разр ды блока 5 пам ти и Б буферный регистр 7, затем складьшает с содержимым сумматора 8. После этого происходит считывание очередной лексической единицы с входного регистра 1.
Лексическа  единица С - оЛеранд, который формирует на шифраторе 4 код нетерминала F, Код нетерминала записываетс  в буферньй регистр 7, и , одновременно сдвигаетс  содержимое блока 5 пам ти влево на 1 разр д, затем код нетерминала суммируетс  с содержимым сумматора 8.
Очередна  лексическа  единица поступает на дешифратор 2 и определ - етс  как закрьшающа  скобка. Формируетс  код терминала Закрьшающа  скобка, который записываетс  в блок 5 пам ти.. Дешифратор 6 кодов операций по коду предыдущего терйинала определ ет вид основы (). Код нетерминала основы F+F заноситс  в буферный регистр 7 и вычитаетс  из содержимого сумматора, а содержимое . блока 5 пам ти сдвигаетс  на 2 разр да вправо. Код нетерминала F заноситс  в буферный регистр 7 и складываетс  с содержимым сумматора 8, Дешифратор 2 определ ет текущую лексическую единицу как закрьшагощую скобку. Блок 3 управлени  формирует сигнал, которьй производит сдвиг влево на 1 разр д содержимого блока пам ти и запись кода терминала Закрьшающа  скобка в старшие разр ды реверсивных сдвигающих регистров. Дешифратор & кодов операций определ ет вид основы (F) (), так как в (N-})x разр дах реверсивных регистров сдвига содержитс  код тер- минала Открьвающа  скобка. Код нетерминала основы записьшаетс  в буферный регистр 7 и вычитьшаетс  из сумматора В, Одновременно сдвигаетс  содержимое блока 5 пам ти на 2 разр да вправо, снимаетс  блокировка с входного регистра 1, с которого на дешифратор 2 поступает лексическа  единица ). В буферный регистр 7 заноситс  код нетерминала F и складываетс  с содержимым сумматора 8,
Текуща  лексическа  единица ) определ етс  дешифратором 2 как зак- рьюающа  скобка ()5 происходит блокирование входного регистра . Далее устройство работает по циклу, описанному выше.
10
Текуща  лекс1-гческа  единица , определ етсп дешифратефом 2 как операци  (Х4 О Сформированный шифратором 4 код терминала Знак умножить заноситс  в блок 5 пам ти, в буферный регистр 7, складьгоаетс  с содержимым сумматора 8 и осуществл етс  переход к следующей лексической
единице.
Очередна  лексическа  единица D - операнд. Б сумматоре 8 добавл етс  код нетерминала F, производитс  сдвиг влево на 1 разр д содержимого
го блока 5 пам ти и выбираетс  следующа  лексическа  единица - конец вы- ражени ,
Дешифратор 2 выдел ет лексическую единицу, запускает шифратор 4 основ,
формирующий код терминала Конец выражени , который заноситс  в блок 5 пам ти. На основании этого кода дешифратор 6 кодов операции разрешает .выбор основы вида F-i-F. Код нетерминала основы вычитаетс  из сумматора 8, а затем к содержимому сумматора добавл етс  код нетерминала- F. Блок 3 управлени  разрешает выдачу содержимого сумматора 8 на вход блока 9 выделени  аксиомы. Так как в
сумматоре 8 содержитс  код нетерминала F % то блок 9 выделени  аксиомы запускает блок 3 мшсропрограммного управлени , который успешно завершает синтаксический анализ исходного вы
ражени .
Пример 2. Пусть исходное выражение имеет вид ((А+В)С#, кото- рое содержит синтаксич.ескую ошибку нет закрьшающей скобки.
Лексическа  единица (поступает через входной регистр 1 на дешифратор
2 и определ етс  как открывающа  скобка. Запускаетс  блок 3 управлени , который блокирует входной регистр 1, формирует на шифраторе 4 основ код терминала Открыв ающа 
скобка, который записываетс  в буферный регистр 7 р а такзке. сдвигаетс  содержимое блока 5 пам ти на 1 разр д влево. Код терминала заноситс  в блок 5 пам ти, одновременно суммируетс  с содержимым сумматора 8, затем снимаетс  блокировка с входного регистра 1 .и следующа  лексическа  единица ( поступает на дешифратор 2 лексических единиц.
Лексическа  единица ( otKpbraa юща  скобка, и цикл устройства повтор етс .
Очередна  .лексическа  единица А дешифрируетс  как операнд. На шифраторе 4 формируетс  код нетерминала F, который поступает в буферньй регистр 7, суммируетс  с содержимым сумматора 8, содержимое блока 5 пам ти сдвигаетс  на 1 разр д влево, и происходит чтение очередной лексической единицы. +, + - это операци , формируетс  код соответствующего терминала, которьш заноситсА в блок 5 пам ти. Код терминала запй- сьшаетс  в буферный регистр 7 и складываетс  с содержимым сумматора 8, после чего выбираетс  очередна  лексическа  единица В.
Дешифратор 2 определ ет ее как операнд. Содержимое сумматора уве- :личиваетс  на значение кода нетерминала F, блок 5 пам ти подготавливаетс  к приему очередного кода терминала.
Следующа  лексическа  единица ) дешифрируетс  как закрьшающа  скобка . Шифратор основ формирует код терминала Закрьшающа  скобка, который записьшаетс  в блок 5 пам ти. Дешифратор 6 кодов операций разрешает блоку 3;управлени  выбор основы F+F, Код нетерминала основы вычитаетс  из сумматора 8, н в блоке 5 пам ти содержимое сдвигаетс  на 2 разр да вправо, содержимое сумматора складьшаетс  с кодом нетерминала F . Дешифратор определ ет текущую лексическую единицу как закрывающую скобку. Код терминала Закрьшающа  скобка заноситс  в блок 5 пам ти. Дешифратор 6 кодов операций разрешает выбор основы (F). Блок 3 управлени  считьшает очередную лексическую единицу х, одновременно из содержимого сумматора 8 вычитаетс  код нетерминала основы, сбрасьгааетс  содержимое 2 старших разр дов в блоке 5 пам ти, и к содержимому сумматора 8 добавл етс  код нет ерминала F.
Текуща  лексическа  единица Код терминала Знак
операци ,
умножить записываетс  в блок 5 пам ти, складьшаетс  с содержимым сумматора 8, и происходит пере-ход к анализу следующей лексической единицы С. С - это операнд, код нетерминала
F суммируетс  с содержимым сумматора 8, а блок 5 пам ти сдвигает содержимое на 1 разр д влево.
Очередна  лексическа  единица - конец выражени  :#:. Код терминала записьшаетс  в блок 5 пам ти. Возбуждаетс  блок 3 управлени  и выбираетс  основа F+F, код нетерминала которой вычитаетс  из содержимого сумматора 8, сбрасьшаютс  2 старших разр да блока 5 пам ти, а содержимое сумматора 8 увеличиваетс  на код нетерминала,F.
Дешифратор 2 определ ет, что текуща  лексическа  единица - .конец выражени , и содержимое сумматора 8 по сигналу с блока 3 управлени  поступает на вход блока 9 выделени  аксиомы , который определ ет, что содержимое сумматора отлично от кода нетерминала F, и возбуждает в блоке 3 управлени  сигнал ошибки.

Claims (1)

  1. Формула изобретени 
    Синтаксический анализатор, содержащий входной регистр, дешифратор лексических единиц, блок управлени ,
    шифратор основ, блок пам ти, дешифратор кодов операций, буферный регистр и сумматор, причем информационный вход входного регистра  вл етс  входом анализатора, выход внодного регистра подключен к входу дешифратора лексических единиц, выход которого подключен к первому входу блока управлени , первый выход которого соединен с входом синхронизации
    входного регистра, второй выход блока управлени  соединен с входом шифратора основ, выход которого соединен с информационными входами блока пам ти и буферного регистра,
    третий выход блока управлени  соединен с управл ющим входом блока пам ти , выход которого подключен к входу дешифратора кодов операций, вы-; ход которого соединен с вторым входом блока управлени , четвертый
    выход которого соединен с входом синхронизации буферного регистра, выход которого подключен к информационному входу сумматора, управл ющий вход
    которого соединен с п тым выходом блока управлени , седьмой и восьмой
    выходы которого  вл ютс  соответственно выходами
    Ошибка и Конец
    анализа анализатора, о т л и ч а 13
    ю щ и и с   тем, что, с целью расширени  функциональных возможностей за счет обеспечени  бесприоритетно
    U
    лени  аксиомы, информационный вход которого соединен с выходом сумматора , управл ющий вход и информаци
    го синтаксического анализа исходных ,. онный выход блока выделени  аксиомы
    выражений при одновременном повышении быстродействи  и упрощении.анализатора , в него введен блок выдеподключены соответственно к шестому выходу и третьему входу блока управлени .
    Кдеши9Р(наоаамкави8
    -п опералии
    puf.2
    подключены соответственно к шестому выходу и третьему входу блока управлени .
    уха.З
SU864089673A 1986-07-11 1986-07-11 Синтаксический анализатор SU1399741A1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SU864089673A SU1399741A1 (ru) 1986-07-11 1986-07-11 Синтаксический анализатор

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SU864089673A SU1399741A1 (ru) 1986-07-11 1986-07-11 Синтаксический анализатор

Publications (1)

Publication Number Publication Date
SU1399741A1 true SU1399741A1 (ru) 1988-05-30

Family

ID=21246047

Family Applications (1)

Application Number Title Priority Date Filing Date
SU864089673A SU1399741A1 (ru) 1986-07-11 1986-07-11 Синтаксический анализатор

Country Status (1)

Country Link
SU (1) SU1399741A1 (ru)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Авторское свидетельство СССР № 637818, кл. G 06 F П/00. Авторское свидетельство СССР № 1334149, кл. G 06 F, П/00, 15/38, 1986. *

Similar Documents

Publication Publication Date Title
US4991094A (en) Method for language-independent text tokenization using a character categorization
US5963742A (en) Using speculative parsing to process complex input data
US5991539A (en) Use of re-entrant subparsing to facilitate processing of complicated input data
SU1399741A1 (ru) Синтаксический анализатор
DeRemer Lexical analysis
SU1334149A1 (ru) Синтаксический анализатор
SU1034043A1 (ru) Устройство дл лексического анализа метамикроассемблера
SU1399767A1 (ru) Устройство синтаксически управл емого перевода
SU1418757A1 (ru) Устройство дл лексического анализа программ
Eriksen et al. The BOBS-system
SU1161950A1 (ru) 8-Битный микропроцессор
SU1439594A1 (ru) Синтаксический анализатор
SU1283797A1 (ru) Устройство дл преобразовани кодов с одного зыка на другой
SU857994A1 (ru) Устройство дл определени старшинства операций
Alpiar Double syntax oriented processing
SU1439593A1 (ru) Синтаксический анализатор
Ullman Combining state machines and regular expressions for automatic synthesis of VLSI circuits
SU1742832A1 (ru) Устройство дл перевода арифметических выражений в линейные регул рные префиксные формы
Boullier Syntax analysis and error recovery
SU1465894A1 (ru) Параллельный синтаксический анализатор
RU2010319C1 (ru) Устройство для обработки символьной информации
SU1091160A1 (ru) Микропрограммное устройство управлени
SU1439591A1 (ru) Синтаксический анализатор
Chu et al. A top-down parsing co-processor for compilation
Maliavko Neutralization of Syntax Errors in the Compiler of the Functional-Imperative Language El