Устройство для лексического анализа метамикроассемблера

 

1. УСТРОЙСТВО ДЛЯ ЛЕКСИЧЕСКОГО АНАЛИЗА МЕТАМИКРОАССЕМБЛЕРА, содержащее блок управления, два регистра , информационный вход первого из которых является инфор«1ационным входом устройства, выход второго регистра является информационным выходом устройства, о т л и ч аю- : щ е е с я тем, что, с целью расширения функциональных возможностей устройства за счет обеспечения независимости от языков програ1упчиров.ания и систем кодирования символов и сокращения временных затрат на грамматический , разбор, в него введены шифратор, коммутатор и блок памяти номера алфавита, причем выход первого регистра соединен с первыми входами шифратора и коммутатора, выход шифратора соединен с входом блока управления, первый, второй, третий и четвертый выходы которого соединены соответственно с вторым и третьим входами коммутатора, | с первым входом второго регистра СО и с управляющим |входом первого регистра , выход коммутатора соединен с. с вторым входом второго регистра, выход блока памяти номера алфавита соединен с вторым входом шифратора. g

СОЮЗ СОВЕТСКИХ

СОЦИАЛИСТИЧЕСКИХ

РЕСПУБЛИН

3(51) G 06 15/04

ЕНИЯ j

ОПИСАНИЕ ИЭОБРЕТ

К ABTOPCHOMV СВИДЕТЕЛЬСТВУ авва в, „; в - 1щвг

ФЧ дй :МО я уд

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР

ПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ (21 ) 3411054/18-24 (22 ) 24,03.82 (46 ) 07.08.83. Бюл.929 (72 ) А.A. Бекасов, В.М. Кисельников, В.A. Торгашев и В.И. Шкиртиль (71) Ленинградский институт авиационного приборостроения и Ленинградский научно-исследовательский вычислительный центр AH СССР (53) 681.326..3(088.8) (56) .Äîêîâàí Дж.Системное программирование. М., "Мир", 1975, с.296-387.

2. Авторское свидетельство СССР

Р 519715, кл. 606Р 15/04, 1974 (прототип); (54 ) (57) 1 УСТРОЙСТВО ДЛЯ ЛЕКСИЧЕС.

КОГО АНАЛИЗА МЕТАМИКРОАССЕМБЛЕРА, содержащее блок управления два регистра, информационный вход первого из которых является информационным входом устройства, выход второго регистра является информационным.„ЯО „„.нЩ04Д A выходом устройства, о т л и ч а ющ е е с я тем, что, с целью расширения функциональных возможностей устройства за счет обеспечения независимости от языков программирования и систем кодирования символов и сокращения временных затрат на грамматический разбор, в него введены шифратор, коммутатор и блок памяти номера алфавита, причем выход первого регистра соединен с первыми входами шифратора и коммутатора, выход,шифратора соединен с входом блока управления, первый, второй, третий и четвертый выходы которого соединены соответственно с вторым и третьим входами коммутатора, И„ с первым входом второго регистра и с управляющим вхолом первого регисг- Q) ра, выход коммутатора соединен с вторым входом второго регистра, выход блока памяти номера алфавита соединен с вторым входом шифратора. В

10ля 043

35, 2. Устройство по п.1, о т л ич а ю щ е е с я тем, что блок управления содержит. триггеры, элементы И и ИЛИ, генератор синхроимпульсов и дешифратор, вход которого является входом блока, первый, второй, третий и четвертый выходы дешифратора соединены соответственно с первым и вторым входами первого триггера, с первым входом второго триггера и с первым входом первого элемента И, выход которого соединен с первым входом блока, с первым входом второго элемента H и с вторым входом второго триггера, выход которого соединен с первым входом

Изобретение относйтся квычислительной технике и может быть использовано.. для лексического анализа в микроас-. семблерах (в трансляторах с языков. микропрограммирования), в которых отдельным полям микрокоманды соответствуют символьные, имена. Данные микроассемблеры переводят символьные имена отдельных полей микрокоманд в . коды, а затем производят упаковку их в формат микрокоманды.

Известны трансляторы, включающие блок лексического анализа, блок синтаксического анализа и генератор кодов, реализуемые либо аппаратно, либо программно на базе электронных вычислительных машин 1).

Для выполнения лексического ана-. лиза используется одно из следующих средств: аппаратно реализованный 29 грамматический разбор программы на базовые элементы, основным недостатком при этом является жесткая привязан; ность к языку программирования и выбранной системе кодирования символов 5 для представления их в машине, программно реализованный грамматический разбор программы на базовые элементы, основными недостатками которого являются низкое быстродействие лек- Зо сического анализа и жесткая привязан-: ность к выбранной системе кодирования символов для представления в ма« шине.

Наиболее близким по технической сущности к предлагаемому является устройство, содержащее входной ре-. гистр, выходной регистр, блок формирования адресов и операйдов, информационный вход которого подключен к информационному выходу блока чтения программы, управляющий вход блока формирования адресов и операндов подключен к выходу блока управления, третьего элемента И и с входом третьего триггера, выход которого подключен к второму входу. третьего элемента И, выход последнего соединен с вторым входом блока и с первым входом четвертого элемента И, вы- ход которого соединен с первым входом элемента ИЛИ, выход последнего соединен с третьим выходом блока, выход генератора синхроимпульсов соединен с. четвертым выходом блока и с вторыми входами второго и четвертого элементов И, выход второго элемента И соединен с вторым входом элемента ИЛИ, второй вход первого элемента И соединен с выходом первого триггера. блок стековой памяти управляющих символов, управляющий вход которого соединен с выходом блока управления, информационный вход — с информационным выходом блока чтения программы, информационный выход - с информационным входом блока чтения программы, счетчик управляющих символов, счетный вход которого соединен с выходомблока управления, выход . — с адресным входом блока стековой памяти управляющих символов, блои анализа управляющих символов, первый информационный вход которого соединен с информационным выходом блока чтения программы, второй информационный вход подключен к информационному выходу блока стековой памяти управляющих символов, выход соединен с входом блока управления I 2J.

Однако в связи с широким распространением микропрограммируемых микропроцессорных наборов больших инте. гральных схем (БИС) и как следствие этого появление множества языков микропрограммирования, ориентированных на различные системы кодирования символов, появилась необходимость создания универсального устройства лексического анализа, которое можно быстро приспособить к новой системе кодирования и к новому языку.

Указанное устройство является аппаратной реализацией нового языка, близкого к языкам высокого уровня и обеспечивающего запись программы в естественной и компактной форме, поэтому оно не обладает универсальностью. В то же же время устройство ориентировано на заранее определенную систему кодирования символов.

Цель изобретения — расширение функциональных возможностей устрой1О34О43

50 ства за счет обеспечения независимости от языков программирования и систем кодирования символов и сокра-щение временных затрат на грамматический разбор.

Поставленная цель достигается тем, что в устройство для лексического анализа метамикроассемблера, содер:жащее блок управления, два регистра, информационный вход первого из которых является информационным входом устройства, выход второго регистра является информационным выходом устройства, введены шифратор, коммутатор и блок памяти нокера алфавита, причем выход первого регистра соединен с первыми входами шифратора и коммутатора, выход шифратора соединен с входом блока управления, первый, второй, третий и четвертый выходы которого соединены соответственно с вторым и третьим входами коммутатора,с первым входом второго регистра и с управляющим входом первого регистра, выход коммутатора соединен с вторым входом второго регистра, выход блока памяти номера алфавита соединен с вторим входом шифратора.

ПричЕм блок управления содержит триггеры, элементы И и ИЛИ, генера-.. тор синхроимпульсов и дешифратор, вход которого является входом блока, первый, второй,:. третий и четвертый

I выходы дешифратора соединены соответственно с первым .и вторым входами первого триггера, с первым входом второго триггера и с первым входом первого элемента И, выход которого соединен с первым входом блока, с первым входом второго элемента И.и с вторым входом второго триггера, выход которого соединен с первым входом третьего элемента И и с входом третьего триггера, выход которого подключен к второму входу третьего элемента И, выход последнего соединен с вторым входом блока и с первым входом четвертого элемента И, выход которого соединен с первым входом элемента ИЛИ, выход последнего соединен с третьим выходом блока, выход генератора синхроимпульсов соединен с четвертым выходом блока и с вторыми входами второго и четвертого элементов И, выход второго элемента И соединен с вторым входом элемента ИЛИ, второй вход первого элемента И соединен с вы- ходом первого триггера.

На фиг.1 приведена блок-схема предлагаемого устройства, на Фиг.2 вариант выполнения устройства, на фиг.3 — эпюры напряжений генератора синхроимпульсов блока управления устройства. .Устройство содержит регистры 1 и

2,. шифратор 3, блок 4 управления, коммутатор 5, блох 6 памяти. номера алфавита, дешифратор 7, триггеры

S-1О, элементы И 11-14, элемент ИЛИ

15, генератор 16 .. синхроимпульсов, группы элементов И 17 и 18, группу элементов ИЛИ 19, узел 20 памяти кон-. станты.

Регистр 1 предназначен для хране ния строки символов, являющейся частью микропрограммы пользователя, и мо10 жет быть собран на сдвигающих регистрах. Регистр 2 предназначен для хранения сжатой строки символов (опера- тора языка микропрограммирования ), содержащей только лексемы (последо15 вательности символов, имеющие смысло-вое значение в языке микропрограммирования), отделенные друг от друга служебными разделителями, и может быть собран на сдвигающих регистрах.

Шифратор 3 предназначен для выработки управляющего кода по коду сим волов, поступ ющему из регистра 1, и по коду номера алфавита, поступающему из блока б памяти номера алфавита, для управления грамматическим разбором для языков микропрограмми-:. рования.

Блок 4 управления предназначен для выработки управляющих сигналов по коду, поступающему из шифратора

3, разрешающих либо пропуск кода символа из регистра 1 в регистр 2, либо запись кода внутреннего служебно:го разделителя из узла 20 .в регистр

2, либо игнорирование символов из регистра 1 (например, последовательность разделителей или комментариев), Коммутатор 5 предназначен для пропус.ка одного из двух кодов. Блок 6 памяти номера алфавита предназначен. для хранения кода номера алфавита, который может меняться в процессе работы (например, при переходе от ла- ) тинского алфавита к русскому и на. оборот) °

45 Принцип..работы устройства основан на том, что при лексическом анализе необходимо выделить лексемы (смысловые конструкции языка микропрограммирования) и передать их для синтаксического анализа. Как правило, все языки микропрограммирования допускают расстановку разделителей (например, пробелов, символов возврата каретки и перевода строки, табуляции и т.д.) в неограниченном количестве, а также, использование комментариев, улучшающих читаемость программ (микропрограмм) человеком но в то же время усложняющих работу транслятора. Устройство лекси60 ческого анализа преобразует входной текст программы (микропрограммы) в удобный для синтактического анализа вид, т.е. заменяет последовательности разделителей одним

65 внутренним разделителем и убирает

1034043 из текста комментарии. Для наглядности все символы алфавита языка программирования- (микропрограммирования) можно разделить на 4 группы: информационные символы, из котоФ рых состоят лексемы, служебные разде- 5 лители, символ "Начало комментария", символ "Конец комментария".

Поэтому каждому коду символа алфавита языка микропрограммирования можно поставить в соответствие управляющий код, по которому производятся необходимые действия. Так, для первой группы символов производится простая перезапись из регистра 1 в регистр 2. Для второй группы сим- t5 волов производится замена символа на код внутреннего разделителя и, если они продолжаются, уничтожаются следующие до тех пор, пока не встретится символ из первой группы. Для третьей группы символов производится запрет пропуска символов из регистра 1 в регистр 2 до тех пор, пока не встретится символ из четвертой, группы, который разрешает пропуск следующего символа.

В регистре 1 хранится строка текста микропрограммы. С выхода регистра 1 код крайнего левого символа поступает на вход шифратора. 3, а на второй вход шифратора 3 поступает код номера алфавита с выхода блока 6. По коду символа и коду номера алфавита шифратор 3 выдает.двухразрядный код, соответствующий группе символов (информационный символ, служебный разделитель, символы начала или конца комментария), который подается на вход дешифратора 7 блока 4 управления.

Дешифратор 7 на одном из четырех выходов в зависимости от поступивше- 40 го управляющего кода вырабатывает единичный сигнал.

Четыре выхода дешифратора 7 соответствуют четырем группам символов, поэтому возможны следующие действия.

Информационный символ, На выходе дешифратора 7 вырабатывается единичный сигнал, который поступает на вход элемента И 11.

В зависимости от состояния тРиггеРа

8, который определяет, комментарий это или нет, возможны два варианта действий.

Да, это комментарий. Тогда на выходе триггера 8 имеется нулевой сигнал, следовательно, и на выходе элемента И 11 тоже нулевой сигнал, который поступает на вход коммутатора 5 и запрещает пропуск кода символа из регистра 1 н регистр 2. Нулевой сигнал .с элемента И 11 поступает 60 на вход элемента И 13 и запрещает пропуск синхросигнала с генератора

16 на регистр 2, по которому производится сдвиг информации. В то же время элемент И 14 закрыт, так как 65 на выходе дешифратора 7 нулевой сигнал, поэтому записи символов в регистр

2 не происходит в связи с тем, что на выходе элемента И 14 нулевой сигнал, а следовательно, и на входе регистра 2. Синхроимпульс с генератора

16 блока 4 поступает на вход регистра 1, по которому происходит сдвиг информации на один символ. После сдвига синхроимпульс разрешает выдавать информацию с выхода шифратора

3 на вход дешифратора 7.

Нет, это не комментарий ° Тогда на выходе триггера 8 находится единичный сигнал, а следовательно, и на выходе элемента 11 — единичный сигнал, который поступает на вход коммутатора 5,.разрешая пропуск кода символа из регистра 1 в регистр 2, на вход триггера 9 (хранителя информации с последовательности. разделителей), устанавливая его в нулевое состояние на вход элемента 13, разрешая пропуск синхросигнала с генератора 16 через элементы 13 и 15 на вход регистра 2, по которому происходит запись кода символа в крайние правые разряды регистра 2, а затем сдвиг информации влево на символ. В то же время происходит сдвиг влево информации на символ в регистре 1.

Служебный разделитель.

На выходе дешифратора 7 вырабатывается единичный сигнал, который поступает на вход триггера 9 и устанавливает era в единичное состояние.

3а счет триггера 1 0 (задержка информации на такт) на элементе И 12 происходит выявление первого или не первого разделителя из последовательности разделителей. По первому разделителю вырабатывается единичный сигнал, разрешающий пропуск кода внутреннего разделителя из узла

20 через группу элементов И 18 и группу элементов ИЛИ 19 на вход (вход символа ) регистра ? и пропуск синхросигнала с генератора 16 через элементы 14 и 15 на вход регистра

2, по которомупроисходит запись кода в регистр 2, а затем и сдвиг влево на символ содержимого. Также происходит сдвиг влево на символ содержимого регистра 1. Это выполняется только при установке триггера 8 в положение "Не комментарий," на инверсном выходе триггера 8 единичный сигнал. Если это не первый разделитель, то элемент И 12 вырабатывает нулевой сигнал, запрещающий запись кода разделителя в регистр 2, и происходит только сдвиг влево содержимого регистра 1 на один символ.

"Начало комментария".

На выходе дешифратора 7 вырабатывается единичный сигнал, который поступает на вход триггера 8 и уста103404-3

Э навливает инверсный выход его в н7= ; Предлагаемое устройство за счет левое состояние. Тем самым запрещает- :введения шифратора, коммутатора, бло" ся запись символов в регистр 2 с по- ка памяти номера-алфавита позволяет мощью блокировки элемента И 11 до уменьшить временные затраты на лек » . тех пор, -пока не появится символ сический анализ программ микропрог-,:

"Конец комментария", по которому на 5 рамм) пользователя:и работать с несвыходе дешифратора 7 вырабатывается :колькими алфавитами языков програм- единичный сигнал, который поступает :мирования. Например, для лексическона вход триггера 8 и устанавливает,го разбора одного оператора на язы- . его инверсный выход в единичное состо :ке АЛГОЛ-60 на ЭВМ БЭСМ-б требуется яние.Тем самымразрушается работа всех l0 от- 6 мкс до 150 мс в зависимости от элементов устройства. разбираемого оператора, а предлаГае-мое устройство при периоде синхроДЛя работы с несколькими алфавйта- импульсов 100 с выполняет то же сами для разных языков.микропрограмми- ° .мое за время в.диапазоне от 400 нс .рования предусмотрЕн блок 6 памяти f5. (оператор " 0", четыре символа, что;, номера алфавита, который позволяет соответствует четырем периодам } до быстро переходить от одного языка к -12 3 мкс, так как скорость работы другому путем подачи нового кода. на порядок выше.

1034043

Син расималы

Разре с- Разреиени! Разрез,. Роякше- Жиаижи Роатение соби а; :нг на» аЛВаа юв" «е ,раны а йндяуяеа- 4л Р в юа жУ,щвущ а. ая ни миаа Ф 4 аа Аю- хая Ф нй ю а Ваегисур- кода иэ реемгюр титре „ухают .,аее,гюа у,ата;ада

Pun. J

Составитель А.:Жеренов

Редактор В. Петраш Техред A.Áàáèíåö .Корректор Г. Orap

Заказ 5627/52 Тираж 706 Подписное

ВНИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж-35, Раушская наб., д. 4/5

Филиал ППП "Патент", r. Ужгород, ул. Проектная, 4

Устройство для лексического анализа метамикроассемблера Устройство для лексического анализа метамикроассемблера Устройство для лексического анализа метамикроассемблера Устройство для лексического анализа метамикроассемблера Устройство для лексического анализа метамикроассемблера Устройство для лексического анализа метамикроассемблера 

 

Похожие патенты:

Изобретение относится к областям компьютерной и телекоммуникационной техники, в частности к устройствам для обработки и распределения потоков данных различных информационных систем с различными системами отображения информации

Изобретение относится к компьютерной технике, в частности к устройствам, занимающим среднее положение между ноутбуками и карманными компьютерами

Изобретение относится к области радиоспектроскопии и может быть использовано в системах обработки импульсных сигналов

Изобретение относится к способу и устройству обработки данных для сохранения возвратного состояния в устройстве обработки данных

Изобретение относится к области радиотехники и может быть использовано в радарных системах, например в радарных системах с синтезированной апертурой

Изобретение относится к автоматике и вычислительной технике и может быть использовано для обработки символьной информации

Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано для обработки информационных потоков и массивов данных текстового и числового типов в соответствии с заданными нормальными алгорифмами
Наверх