со
О
4
со
2. Устройство по П.1, отличающееся тем, что блок управления содержит .-триггеры, элементы И и ИЛИ, генератор синхроимпульсов и дешифратор, вход которого является входом блока, первый, второй, третий и четвертый выходы дешифратора соединены соответственно с первым и вторым входами пе;рвого триггера, с первым входом второго триггера и с первым входом первого .&лемента И, выход которого соединен с первым входом блока, с первым входом второго элемента И и с вторым входом второго триггера, выход которого соединен с первым входом
третьего элемента И и с входом третьего триггера, выход которого подключен к второму входу треть-его элемента И, выход последнего соединен с вторым входом блока и с первым входом четвертого элемента И, выход которого соединен с первым входом элемента-ИЛИ, выход последнего соединен с третьим выходом блока, выход генератора синхроимпульсов соединен с. четвертым выходом блока и с вторыми входами второго и четвертого элементов И, выход второго элемента И соединен с вторым входом элемента ИЛИ второй вход первого элемента И соедине с выходом первого триггера.
название | год | авторы | номер документа |
---|---|---|---|
Устройство для лексического анализа метатранслятора | 1983 |
|
SU1153329A1 |
Устройство для лексического анализа символьного текста | 1984 |
|
SU1187173A1 |
Устройство для параметрической автогенерации символьного текста | 1985 |
|
SU1439621A1 |
Устройство для лексического анализа программ | 1987 |
|
SU1418757A1 |
УСТРОЙСТВО ДЛЯ ОБРАБОТКИ СИМВОЛЬНОЙ ИНФОРМАЦИИ | 1991 |
|
RU2010319C1 |
Устройство для лексического анализа программ | 1984 |
|
SU1238103A1 |
УСТРОЙСТВО ДЛЯ ОБЪЕДИНЕНИЯ ЛЕКСИЧЕСКИХ МНОЖЕСТВ | 1990 |
|
RU2022354C1 |
Микропрограммное устройство для анализа программ | 1980 |
|
SU943729A1 |
Устройство синтаксически управляемого перевода | 1986 |
|
SU1399767A1 |
Устройство для сопряжения ЭВМ с внешними устройствами | 1988 |
|
SU1536392A1 |
1. УСТРОЙСТВО ДЛЯ ЛЕКСИЧЕСКОГО АНАЛИЗА МЕТАМИКРОАССЕМБЛЕРА, содержащее блок управления, два регистра, информационный вход первого из которых является инфор«1ационным входом устройства, выход второго регистра является информационным выходом устройства, о т л и ч аю- : щ е е с я тем, что, с целью расширения функциональных возможностей устройства за счет обеспечения независимости от языков програ1упчиров.ания и систем кодирования символов и сокращения временных затрат на грамматический, разбор, в него введены шифратор, коммутатор и блок памяти номера алфавита, причем выход первого регистра соединен с первыми входами шифратора и коммутатора, выход шифратора соединен с входом блока управления, первый, второй, третий и четвертый выходы которого соединены соответственно с вторым и третьим входами коммутатора, | с первым входом второго регистра СО и с управляющим |входом первого регистра, выход коммутатора соединен с. с вторым входом второго регистра, выход блока памяти номера алфавита соединен с вторым входом шифратора. g
Изобретение относится к вычислитель ной технике и может быть использован для лексического анализа в микроас- сёмблерах (в трансляторах с языков. микропрограммирования), в которых отдельнь1м полям микрокоманды соответствуют символьные, имена. Данные микроассемблеры переводят символьные имена отдельных полей микрокоманд -в коды, а затем производят упаковку их в формат микрокоманды.
. Известны трансляторы, включающие блок лексического анализа, блок синтаксического анализа и генератор кодов, реализуемые либо аппаратно, либо программно на базе электронных вычислительныхмашин Cl.
Для выполнения лексическогоанализ а используется одно из следующих средств.; аппаратно реализованный грамматический разбор, программы на базовые элементы,основным недостатко при этом является жесткая прйвязанг ность к языку программирования и выбранной системе кодирования символов для представл ения их в машине) программно реализованный;грамматический разбор программа на базовые элементы, основными недостатками которого являются низкое быстродейст.вие лексического анализа и жесткая привязанность к выбранной системе кодирования символов дляпредставления в машине. . Наиболее близким по технической сущности -к предлагаемому является устройство, содержащее входной ре-: гистр, выходной регистр, блок формирования адресов и операндов, информационный вход которого подключен к информационному выходу блока чтения программы, управлянвдий вход блока формирования адресов и операндов подключен к выходу блока управления,
блок стековой памяти управляющих символов, управляющий вход которого соединен с выходом блока управления, информационный вход - с информационным выходом блока чтения программы, информационный выход - с информационным входом блока чтения программы, счетчик управляющих символов, счетный вход которого соединен с выходом блока управления, выход - с адресным входом блока стековой памяти управляющих символов, блок анализа управляющих символов, тюрвый информационный вход которого соединен с информационным выходом блока чтения программы, второй информационный вход подключен к информационному выходу блока стековой памяти управляющих символов, выход соединен с входом блока управления 2.
Однако в связи с широким распространением микропрограммируемых микропроцессорных наборов больших инте. гральньдх схем (БИС) и как следствие этого появление множества языков микропрограммирования, ориентированных на различные системы кодирования символов, появилась необходимость создания универсального устройства лексического анализа, которое можно быстро приспособить к новой системе кодирования и к новому языку.
Указанное устройство является аппаратной реализацией нового языка, близкого к языкам высокого уровня и обеспечивающего запись программы в естественной и компактной форме, поэтому оно не обладает универсальностью. В то же же время устройство ориентировано на заранее определенную систему кодирования символов.
Цель изобретения - расширение функциональных возможностей устройства за счет обеспечения независимо ти от языков программирования и систем кодирования символов и сокра щение временных затрат на грамматический разбор. Поставленная цель достигается те что в устройство для лексического анализа метамикроассемблера, содер:жащее «Злок управления, два регистра информационный вход первого из кото рых является информационным входом устройства, выход второго регистра является информационным выходом уст ройства, введены шифратор, коммутатор и блок памяти номера алфавита, причем выход Первого регистра соединен с первыми входами шифратора и коммутатора, выход шифратора соединен с входом блока управленияj первый, BTOjgoA, третий и четвертый вьзходы которого соединены соответст венно с вторым и третьим входами коммутатора, с первым входом второго регистра и с управляющим входом пер вого регистра, выход коммутатора соединен с вторым входом второго ре гистра, выход блока памяти номера алфавита соединен с вторым входом шифратора. Причём блок управления содержит триггеры, элементы И и ИЛИ, генера тор синхроимпульсов и дешифратор, вход которого является входом блока п ервнй, второй,., третий и четверть выходы дешифратора соединены соответственно с первым и вторым входам перво17о Tpjirrepa, с первым входом второго триггера и с первым входом первого элемента И, выход которого соединен с первым входом блока, с первым входом второго элемента И.и с вторым входом второго триггера, выход которого соединен с первым входом третьего элемента И и с входом третьего триггера, выход которо го подключен к второму входу третье го элемента И, выход последнего соединен с вторым входом блока и с первым входом четвертого элемента И выход которого соединен с первым входом элемента ИЛИ, выход последнего соединен с третьим выходом блока, выход генератора синхроимпул сов соединен с четвертым выходом блока и с вторыми входами второго и четвертого элементов И, выход второго элемента И соединен с вторым входом элемента ИЛИ, второй вход первого элемента И соединен с выходом первого триггера. На фиг.1 приведена блок-схема предлагаемого устройства; Iна фиг.2 вариант выполнения устройстваГ на фиг.З - эпюры напряжений генератора синхроимпульсов блока управления устройства. .Устройство содержит регистры 1 и 2,. шифратор 3, блок 4 управления. коммутатор 5; блок 6 памяти, номера алфавита дешифратор 7, триггеры .; 8-10, элементы И 11-14, элемент ИЛИ 15, генератор 16 синхроимпульсов, группы элементов И 17 и 18, группу элементов ИЛИ 19, узел 20 памяти кон-. станты. .. Регистр 1 предназначен для хране-;; ния строки символов, являющейся частью микропрограммы пользователя, и мо- жат быть собран на сдвигающих регистрах. Регистр 2 предназначен для хранения сжатой строки символов (оператора языка микропрограммирования), содержащей только лексемы (последовательности символов, имеющие смысло- вое значение в языке микропрограммирования) f отделенные друг от друга служебными разделителями, и может быть собран на сдвигающих регистрах, Шифратор 3 предназначен для выработки уп равляющего кода по коду символов, поступающему из регистра 1, и по коду номера алфавита, поступающему иэ блока 6 памяти номера алфлвита, для управления грамматическим разбором для языков микропрограмми- ; рования. .: Блок 4 управления предназначен . для выр.аботки управляющих сигналов по коду, поступающему из шифратора 3, разрешающих либо пропуск кода символа из регистра 1 в регистр 2, либо запись кода, внутреннего служебно- го разделителя из узла 20 .в регистр / 2, либо игнорирование символов из регистра 1 (например, последовательность разделителей или комментариев). Коммутатор 5 предназначен для пропуска одногб из двух кодов. Блок б памяти номера алфавита предназначен. для хранения кода номера алфавита, который может меняться в процессе работы (например, при переходе от ла- ; тинского алфавита к русскому и на. оборот). Принцип работы устройства основан на том, что при лексическом анализе необходимо выделить лексемы (смысловые конструкции микро- , программирования) и передать их для синтаксического анализа. Как правило, все яЭыки микропрограммирования допускают расстановку разделителей (например, пробелов, символов возврата каретки и перевода строки,, табуляции и т.д.) в неограниченном количестве, а также.использование комментариев, улучшающих читаемос.ть програг №1 (микропрограмм) человекомtно в то же время усложняющих работу транслятора. Устройство лексического анализа преобразует входной текст программы (микропрограммы) в удобный для синтактического анализа вид, т.е. заменяет последовательности разделителей одним внутренним разделителем и убирает из текста комментарии. Для наглядности все символы алфавита языка программирования- (микропрограммирования) можно разделить на 4 группы: информационные символы, из кото рых состоят лексемы, служебные разд лители; символ Начало комментария СИМ-ВОЛ Конец комментария. Поэтому каждому коду символа алфавита языка микропрограммирования можно поставить в соответствие управляющий код, по которому производятся необходимые действия. Так, для первой группы символов производ ся простая перезапись из регистра 1 в регистр 2. Для второй группы символов Производится замена символа на код внутреннего разделителя и, если они продолжаются, уничтожаются следующие до тех пор, пока не встре тится символ из первой группы. Для третьей группы символов производитс запрет пропуска символов из регистра 1 в регистр 2 до тех пор, пока не встретится символ из четвертой , группы, который разрешает пропуск следующего символа. В регистре 1 хранится строка тек микропрограммы. С выхода регистра 1 код крайнего левого симв-ола поступа ет на вход шифратора 3, а на второй вход шифратора 3 поступает код номе ра алфавита с выхода блока б. По ко символа и коду номера алфавита шифр тор 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 и устанавливает инверсный выход его в нулевое состояние. Тем самым запрещается запись символов в регистр 2 с помощью блокировки элемента И 11 до. тех пор, -пока не появится символ Конец комментария, по которому на выходе дешифратора 7 вырабатывается единичный сигнал, который поступает на вход триггера 8 и устанавливает его инверсный выход в единичное состоянйа.Тём самым разрушается работа всех элементов устройства,
Для работы с несколькими алфавитами для разных языков микропрограммирования предусмотрен блок б памяти номера алфавита, позволяет быстро переходить от одного языка к другому путем подачи нового кода.
Предлагаемое устройство за счет введения шифратора, коммутатора, бло ка памяти номера- алфавита позволяет уменьшить временные затраты на лексический анализ программ (микропрогг рамм пользователя и работать с несколькими алфавитами языков программирования. Например, для лексического разбора одного оператора на языке АЛГОЛ- б О на ЭВМ БЭСМ-б требуется от 6 МКС до 150 мс в зависимости от разбираемого оператора, а предлазгаемое устройство при периоде синхроимпульсов 100 с выполняет то же самре за время в диапазоне от 400 но 5 (оператор фо четыре символа, что :. :соответствует четырем периодам ) до . МКС, так как скорость работы на порядок выше.:.
фуг, 2
Ca jr/tffCffe ff t/
TPffjoeuw/iOi.fli iftex Pffjfffiffe Доаеакт / ffjffeofe- - -..-- ; - - , -
CffSVgff ;/ 1ЙГJffff
fiooeoKmff / aoffe
Cfffflfgff Mf- «Vf
jxfit/c/ffffff
0i/g.J
Печь для непрерывного получения сернистого натрия | 1921 |
|
SU1A1 |
М., Мир, 1975,.с.296-387 | |||
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
Устройство для обработки выражений языков программирования | 1974 |
|
SU519715A1 |
РАСПРЕДЕЛИТЕЛЬНЫЙ МЕХАНИЗМ ДЛЯ ДВИГАТЕЛЕЙ ВНУТРЕННЕГО ГОРЕНИЯ | 1922 |
|
SU606A1 |
Авторы
Даты
1983-08-07—Публикация
1982-03-24—Подача