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

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

Info

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
Application number
SU874236423A
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 SU874236423A priority Critical patent/SU1439593A1/ru
Application granted granted Critical
Publication of SU1439593A1 publication Critical patent/SU1439593A1/ru

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. ройства по вл етс  с Формула изо
    Синтаксический ан жащий входной регист лексических единиц, раммного управлени  татель, причем инфор входного регистра  в ным входом устройс ного регистра соедин шифратора лексически признаков, лексически соединен с входом пр ких единиц блока ми управлени , первьй в ключен к входу синхр регистра, второй и тр микропрограммного уп выходами Ошибка и лизатора соответств выход блока микропр лени  подключен к у сумматора-вычитател щийс  тем, что рени  функциональны счет обработки выра скобки различных ти менном повьШ1ении бы кращении аппаратурн введены шифратор ко мент НЕ-И, выход ко с входом признаков микропрограммного вход элемента НЕ-И ду сумматора-вычита онный вход которого
    1439593
    микрооперацию
    . котора  разрешает
    таксические ошибки.
    ет микрооперацию у сумматору-вычитателю 5 произвести операцию вычитани . В результате содержимое сумматора-вычитател  рав- ,но 14. БМПУ вырабатывает следующую микрооперацию у .
    На вход устройства последовательно поступают лексические единицы V, С, которые определ ютс  дешифратором как операци  и операнд.
    Очередным символом, поступившим на входной регистр,,  вл етс  ф, Эта лексическа  единица определ е/гс  дешифратором 2 как Конец выражени . Возбуждаетс  БМПУ, который анализирует содержимое сумматора-вычитател  5. Оно не равно нулю, следовательно , исходное выражение содержит синБМПУ Ёырабатыва- и на выходе уст5
    0
    5
    0
    5
    0
    5
    ройства по вл етс  сигнал ошибки. Формула изобретени 
    Синтаксический анализатор, содержащий входной регистр, дешифратор лексических единиц, блок микропрограммного управлени  и сумматор-вычи- татель, причем информационный вход входного регистра  вл етс  одноименным входом устройства, выход входного регистра соединен с входом дешифратора лексических единиц, выход признаков, лексических единиц которого соединен с входом признаков лексических единиц блока микропрограммного управлени , первьй выход которого под- ключен к входу синхронизации входного . регистра, второй и третий выходы блока микропрограммного управлени   вл ютс  выходами Ошибка и Конец анализа анализатора соответственно, четвертый выход блока микропрограммного управлени  подключен к управл ющему входу сумматора-вычитател , отличающийс  тем, что, с целью расширени  функциональных возможностей за счет обработки выражений, содержащих скобки различных типов, при одновременном повьШ1ении быстродействи  и сокращении аппаратурных затрат, в него введены шифратор кодов скобок и элемент НЕ-И, выход которого соединен с входом признаков анализа блока микропрограммного управлени , а вход элемента НЕ-И подключен к выходу сумматора-вычитател , информационный вход которого подключен к вы714395938
    ходУ шифратора кодов скобок, вход типа скобок дешифратора лексических которого соединен с выходом признаков единиц,
    С начало j
    1
    I / I
    С Конец 3
    Фие.2
SU874236423A 1987-04-27 1987-04-27 Синтаксический анализатор SU1439593A1 (ru)

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)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Авторское свидетельство СССР 673818, кл. G 06 F 11/00, 1978. Авторское свидетельство СССР 1334149, кл. G 06 F 11/00, 1986. *

Similar Documents

Publication Publication Date Title
JPH067397Y2 (ja) 文書入力装置
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) 一种多核串口指令的处理方法、系统、设备和介质
SU857994A1 (ru) Устройство дл определени старшинства операций
SU1536379A2 (ru) Микропрограммное устройство управлени
SU641434A1 (ru) Устройство дл программного сопр жени электронных вычислительных машин
SU1465894A1 (ru) Параллельный синтаксический анализатор
SU1508222A1 (ru) Устройство дл сопр жени двух ЭВМ
SU526899A1 (ru) Процесс св зи
SU1056198A2 (ru) Устройство дл обнаружени искажений в тексте
SU886002A1 (ru) Устройство дл устранени последствий случайных сбоев
RU2239232C1 (ru) Система управления идентификацией и конвертацией форматов объектов текстовых документов
SU980089A1 (ru) Устройство дл сравнени чисел
SU1399741A1 (ru) Синтаксический анализатор