SU1439591A1 - Синтаксический анализатор - Google Patents
Синтаксический анализатор Download PDFInfo
- Publication number
- SU1439591A1 SU1439591A1 SU874218703A SU4218703A SU1439591A1 SU 1439591 A1 SU1439591 A1 SU 1439591A1 SU 874218703 A SU874218703 A SU 874218703A SU 4218703 A SU4218703 A SU 4218703A SU 1439591 A1 SU1439591 A1 SU 1439591A1
- Authority
- SU
- USSR - Soviet Union
- Prior art keywords
- input
- decoder
- block
- output
- memory block
- Prior art date
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Изобретение относитс к вычислительной технике и может быть использовано в автоматизированньпс системах .обработки данных и производства программ ЭВМ. Цель изобретени - повьппе- ние достоверности синтаксического контрол при одновременном повышении быстродействи и сокращении аппаратурных затрат. Дл достижени указанной цели в устройство дополнительно введены дешифратор 6 и шифратор 4. Введение указанных элементов и порождаемых ими св зей в сочетании с реализацией блока 5 пам ти на реверсивных сдвигающих регистрах, а также с усовершенствованными алгоритмами 1|)ункдионировани блока 3 микропрограммного управлени позвол ет реализовать указанные преимущества и осуществить полный синтаксический анализ входных выражений. 3 ил., 2 табл. а € Л
Description
ИН1. Sx. Вход упраЬле- J,
Ошибка Успешный
aHQjjus
ОО
СО
О1
со
спешный
aHQjjus
Фиг.
114
Изобретение относитс к вычисли тельной технике и может быть использовано в автоматиаированиых системах обработки данных и производства программ ЭВМ,
Цель изобретени - повышение достоверности синтаксического контрол при одновременном повьшшнии быстродействи : и сокращении аппаратурных затрат.
На фиг, 1 представлена структурна схема синтаксического анализатора; на фиг„ 2 структурна схема блока пам тиJ на фиг, 3 блок-схема микропрограммного управлени синтаксическим анализатором.
Синтаксический анализатор (фиг„ 1) содержит входной регистр 1, дешифра™ тор 2 лексических единиц, блок 3 микропрограммного управлени , выполненный , например 5 на программируемых логических матрицах,- шифратор 4, блок 5 пам ти, дешифратор 6,
В состав блока 5 вход т два реверсивных регистра 7 сдвига о
Входной регистр 1,-дешифратор 2 лексических единиц, шифратор 4 и дешифратор 6 могут быть реализованы известным способом па серийно вып ус- кавмой элементной базе.
Входной регистр 1 используетс дл хранени очередной лексической единицы исходного выражени . Дешифратор 2 лексических единиц раздел ет лексические единицы на. операнды операции, скобки/ конец выражени „
Блок 3 микропрограммного управле
ни (1У1Ш ) управл ет работой всех элементов анализатора. Алгоритм его функционировани описан блок-схемой микропрограммного управлени (фиг, З где входные сигналы Х1-Х5 формирует дешифратор 2 лексических единиц (сигналы Х2-Х5) образуют группу выходов дешифратора 2 лексических еди- ницд сигнал Х1 подаетс на выход дешифратора ) 5 а Х6-Х8 формирует дешифратор 6, причем на выход дешифратор б подаетс сигнал Х8, а сигналы Х6 и Х7 - на группу выходов. На выходе блока 3 управлени формируютс сигналы микроопераций Y1-Y11, а также сигналы микрокоманд YIZ-YIS, вл юцщес совокупност ми микроопераций „ Содержательный сг-люл входньк и выходных сигналов следующий: .
1,. если лексическа единица исходного выражени есть знак конца выражени О в противном случае;
1, если лексическа единица исходного выражени есть открывающа скобка; О в противном случае;
0
5
О
5
0
ХЗ
Х4
Х5
Хб
Х7
Х8
1, если лексическа единица
исходного выражени есть
операнд;
О в противном случае;
1, если лексическа единица исходного выражени есть бинарна операци ; О в противном случае;
1,- если лексическа единица исходного выражени есть закрывающа скоба; О в противном случае;
1, если в трех последних разр дах регистров блока пам ти находитс код основы F X О в противном случае;
1, если в трех последних , разр дах регистров блока пам ти находитс - код основы (F); - О в противном случае;
1, если в последнем разр де регистров блока пам ти находитс код нетерминала F, а два предыдущих раз- ) да нулевые; О в противном случае;
31А3959
де Y - сброс в ноль регистров 7 блока 5 пам ти;
у - ввод следующей лексической единицы во входной регистр 1;
у - сдвиг на 1 разр д влево
(в сторону младших разр дов)
содержимого регистров 7
блока 6 пам ти; Q
у. - сдвиг на 2 разр да вправо
(в сторону старших разр дов) содержимого регистров 7 блока 5 пам ти;
у - выработка кода терминала 15 открывающа скобка ;
у - выработка кода нетерминала
y-j выработка кода нетерминала
Операци ,20
у - выработка кода терминала Закрывающа скобка ;
Уд выработка сообщени Ошибка ;
- выработка сообщени Успеш- 25 ный анализ ;
У(( разрешение записи в блок 5 пам ти,
Блок 3 МПУ может быть реализован
на программируемых логических матрицах .
Шифратор 4 формирует коды терминалов Открывающа скобка/ , Закрывающа скобка и нетерминалов Операци , Г -операнд.
Блок 5 пам ти предназначен дл хранени , записи и считывани кодов терминалов и нетерминалов, поступающих на информационный вход блока. Блок 5 пам ти представл ет собой пам ть с безадресным принципом записи и чтени и может быть выполнен на двух реверсивных сдвигающих регист- pax 7. Запись терминалов и нетерминалов производитс в старшие N-e разр ды регистров 7 (фиг. 2). Выходы последних трех разр дов регистров 7 образуют группу выходов, св занную с группой входов дешифратора 6. Реверсивные регистры 7 блока 5 пам ти поразр дно сдвигают коды терминалов и нетерминалов, причем сдвиг вправо на два разр да равносилен затиранию последних двух записанных цодов.
Дешифратор 6 вырабатывает входные сигналы Х6-Х8 по анализу информации наход щейс в трех старших разр дах 1Ьегистров 7 блока 5 пам ти.
Q
5
0
5
0
0
5
5
0
5
Fla выход дешифратора 6 подаетс сигнал Х8, который анализируетс блоком 3 МЛУ во врем поступлени знака конца выражени . Сигнал в том случае, когда в старших разр дах регистров 7 блока 5 пам ти находитс код нетерминала F, а два предыдущие разр да нулевые, что свидетельствует об успешном анализе входного выражени , С группы выходов дешифратора 6 на вторую группу входов блока 3 МПУ поступают сигналы Хб и - Х7 S которые равны единице в том случае , если в последних трех разр дах регистров 7 блока 5 пам ти находитс код основы F -JS- F или iF) соответственно . Единичное значение любого из этих сигналов свидетельствует о возможности произвести свертку исходного выражени , т.е. как основ F4F или (F) заменить на код
нетерминала F.
I
Анализатор работает следукнцим образом.
На первом гсаге блок 3 МГО вырабатывает микрооперацию Y1 - сброс в ноль содержимого регистров 7 блока 5 пам ти.
Затем блок 3 МПУ вырабатывает микрооперацию Y2 - ввод лексической единицы во входной регистр 1. Лексическа единица поступает на дешифратор 2 лексических единиц и дешифруетс дешифратором. Если на вход поступил знак конца выражени , то дешифратор 2 лексических единиц вырабатывает сигнал (), который запускает блок 3 МПУ от дешифратора 6. Если Х8 1, т.е. в старшем разр де регистров 7 блока 5 пам ти находитс код нетерминала F, а два предыдущие разр да нулевые, то блок 3 МПУ вырабатывает микрооперацию Y10 - Успешный анализ и алгоритм заканчивает свою работу. В . противном случае (если Х8 0) блок 3 МШ вырабатывает микрооперацию Y9 - Ошибка и алгоритм заканчивает свою работу.
Если же входна лексическа единица есть не знак конца выражени , то дешифратор 2 лексических единиц вырабатывает сигнал XI 0, который запускает блок 3 МПУ на выработку микрооперации сдвига влево на 1 разр д содержимого регистров 7 блока 5 пам ти (микроопераци Y3) и на анализ входного сигнала Х2.
5U395916
Если Х2 1, т.е. входна лекси- рооперацию ввода следующей лексической ческа единица есть открывающа скоб- единицы во входной регистр 1.
:ка,, то блок 3 МПУ вырабатывает последовательность микроопераций выработки кода открывающей скобки шифратором 4 и записи этого кода в блок 5 пам ти (сигнал Y12), Затем блок 3 ГШУ про ,изводит анализ возможности свертки исходного выражени .
Блок 3 Miiy анализирует входной сигнал Хб, поступающий от дешифратора 6 на 2 гр.вх.блока 3 МПУ. Если Х6 1, Тов. в трех последних разр дах регистров 7 блока 5 пам ти находитс код основы , то блок 3 ШУ вырабатывает последовательность мик-; рокоманд Y4 . и Y13,, в результате выполнени которых происходит сдвиг
содержимого регистров 7 блока 5 пам г- 20 дешифрирует текущую лексическую едити на два разр да вправо, выраоотка : кода нетерш нала F шифратором 4 и запись этого кода в блок 5 пам ти. Затем оп ть провер етс возможность свернуть исходное выражение, т,е, .блок 3 ЫШ провер ет входной сигнал Х6, Если Х6 О, то а нализируетс входной сигнал Х7. В случаеj если Х7 I, т„е. в трех последних разр дах регистров 7 блока 5 пам ти находитс код основы F, блок 3 МПУ вырабатывает описанную последователь- ность микрокоманд (4, Y13), проводитс свертка исходного выраже- ни (код основы (F) замен етс ко- ; дом нетерминала F), К оп ть про- I вер етс . возможность свернуть исход- : Ное выражение и проводитс свертка до тех nopj пока входные сигналы.
3 ШУ. Если есть знак
ницу и запускает олок лексическа единица не конца выражени (), блок 3 МПУ вырабатывает микрооперацию сдвига
25 1 разр д влево содержимого регистр 7 блока 5 пам ти. Если лексическа единица есть закрывающа скобка - ()5 то блок 3 МПУ вырабатывает микрокоманду 15, т.е, происходит
30 работка кода терм лкала Закрызаюша скобка шифратором 4 и запись этог кода в блок 5 пам ти. После чего происходит отра.ботка алгоритма све ки и ввода следующей лексической е
„.- ницы исходного вырал ени . 5
Лексическа единица дешифруетс
дешифратором 2 лексических единиц запускает блок 3 ЮТУ. Если эта лек ческа единица не есть знак конца
Х6 и Х7 не примут нулевые значени , 40 выражени (Х1 0), то блок 3 МБ
После этого бхюк 3 МПУ -вырабатывает микрооперацию ввода следующей лексической единицы исходного выражени во входной регистр 1 (Y2)
Если лексическа единица не .есть знак конца, выражени (Х1 0), то блок 3 МПУ вырабатывает микрооперацию сдвига на 1 разр д влево содержимого регистров 7 блока 5 пам ти (микроопераци Y3).
Если лексическа единица есть опе- :ранд (ХЗ 1) то блок 3 ЖУ вырабатывает микрокоманду Y13s т.е« происходит выработка кода нетерминала F шифратдром и запись этого кода в блок 5 пам ти. Затем блок МПУ анализирует возможность свертки по описанному алгоритму. После выхода из этого .алгоритма блЬк 3 МПУ вырабатывает микЕсли эта лексическа единица не есть знак конца выражени (XI 0), блок 3 МПУ выдает микрооперацию сдвига влево на 1 разр д содержимого регистров 7 блока 5 пам ти (микроопе- рапи Y3).
Если лексическа единица есть операци (Х4 1), то блок 3 МШ вырабатывает микрокоманду Y145 т,е происходит выработка кода нетерг-шнала Операци шифратором 4 и запись этоТо , кода в блок 5 пам ти. Затем происходит отработка алгоритма свертки и ввод следующей лексической единицы исходного выражени .
Дешифратор 2 лексических единиц
3 ШУ. Если есть знак
ницу и запускает олок лексическа единица не конца выражени (), блок 3 МПУ вырабатывает микрооперацию сдвига на
1 разр д влево содержимого регистров 7 блока 5 пам ти. Если лексическа единица есть закрывающа скобка - ()5 то блок 3 МПУ вырабатывает микрокоманду 15, т.е, происходит выработка кода терм лкала Закрызаюша скобка шифратором 4 и запись этого кода в блок 5 пам ти. После чего происходит отра.ботка алгоритма свертки и ввода следующей лексической единицы исходного вырал ени .
Лексическа единица дешифруетс
дешифратором 2 лексических единиц л запускает блок 3 ЮТУ. Если эта лексическа единица не есть знак конца
вы.рабатывает микрооперацию сдвига на 1 разр д влево содержимого регистр(эв
7блока 5 пам ти (микроопераци Y.3) .
8случае, если эта лексическа едиии- 45 Ца, есть ни открывающа скобка (Х2 0),
ни операнд (ХЗ 0), ни операци (Х4 0) и ни закрывающа скобка (Х5 0), то блок 3 fffly выдает сообщение об ошибке (микроопераци Y9) ., gQ и алгоритм завершает свою работу. Пример 1. Пусть исходное выражение имеет вид:
а + (Ь - с) + d 1,
а, Ь, с, d - онеранды;
-I-, - - знаки операции; - символ конца выражени ,
Дл нагл дности работу анализатора опишем по укрупненным шагам,- пред- . ставленным в табл. 1, причем символы, использованные в колонке 5, обозначают следующее:
- код операнда; код операции;
( - код открывающей скобки;
) - код закрывающей скобки.
На вход устройства поступает выражение
F
а
(Ь - с) + с .
Таким образом анализатор завершил работу на 24-м шаге с выдачей сообщени Успешный анализ (микроопераци Y10).
Пример 2, Пусть исходное выражение имеет вид а + (Ь - с)) , которое содержит ошибку - имеетс лишн закрывающа скобка.
Процесс синтаксического анализа описан в пошаговом режиме в табл. 2.
На 21-м шаге анализатор закончил свою работу с выдачей сообщени Ошиб- :ка, так как в старших разр дах регист ров 7 блока 5 пам ти находитс код закрывающей скобки (Х8 0).
Claims (1)
- Формула изобре тениСинтаксический анализатор, содержащий входной регистр, дешифраторY3, Y13Y2XI, Х2,Y3, Y14лексических единиц, блок микропрограммного управлени и блок пам ти, причем информационный вход ёходногорегистра вл етс одноименным входом устройства, выход входного регистра соединен с входом дешифратора лексических единиц, выход и выходы .группы которого соединены с первымивходом и входами группы блока микропрограммного управлени соответственно , первый выход блока микропрог- .раммного управлени подключен к входу синхронизации входного регистра, второй .и третий выходы блока микропрограммного управлени вл ютс выходами Ошибка и Успешный устройства соответственно,, выходы первой группы блока микропрограммного управлени подключены к управл ющим входам блока пам ти, отличающийс тем, что, с целью повышени достоверности синтаксического контрол при одновременном повышении быстродейст- . ВИЯ и сокращении аппаратурных затрат, в него введены шифратор и дешифратор, причем выходы второй группы блока микропрограммного управлени соединены с входами шифратора, выход которого соединен с информационным входом блока- пам ти, выход которого подключен к входу дешифратора, выход и -выходы группы которого подключены к второму входу и входам второй группыблока микропрограммного управлени соответственно.Таблица 1пам тиЗапись кода операндаFПроход алгоритма свертки и ввод логической единицыЗапись кода операции11Х1,143959112 .Таблица 2Y1, Y2Обнуление блока 5 пам тиY3, Y13СверткаСвертка (F) СверткаОшибка.y,gвт utiiffHf fcf o4С началаФие.3
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU874218703A SU1439591A1 (ru) | 1987-04-01 | 1987-04-01 | Синтаксический анализатор |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU874218703A SU1439591A1 (ru) | 1987-04-01 | 1987-04-01 | Синтаксический анализатор |
Publications (1)
Publication Number | Publication Date |
---|---|
SU1439591A1 true SU1439591A1 (ru) | 1988-11-23 |
Family
ID=21294152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU874218703A SU1439591A1 (ru) | 1987-04-01 | 1987-04-01 | Синтаксический анализатор |
Country Status (1)
Country | Link |
---|---|
SU (1) | SU1439591A1 (ru) |
-
1987
- 1987-04-01 SU SU874218703A patent/SU1439591A1/ru active
Non-Patent Citations (1)
Title |
---|
Авторское свидетельство СССР 1й 637818, кл.С 01 F 11/00, 1978. Авторское свидетельство СССР f 1130879, кл. G 06 F 15/38, 1984. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100319353B1 (ko) | 다수의독립섹션과모든섹션으로부터의레지스터저장결과표시비트를가지는산술논리유닛 | |
US5748950A (en) | Method and apparatus for providing an optimized compare-and-branch instruction | |
EP0071028B1 (en) | Instructionshandling unit in a data processing system with instruction substitution and method of operation | |
US5907842A (en) | Method of sorting numbers to obtain maxima/minima values with ordering | |
JP3505266B2 (ja) | プログラム実行装置 | |
JPS6351287B2 (ru) | ||
CN107851016B (zh) | 向量算术指令 | |
JPS6220578B2 (ru) | ||
KR100315408B1 (ko) | 이동기를구비한3입력산술논리유닛 | |
SU1439591A1 (ru) | Синтаксический анализатор | |
JPH05143323A (ja) | タイプ1ダイアデイツク命令を実行する方法及び装置 | |
JPH07129473A (ja) | データ保護装置 | |
US3248698A (en) | Computer wrap error circuit | |
US5724572A (en) | Method and apparatus for processing null terminated character strings | |
US5860155A (en) | Instruction decoding mechanism for reducing execution time by earlier detection and replacement of indirect addresses with direct addresses | |
US4410988A (en) | Out of cycle error correction apparatus | |
US5680408A (en) | Method and apparatus for determining a value of a majority of operands | |
CN101601011B (zh) | 用于对计算机架构条件码设置进行有效仿真的方法和装置 | |
US4956805A (en) | Circuitry for character translate functions | |
SU682890A1 (ru) | Процессор св зи | |
SU1334149A1 (ru) | Синтаксический анализатор | |
JP2812610B2 (ja) | パイプライン制御方式 | |
KR940009427B1 (ko) | 어드레스공간 변경방법 및 장치 | |
SU890403A1 (ru) | Устройство дл перевода выражений в польскую инверсную запись | |
SU1176322A1 (ru) | Вычислительное устройство |