Устройство для лексического анализа метамикроассемблера
Похожие патенты | МПК / Метки | Текст | Заявка | Код ссылки
Номер патента: 1034043
Авторы: Бекасов, Кисельников, Торгашев, Шкиртиль
Текст
) (И 3(51) 8 0 5/04 ИЕ ИЭ НИ авиационградскийислитель(54 ) КОГО содерж гистр из ко входо регис КСИЧЕС; ЛЕРА, ва реервого онным рого ным лфавита ратора. В ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССРПО ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТНРЫТИЙ К АВТОРСКОМУ СВИДЕТЕЛЬСТВ(71) Ленинградский институтного приборостроения и Лениннаучно-исследовательский вычный центр АН СССР(56)1.Докован Дж.Системное программирование. М., "Мир", 1975, с.296-387,2. Авторское свидетельство СССРР 519715, кл. 606 Р 15/04, 19741 прототип); 57) 1, УСТРОЙСТВО ДЛЯ ЛЕАНАЛИЗА МЕТАМИКРОАССЕМБащее блок управленияа, информационный входторых является информацм устройства, выход втотра является информацио выходом устройства, о т л и ч а ющ е е с я тем, что, с целью расширения функциональных возможностей . устройства за счет обеспечения независимости от языков программирования и систем кодирования символов и сокращения временных затрат на грамматический разбор, в .него введены шифратор, коммутатор и блок памяти номера алфавита, причем выход первого регистра соединен с первыми вхо дами шифратора и коммутатора, выход шифратора соединен с входом блока управления, первый, второй, третий и четвертый выходы которого соединены соответственно с вторым и третьим входами коммутатора, с первым входом второго регистра и с управляющим входом гервого регистра, выход коммутатора соединен с. вторым входом второго регистра, выход блока памяти номера а соединен с вторым входом шиф10 зя 043 2. Устройство по п.1, о т л ич а ю щ е е с я тем, что блок управления содержит. триггеры, элементы И и ИЛИ, генератор синхроимпульсов и дешифратор, вход которого является входом блока, первый, второй, третий и четвертый выходы дешифратора соединены соответственно с первым и вторым входами первого триггера, с первым входом второго триггера и с первым входом первого элемента И, выход которого соединен с первым входом блока, с первым входом второго элемента Й и с вторым входом второго триггера, выход которого соединен с первым входом 1Изобретение относйтся к вычислительной технике и может быть использовано для лексического анализа в микроас-. семблерах (в трансляторах с языков. микропрограммирования), в которых отдельным полям микрокоманды соответствуют символьные, имена. Данные микро- ассемблеры переводят символьные имена отдельных полей микрокоманд в . коды, а затем производят упаковку их в Формат микрокоманды.Известны трансляторы, включающие блок лексического анализа, блок синтаксического анализа и генератор кодов, реализуемые либо аппаратно, либо программно на базе электронных вычислительных машин 1.Для выполнения лексическогоана-. лиза используется одно из следующих средств.; аппаратно реализованный 20 грамматический разбор программы на базовые элементы,основным недостатком при этом является жесткая привязан; ность к языку программирования и выбранной системе кодирования символов 25 для представления их в машине; программно реализованный грамматический разбор программы на базовые элементы, основными недосТатками которого являются низкое быстродействие лек- Зо сического анализа и жесткая привязанность к выбранной системе кодирования символов для представления в ма шине.Наиболее близким по технической сущности к предлагаемому является устройство, содержащее входной ре-. гистр, выходной регистр, блок формирования адресов и операйдов, информационный вход которого подключен к информационному выходу блока чтения программы, управляющий вход блока формирования адресов и операндов подключен к выходу блока управления,третьего элемента И и с входом ТР" тьего триггера, выход которого подключен к второму входу третьего элемента И, выход последнего соединенс вторым входом блока и с первымвходом четвертого элемента И, вы-ход которого соединен с первым входом элемента ИЛИ, выход последнегосоединен с третьим выходом блока,выход генератора синхроимпульсовсоединен с, четвертым выходом блока и свторыми входами второго и четвертогоэлементов И, выход второго элемента Исоединен с вторым входом элемента ИЛИ,второй вход первого элемента И соединенс выходом первого триггера. блок стековой памяти управляющих символов, управляющий вход которого соединен с выходом блока управления, информационный вход - с информационным выходом блока чтения программы, информационный выход - с информационным входом блока чтения программы, счетчик управляющих символов, счетный вход которого соединен с выходомблока управления, выход . - с адресным входом блока стековой памяти управляющих символов, блок анализа управляющих символов, первый информационный вход которого соединен с информационным выходом блока чтения программы, второй информационный вход подключен к информационному выходу блока стековой памяти управляющих символов, выход соединен с входом блока управления2.Однако в связи с широким распространением микропрограммируемых микропроцессорных наборов больших интеко гральных схемБИС) и как следствие этого появление множества языков микропрограммирования, ориентированных на различные системы кодирования символов, появилась необходимость создания универсального устройства лексического анализа, которое можно быстро приспособить к новой системе кодирования и к новому языку. Указанное устройство является аппаратной реализацией нового языка, близкого к языкам высокого уровня и обеспечивающего запись программы в естественной и компактной Форме, поэтому оно не обладает универсальностью. В то же же время устройство ориентировано на заранее определенную систему кодирования символов.Цель изобретения - расширение Функциональных возможностей устрой. боту транслятора, Устройство лекси ческого анализа преобразует входной текст программы микропрограммы) в удобный для синтактического анализа вид, т.е. заменяет последовательности разделителей одним 65 внутренним разделителем и убирает ства за счет обеспечения независимости от языков программирования и систем кодирования символов и сокра щение временных затрат на грамматический разбор.Поставленная цель достигается тем, что в устройство для лексического анализа метамикроассемблера, содер:- жащее блок управления, два регистра, информационный вход первого из которых является информационным входом устройства, выход второго регистра является информационным выходом устройства, введены шифратор, коммутатор и блок памяти нокера алФавита, причем выход первого регистра соединен с первыми входами шифратора и коммутатора, выход шифратора соединен с входом блока управления, первый, второй, третий и четвертый выходы которого соединены соответственно с вторым и третьим входами коммутатора,с первым входом второго регистра и с управляющим входом первого регистра, выход коммутатора соединен с вторым входом второго регистра, выход блока памяти номера алфавита соединен с вторим входом шифратора.ПричЕм блок управления содержит триггеры, элементы И и ИЛИ, генера-. тор синхроимпульсов и дешиФратор, вход которого является входом блока, первый, второй,:. третий и четвертый выходы дешифратора соединены соответственно с первым .и вторым входами первого триггера, с первым входом второго триггера и с первым входом первого элемента И, выход которогосоединен с первым входом блока, с первым входом второго элемента И.и с вторым входом второго триггера, выход которого соединен с первым входом третьего элемента И и с входом третьего триггера, выход которого подключен к второму входу третьего элемента И, выход последнего соединен с вторым входом блока и с первым входом четвертого элемента И, выход которого соединен с первым входом элемента ИЛИ, выход последнего соединен с третьим выходом блока, выход генератора синхроимпульсов соединен с четвертым выходом блока и с вторыми входами второгои четвертого элементов И, выход второго элемента И соединен с вторым входом элемента ИЛИ, второй вход первого элемента И соединен с вы-ходом первого триггера.На фиг.1 приведена блок-схема предлагаемого устройства, на Фиг.2 вариант выполнения устройства, на фиг.3 - эпюры напряжений генератора синхроимпульсов блока управления устройства,.Устройство содержит регистры 1 и 2 шифратор 3, блок 4 управления,коммутатор 5, блох 6 памяти. номераалфавита, дешифратор 7, триггеры8-10., элементы И 11-14, элемент ИЛИ15, генератор 16синхроимпульсов,группы элементов И 17 и 18, группуэлементов ИЛИ 19, узел 20 памяти кон-.станты.Регистр 1 предназначен для хранения строки символов, являющейся частьюмикропрограммы пользователя, и мо жет быть собран на сдвигающих регистрах. Регистр 2 предназначен для хранения сжатой строки символов (опера-тора языка микропрограммирования),содержащей только лексемы (последо вательности символов, имеющие смысло- .вое значение в языке микропрограммирования), отделенные друг от другаслужебными разделителями, и можетбыть собран на сдвигающих регистрах.Шифратор 3 предназначен для выработки управляющего кода по коду символов, поступ ющему из регистра 1,и по коду номера алфавита, поступающему из блока б памяти номера алфавита, для управления грамматическимразбором для языков микропрограмми-:.рования.Блок 4 управления предназначендля выработки управляющих сигналовпо коду, поступающему из шифратора3, разрешающих либо пропуск кода символа из регистра 1 в регистр 2, либо запись кода внутреннего служебно:го разделителя из узла 20,в регистр2, либо игнорирование символов изрегистра 1 (например, последовательность разделителей или комментариев),Коммутатор 5 предназначен для пропус.ка одного из двух кодов. Блок 6 памяти номера алфавита предназначен. для хранения кода номера алфавита,который может меняться в процессеработы (например, при переходе от ла-,тинского алфавита к русскому и на.оборот)45 Принципработы устройства основан на том, что при лексическом анализе необходимо выделить лексемы(смысловые конструкции языка микро- программирования) и передать их для синтаксического анализа. Как правило,все языки микропрограммирования допускают расстановку разделителей например, пробелов, символов возврата каретки и перевода строки, табуляции и т,д.) в неограниченном количестве, а также, использованиекомментариев, улучшающих читаемость программ микропрограмм) человеком,но в то же .время усложняющих ра 1034043из текста комментарии. Для наглядности все символы алфавита языкапрограммирования. (микропрограммирования) можно разделить на 4 группы: информационные символы, из котоФрых состоят лексемы, служебные разделители, символ "Начало комментария",символ "Конец комментария".Поэтому каждому коду символа алфавита языка микропрограммированияможно поставить в соответствие уп- . 1 Оравляющий код, по которому производятся необходимые действия. Так,для первой группы символов производится простая перезапись из регистра 1в регистр 2. Для второй группы символов производится замена символана код внутреннего разделителя и,если они продолжаются, уничтожаютсяследующие до тех пор, пока не встретится символ из первой гРУппы. Длятретьей группы символов производитсязапрет пропуска символов из регистра 1 в регистр 2 до тех пор, покане встретится символ из четвертой,группы, который Разрешает пРопускследующего символа.В регистре 1 хранится строка текстамикропрограммы. С выхода регистра 1код крайнего левого символа поступает на вход шифратора. 3, а на второйвход шифратора 3 поступает код номера алфавита с выхода блока 6. По кодусимвола и коду номера алфавита шифратор 3 выдает.двухразрядный код, соответствующий группе символов (информационный символ, служебный разделитель, символы начала или конца комментария), который подается на входдешифратора 7 блока 4 управления,Дешифратор 7 на одном из четырехвыходов в зависимости от поступившего управляющего кода вырабащываетединичный сигнал,Четыре выхода дешифратора 7 соответствуют четырем группам символов,поэтому возможны следующие действия.Информационный символ,На выходе дешифратора 7 вырабатывается единичный сигнал, которыйпоступает на вход элемента И 11,В зависимости от состояния триггера8, который определяет, комментарийэто или нет, возможны два вариантадействий.Да, это комментарий, Тогда навыходе триггера 8 имеется нулевойсигнал, следовательно, и на выходеэлемента И 11 тоже нулевой сигнал,который поступает на вход коммутатора 5 и запрещает пропуск кода символа из регистра 1 н регистр 2. Нулевой сигнал,с элемента И 11 поступает бОна вход элемента И 13 и запрещаетпропуск синхросигнала с генератора16 на регистр 2, по которому производится сдвиг информации. В то жевремя элемент И 14 закрыт, так как Я на выходе дешифратора 7 нулевой сигнал, поэтому записи символов в регистр2 не происходит в связи с тем, чтона выходе элемента И 14 нулевой сигнал, а следовательно, и на входе регистра 2. Синхроимпульс с генератора16 блока 4 поступает на вход регистра 1, по которому происходит сдвигинформации на один символ. Послесдвига синхроимпульс разрешает выдавать информацию с выхода шифратора3 на вход дешифратора 7.Нет, это не комментарийТогдана выходе триггера 8 находится единичный сигнал, а следовательно, и на выходе элемента 11 - единичный сигнал,который поступает на вход коммутатора 5,.разрешая пропуск кода символаиз регистра 1 в регистр 2, на входтриггера 9 хранителя информациис последовательности разделителей),устанавливая его в нулевое состояниена вход элемента 13, разрешая пропуск синхросигнала с генератора 16через элементы 13 и 15 на вход регистра 2, по которому происходит запись кода символа в крайние правыеразряды регистра 2, а затем сдвигинформации влево на символ. В то жевремя происходит сдвиг влево информации на символ в регистре 1.Служебный разделитель.На выходе дешифратора 7 вырабатывается единичный сигнал, которыйпоступает на вход триггера 9 и уста-навливает его в единичное состояние,За счет триггера 10 задержка информации на такт) на элементе И 12 происходит выявление первого или не первого разделителя из последовательности разделителей. По первому разделителю вырабатывается единичныйсигнал, разрешающий пропуск кодавнутреннего разделителя из узла20 через группу элементов И 18 игруппу элементов ИЛИ 19 на вход (входсимвола ) регистра 2 и пропуск синхросигнала с генератора 16 черезэлементы 14 и 15 на вход регистра2, по которомупроисходит записькода в регистр 2, а затем и сдвигвлево на символ содержимого. Такжепроисходит сдвиг влево на символсодержимого регистра 1. Это выполняется только при установке триггера 8 в положение "Не комментарий,"на инверсном выходе триггера 8 единичный сигнал. Если это не первыйразделитель, то элемент И 12 вырабатывает нулевой сигнал, запрещающийзапись кода разделителя в регистр 2,и происходит только сдвиг влево содержимого регистра 1 на один символ.Начало комментария",На выходе дешифратора 7 вырабатывается единичный сигнал, который поступает на вход триггера 8 и уста10 34 043Э навливает инверсный выход его в ну= ; Предлагаемое устройство за счетлевое состояние. Тем самым запрещает- :введения шифратора, коммутатора, бло ся запись символов в регистр 2 с по- ка памяти номера-алфавита позволяет мощью блокировки элемента И 11 до уменьшить временные затраты на лек тех пор, пока не появится символ сический анализ программ микропрог-,: "Конец комментария", по которому на 5 рамм) пользователя:и работать с несвыходе дешифратора 7 вырабатывается :колькими алфавитами языков програм-единичный сигнал, который поступает мирования. Например, для лексическона вход триггера 8 и устанавливает ,го разбора одного оператора на язы- . . его инверсный выход в единичное состо ке АЛГОЛ-бО на ЭВМ БЭСМ-б требуется янке.Тем самымразрушается работавсех 10 от 6 мкс до 150 мс в зависимости от элементов устройства. разбираемого оператора, а предлаГаемое устройство при периоде синхроДЛя работы с несколькими алфавйта- импульсов 100 с выполняет то же сами для разных языков,микропрограмми- .мое за время в.диапазоне от 400 нс .рования предусмотрЕн блок б памяти 5. оператор "0 ф, четыре символа, что;, номера алфавита, который позволяет .соответствует четырем периодам) до . быстро переходить от одного языка к 12 3 мкс, так как скорость работы другому путем подачи нового кода.на порядок выше.1034043 Разрез- Розрецеии", Розеик. Роятие- АЬжазиф Ромевение свбиви мелМ аЮию ю" фщ,уютиеи акрряю- ютривФ юдэву ррарру ююаебайи Ф 4 ии Аю- хдаю . мйю й Ваееием- кова иУреемгюр жалуем гг 8 аюаю . йееюмФ ре,атжюаиДАР Составитель А.:Жереноведактор В. Петраш Техред А.Бабинец,КорректорГ. О ал ППП "Патент", г. Ужгород, ул. Проектная, 4 Заказ 5627/52ВНИИПИ Госпо делам113035, Мо Тираж 706рственного кобретений иа, Ж"35, Рауш Подписноеитета СССРкрнтийкая наб., д. 4/5
СмотретьЗаявка
3411054, 24.03.1982
ЛЕНИНГРАДСКИЙ ИНСТИТУТ АВИАЦИОННОГО ПРИБОРОСТРОЕНИЯ, ЛЕНИНГРАДСКИЙ НАУЧНО-ИССЛЕДОВАТЕЛЬСКИЙ ВЫЧИСЛИТЕЛЬНЫЙ ЦЕНТР АН СССР
БЕКАСОВ АЛЕКСАНДР АЛЕКСЕЕВИЧ, КИСЕЛЬНИКОВ ВЛАДИМИР МАКСИМОВИЧ, ТОРГАШЕВ ВАЛЕРИЙ АНТОНОВИЧ, ШКИРТИЛЬ ВЯЧЕСЛАВ ИВАНОВИЧ
МПК / Метки
МПК: G06F 15/04
Метки: анализа, лексического, метамикроассемблера
Опубликовано: 07.08.1983
Код ссылки
<a href="https://patents.su/6-1034043-ustrojjstvo-dlya-leksicheskogo-analiza-metamikroassemblera.html" target="_blank" rel="follow" title="База патентов СССР">Устройство для лексического анализа метамикроассемблера</a>
Предыдущий патент: Устройство для контроля микропрограмм
Следующий патент: Устройство для вычисления средней мощности случайных сигналов
Случайный патент: Катализатор жидкофазной гидратации ацетилена в уксусный альдегид