SU1439593A1 - Синтаксический анализатор - Google Patents
Синтаксический анализатор Download PDFInfo
- Publication number
- SU1439593A1 SU1439593A1 SU874236423A SU4236423A SU1439593A1 SU 1439593 A1 SU1439593 A1 SU 1439593A1 SU 874236423 A SU874236423 A SU 874236423A SU 4236423 A SU4236423 A SU 4236423A SU 1439593 A1 SU1439593 A1 SU 1439593A1
- Authority
- SU
- USSR - Soviet Union
- Prior art keywords
- input
- output
- adder
- lexical
- register
- Prior art date
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Изобретение относитс к вычислительной технике и может быть использовано и автоматизированных системах обработки данных и произв одства программ дл ЭВМ. Цель изобретени - расширение функциональных возможностей за счет обработки выражений, содержащих скобки различных типов, при одновременном повьппении быстродействи и сокращении аппаратурных затрат устройства. Дл достижени указанной цели в устройство дополнительно введены шифратор 4 кодов скобок и элемент НЕ-И 6. Введение указанных элементов и порождаемых ими св зей позвол ет использовать различные виды скобок в анализируемьрс выражени х, определ ющих полностью пор док выполнени операций, а также вести синтаксический анализ в темпе поступ- лени лексических единиц. 2 ил, § 1 табл. (Л
Description
4;
GO
I;D ел
со
00
Изобретение относитс к вычислительной технике и может быть использовано в автоматизированных системах обработки данных и произвЪдства прог- рамм дл ЭВМ,
Цель изобретени - расширение функциональных возможностей за счет обработки выражений, сожержащих скобки различных типов, при одновременном повышении быстродействи и сокращении аппаратурных затрат устройства.
; На фиг. 1 представлена структурна
схема синтаксического анализатора; I на фиг, 2 - блок-схема микропрограм- I много управлени анализатором. I Синтаксический анализатор содержит I входной регистр 1,, дешифратор 2 лек- I сических единиц, блок 3 микропрограммного управлени , шифратор 4 кодов скобок, сумматор-вычитатель 5, зле- , мент НЕ-И 6.
Входной регистр 1, дешифратор 2 лексических единиц, шифратор 4 кодов скобок и- элемент НЕ-И 6 реализованы известным образом на серийно выпускаемо злементной базе. . Входной регистр 1 используетс дл хранени очередной лексической единицы исходного выражени , дешифратор 2 лексических единиц раздел ет лексические единицы.на операнды, операции , скобки (по виду и типу - открываюшрне или закрывающие) и конец выражени .
Блок 3 микропрограммного управлени (БМПУ) выполнен известным спосо- бом на программируемых логических матрицах, управл ет работой всех элементов устройства. Входные сигналы X, „„. Xj- (фиг. 2) формирует дешифратор лексических единиц, а х поступает через элемент НЕ-И с сумматора-вычитател , На выходе блока мик- ропрограммного управлени формируютс сигналы микроопераций у ,,, S j- Смысл входных и выходных сигналов следуюпщй:
1, если лексическа единица исходного выражени есть операнд; О в противном случае;
1, если лексическа единица - открывающа скобка; О в противном случае;
X,
f
1, если лексическа единица - операци ; О в противном случае;
Т, если лексическа еди- : ница - закрывающа скобка; О в противном случае;
1, если лексическа единица - конец выражени ; О в противном случае;
1, если содержание сумма- тора-вычитател равно нудю; О в противном случае;
0
5
У, 30 35
40 45
разрешение записи очередной лексической единицы во входной регистр 1; сложить код очередной открывающей скобки с содержанием сумматора-вычита- тел ;
вычесть код очередной закрывающей скобки из содержи-г мого сумматора-вычитател ; успешное завершение синтаксического анализа выражени Конец анализа ; при синтаксическом анализе исходного выражени встречена ошибка - Ошибка. Шифратор 4 кодов скобок формирует дл каждой пары соответствуквцего вида скобок определенный код. Выбор кода дл пары скобок производитс следующим образом .
Исход из указанного значени глубины вложенности скобок, определ етс код дл первой пары скобок, который удовлетвор ет условию
У„ У . Ус amin ък где V. - глубина вложенности скобок;
а„,;„ - ближайшее простое число,
превышающее значение глубины вложенности.
Код, выбранный дл каждой последующей пары скобок, должен быть простым числом и быть больше кода предьщущей пары, вследствие чего веро тность возникновени ошибки при анализе очень мала.
В таблице приведены коды дл случа трех видов скобок и глубины вложенности , равной 20.
Вид используемых скобок Код скобок
п
Сумматор-вьшитатель 5 выполн ет либо функцию сложени кодов скобок, либо их вычитание.
Если соде рлшмое сумматора-вычита- тел равно нулю, то на выходе элеме г та НЕ-И устанавливаетс единичный сигнал.
Устройство работает следующим образом.
Перед началом работы производитс начальна установка устройства: обнуление входного регистра 1 и сумма- тора-вычитател 5 Лексическа единица исходного вьфажени поступает на входной регистр 1, а затем через ешифратор 2 лексических единиц, который раздел ет входную информацию на операнды, операции, скобки (по виду и типу - открывающа или закрывающа ) и конец выражени , запускает БМПУ 3.
Если текущий сигнал-операнд
О, X, 1), то БМПУ 3 вырабатывает микрооперацию у. , котора разрешает запись следующей лексичесой единицы во входной регистр 1,
Если лексическа единица - открыающа скобка (к5 О, X, О, X 1), то по виду скобки шифратор 4 кодов скобок формирует соответствующий код, оторый поступает на вход сумматора- вычитател 5, а по типу скобки вырабатывает микрооперацию у, кото- ра разрешает сложение кода скобки с содержанием сумматора-вычитател , и затем микрооперацию у .
Если лексическа единица - операци (х, О, Хз 1), то БМПУ вырабатывает микрооперацию y .
Если очередной символ - закрывающа скобка (х О, х О, х 1) , то по виду скобки шифратор 4 кодов скоб формирует соответствующий код, поступающий на вход сумматора-вычитател 5, а БМПУ разрешает микроопера (X,
1439593
циен у
вычитание кода скобки из сЬдержимого сумматора-вычитател 5 и , потом по микрооперации у запись очередной лексической единицы во входной регистр 1.
Если поступивша на вход регистра 1 лексическа единица - конец выражени (х 1), тогда БМПУв соответствии ссодержанием сумматора-вычитател 5 вырабатывает либо микрооперацию у , либо млгкрооперадию у.. Если содержимое сумматора-вычитател 5 равно нулю (х 1), то синтаксический анализ исходного выра5 жени завершен успешно и на выходе устройства по вл етс сигнал Конец анализа. Если содержимое сумматора- вычитател 5 отлично от нул (xg 0), то выражение содержит синтаксические
0 ошибки и на выходе устройства по вл етс сигнал Ошибка.
Пример 1. Пусть на вход уст- ройствг поступает выражение (А+В)
G г С - Dfjf:.
Устройство установлено в начальное состо ние. На вход регистра 1 поступает лексическа единица, котора затем идентифицируетс дешифратором 2
0 как открывающа скобка. По виду .скобки шифратор 4 формирует код 23 (таблица), который поступает на вход сумматора-вычитател 5, по типу скобки (открывающа ) БМПУ 3 вырабатывает микрооперацию, разрешающую сложение, кода скобки с содержимым сумматора-вычитател . При установке устройства содержимое сумматора-вычитател обнулено. После сложени зна0 чение сумматора-вычитател равно 23. БМПУ формирует микрооперацию у , раз- записи во входной регистр следующей лексической единицы - А. Дешифратор 2 определ ет, что пос5 тупивший символ вл етс операндом и запускает БМПУ, который разрешает прием очередного символа вьфажени .
Знак операции - +, БМПУ вырабатывает микрооперацию у . Следующй
0 символ Б - операнд. БМПУ разрешает прием очередного символа.
Следующа лексическа единица )- это закрывающа кругла скобка. По виду скобки шифратор 4 формирует код
5 i23 и подает его на вход сумматора-вы- , читател 5. БМПУ по типу скобки (закрывающа ) вырабатывает микрооперацию, разрешающую вычитание кода скобки из содержимого сумматора-вычитател .
5
микрооперацию
10
В результате операции в сумматоре- вычитателе содержитс ноль.
Далее на вход устройства последовательно поступают сигналы: Ч, С, +, D, которые определ ютс шифратором 2 лексических единиц как операци , операнд, операци , операнд.
I Очередна лексическа единица #: ,
поступивша на вход устройству, оп; редел етс дешифратором 2 как Конец выражени . Сигнал с выхода дешифратора поступает на вход признаков
i лексических единиц БМПУ 3, а на вход
i признаков анализа БМПУ через элемент
I НЕ-И 6 поступает сигнал с сумматораi вычитател , содержимое которого равно
; нулю, Следовательно, БМПУ вырабатыва : ет микрооперацию у Конец анализа,
сообщающую об успешном окончании син- 2о таксические ошибки.
ет микрооперацию . ко
таксического анализа.
Пример 2. Исходное выражение имеет вид (А+В 4t- С , в котором вместо круглой закрывающей скобки поставлена квадратна скобка.
Лексическа единица ( поступает через входной регистр 1 на дешифратор 2 лексических единиц, который определ ет , что это кругла открывающа скобка По виду скобки шифратор кодов скобок формирует код 23, кото- : рый подаетс на вход сумматора-вьгчи- тател 5. БМПУ 3 по типу скобки (открывающа ) вырабатывает .микрооперацию ; у , разрешающую сложение кода скобки ; с содержимым сумматора-вычитател 5« Содержимое сумматора-вычитател равно нулю (в соответствии с начальной ус- ; тановкой устройства) и после сложе- I ни будет равно 23, Далее БМПУ вырабатывает микрооперацию у, , разреша- I ющую входному регистру 1 прием следующего символа.
А - это операнд. Дешифратор 2 запускает БМПУ, который формирует микрооперацию у и на вход устройства поступает очередна лексическа единица + операции. БМПУ разрешает запись следующего символа В в регистр 1. Дешифратор 2 определ ет, что это операнд, а БМПУ выдает разрешение на прием очередного символа 3. Полученна лексическа единица определ етс дешифратором 2 как квадратна закрывающа скобка. По виду скобки шифратор 4 вьфабатывает код 37 (таблица), который поступает на вход сумматора-вычитател 5. БМПУ по типу (закрывающа ) скобки формирует
сумматору-вычитателю операцию вычитани . содержимое сумматора , но 14. БМПУ вырабаты микрооперацию у .
На вход устройств поступают лексически С, которые определ ром как операци и о
Очередным символо на входной регистр,, Эта лексическа един g дешифратором 2 как Возбуждаетс БМПУ, к рует содержимое сумм л 5. Оно не равно н но, исходное выражен
25
30
35
40
45
50
55
Claims (1)
- ройства по вл етс с Формула изоСинтаксический ан жащий входной регист лексических единиц, раммного управлени татель, причем инфор входного регистра в ным входом устройс ного регистра соедин шифратора лексически признаков, лексически соединен с входом пр ких единиц блока ми управлени , первьй в ключен к входу синхр регистра, второй и тр микропрограммного уп выходами Ошибка и лизатора соответств выход блока микропр лени подключен к у сумматора-вычитател щийс тем, что рени функциональны счет обработки выра скобки различных ти менном повьШ1ении бы кращении аппаратурн введены шифратор ко мент НЕ-И, выход ко с входом признаков микропрограммного вход элемента НЕ-И ду сумматора-вычита онный вход которого1439593микрооперацию. котора разрешаеттаксические ошибки.ет микрооперацию у сумматору-вычитателю 5 произвести операцию вычитани . В результате содержимое сумматора-вычитател рав- ,но 14. БМПУ вырабатывает следующую микрооперацию у .На вход устройства последовательно поступают лексические единицы V, С, которые определ ютс дешифратором как операци и операнд.Очередным символом, поступившим на входной регистр,, вл етс ф, Эта лексическа единица определ е/гс дешифратором 2 как Конец выражени . Возбуждаетс БМПУ, который анализирует содержимое сумматора-вычитател 5. Оно не равно нулю, следовательно , исходное выражение содержит синБМПУ Ёырабатыва- и на выходе уст5050505ройства по вл етс сигнал ошибки. Формула изобретениСинтаксический анализатор, содержащий входной регистр, дешифратор лексических единиц, блок микропрограммного управлени и сумматор-вычи- татель, причем информационный вход входного регистра вл етс одноименным входом устройства, выход входного регистра соединен с входом дешифратора лексических единиц, выход признаков, лексических единиц которого соединен с входом признаков лексических единиц блока микропрограммного управлени , первьй выход которого под- ключен к входу синхронизации входного . регистра, второй и третий выходы блока микропрограммного управлени вл ютс выходами Ошибка и Конец анализа анализатора соответственно, четвертый выход блока микропрограммного управлени подключен к управл ющему входу сумматора-вычитател , отличающийс тем, что, с целью расширени функциональных возможностей за счет обработки выражений, содержащих скобки различных типов, при одновременном повьШ1ении быстродействи и сокращении аппаратурных затрат, в него введены шифратор кодов скобок и элемент НЕ-И, выход которого соединен с входом признаков анализа блока микропрограммного управлени , а вход элемента НЕ-И подключен к выходу сумматора-вычитател , информационный вход которого подключен к вы714395938ходУ шифратора кодов скобок, вход типа скобок дешифратора лексических которого соединен с выходом признаков единиц,С начало j1I / IС Конец 3Фие.2
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU874236423A SU1439593A1 (ru) | 1987-04-27 | 1987-04-27 | Синтаксический анализатор |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU874236423A SU1439593A1 (ru) | 1987-04-27 | 1987-04-27 | Синтаксический анализатор |
Publications (1)
Publication Number | Publication Date |
---|---|
SU1439593A1 true SU1439593A1 (ru) | 1988-11-23 |
Family
ID=21300877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU874236423A SU1439593A1 (ru) | 1987-04-27 | 1987-04-27 | Синтаксический анализатор |
Country Status (1)
Country | Link |
---|---|
SU (1) | SU1439593A1 (ru) |
-
1987
- 1987-04-27 SU SU874236423A patent/SU1439593A1/ru active
Non-Patent Citations (1)
Title |
---|
Авторское свидетельство СССР 673818, кл. G 06 F 11/00, 1978. Авторское свидетельство СССР 1334149, кл. G 06 F 11/00, 1986. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
SU1439593A1 (ru) | Синтаксический анализатор | |
EP0422784B1 (en) | Information transfer in information processing systems | |
CN101601011B (zh) | 用于对计算机架构条件码设置进行有效仿真的方法和装置 | |
Glass | Recommended: A minimum standard software toolset | |
JPS6038750B2 (ja) | ワ−ドプロセッサにおける文字插入方法 | |
SU1665389A1 (ru) | Устройство дл синтаксического контрол | |
US5007056A (en) | Processing circuit having an error detecting and correcting circuit therein | |
SU1328817A1 (ru) | Устройство дл контрол текстовой информации | |
SU1619330A1 (ru) | Устройство дл контрол работы оператора | |
SU1425684A1 (ru) | Устройство дл контрол хода программ | |
SU890401A1 (ru) | Электронна клавишна вычислительна машина | |
SU1487050A1 (ru) | Устройство доя контроля переходов | |
CN117130667A (zh) | 一种多核串口指令的处理方法、系统、设备和介质 | |
JP2693467B2 (ja) | かな漢字変換処理における同音語候補の優先度制御方式 | |
SU857994A1 (ru) | Устройство дл определени старшинства операций | |
SU1536379A2 (ru) | Микропрограммное устройство управлени | |
SU641434A1 (ru) | Устройство дл программного сопр жени электронных вычислительных машин | |
SU1465894A1 (ru) | Параллельный синтаксический анализатор | |
SU1508222A1 (ru) | Устройство дл сопр жени двух ЭВМ | |
SU526899A1 (ru) | Процесс св зи | |
SU886002A1 (ru) | Устройство дл устранени последствий случайных сбоев | |
RU2239232C1 (ru) | Система управления идентификацией и конвертацией форматов объектов текстовых документов | |
SU980089A1 (ru) | Устройство дл сравнени чисел | |
SU1399741A1 (ru) | Синтаксический анализатор | |
JP2979918B2 (ja) | 割り込み検出回路 |