00
&1
VI
ttf
1 . U
, Изобретение относится к вычисли- I тельной Технике, предназначено для I аппаратной поддержки процессов транс ляции и может быть использовано в специализированных процессорах или программно-аппаратньт средствах, ко- торые осуществляют перевод с языков пр.рграмт-шрования высокого уровня на машинный язык, а также в интер- претаторах языков программирования :высокого уровня, i . Цель изобретения - расширение ;функциональных возможностей за счет обеспечения лексического анализа ;программ на языках высокого уровня IB свободном формате и распознавания
;лвксемы Символьная строка , . . Сущность изобретения состоит в создании устройства для лексического I анализа программ, способного вьщелят I типичные лексемы языков программиро- Iвания высокого уровня-в свободном формате с использованием посимволь- 1.НОГО анализа текста программы дешиф- Оратором символов, определения при помощи нее классд символов и распоз- навания блоком управления на основа- нии этого класса лексических единиц.
На фиг о 1 представлена функционал ная схема устройства для лексического анализа программ; на фиг. 2 - фунциональная схема примера реализации блока управления, на фиг. 3 - микропрограмма § на фиг 4 - временная диаграмма работы устройства.
Устройство для лексического анали за программы содержит блок 1 преобразования;регистр 2
группы 4 и 5 элементов И, входы сопровождения 6, информационный 7, пуска 85 информационньй выход 9, выходы запроса 10 и готовности llj дещиф- ратор 12 символов, блок 13 управления, , .
Между конструкциями лексических единиц и и х типами и значениями существует соответствие, задаваемо рдзработчиками компилятора,, Значе- нием лексемы может быть либо последовательность символов 5 образующих - эту конструкцию, либо некоторьй код, Поле значения для некоторых лексем может отсутствовать. Блок 1 преобраз вания кода Литер в код Лексей задает соответствие между лексими- чвск-тт конструкциями и их типами При этом блок 1 задает также значеt T
,
.1
кода Литер в код Лексем .5 группу 3.элементов ИЛИ,
5
0
5
5
О 0
0
ние лексемьг, если оно представлено кодом. Кодом могут .быть представлены .значения лексемы: ключевые слова, разделители. Значения для лексем .Символьная строка, Идентификатор и число формируются из последовательности символов их образующих,
Регистр 2 пр.еднаэначен для приема и хранения до -К литер входного текста программы и может быть собран на регистрах сдвига параллельного или последовательного действия. Очередная литера заносится с информационного входа регистра 2 в младщие иты регистра с одновр еменнэм сдвигом со- . держимого. регистра 2 от младщих разрядов к СТАРШИМ, но число разрядов равнсхе Количеству бит в коде символа в случае, подачи импульса на вход сдвига реги стра 2.
Группы 4 и 5 элементов .И предназначены для коммутации соответственно лексемы-(типа) и соответств ующих ей литер (значения) через группу 3 элементов ИЛИ на информационный выход 9 устройства.: .
Дешифратор 1-2 символов предназначен для выработки управляющего кода по кодам .символов, находящихся в самых старших разрядах регистра 2. Управляющий код:соответствует ютассу этих символов. Выделены следующие классы; символ в старщих разрядах регистра 2 ,буква| символ цифра; символ, ограничивающий символьную строку (например, символ кавычки); символ начала комментарияj символ конца комментария; символ, являющийся одно - литерн ым разделителем; символ и следующий за ним, являющиеся двулитерным :Разделителем; символ, являющийся выделенным символом конца программы; последовательность символов в регистре 2, начиная с символа в старших разрядах образует клю-евое слово.
Блок 13 управления осуществляет анализ поступающих входньпс (осведомительных) сигналов и выработку выходных (управляющих) сигналов, при помощи которых устройство функционирует в соответствии с алгоритмом распознавания лексем.
Устройство работает следующим образом.
В начальный момент регистр 2 является обнуленным. Устройство запускается подачей импульса на вход 8, по которому начинает работать блок 13
управления, он посылает на выход 10 устройства импульс, по которому на вход 7 устройства должен быть подан первый символ программы. После пода- чи на вход 7 кода симнола на вход 6 устройства подается импульс, подтверждающий наличие символа на входе 7. После этого блок 13 управления подает импульс на выход 10, и цикл чте- ния символа повторяется вплоть до заполнения всего регистра 2. Заполнение последнего определяется по выработке на выходе дешифратора 12 символов кода, етличного от нулевого. После заполнения регистра 2 блок 13 начинает распознавание лексем программы в зависимости от, класса символов, поступающих на вход дешифратора 12 символов.
Если управляющий код соответству- V ет ключевь М символам, это означает, что в регистре 2, начиная со старших разрядов, находятся символы ключевого слова. В этом случае на информационном выходе блока 1 выраба- тьшается тип ( и, если нужно, значение) лексемы Ключевое слово. На второй вход группы 4 элементов И из блока 13 подается логическая единица, и .сформированный тип лексемы передается через группу 3 элементов ИЛИ на информационный выход 9 устройства. Одновременно на выход 11 устройства подается импульс, сигнализирующий о готовности на информационном выходе 9 устройства лексемы. После этого символы, находящие- ся в регистре 2, сдвигаются от младших разрядов к старшим с одновременным поступлениемв младшие разряды нового символа исходной программы с информационного входа устройства. Сдвиг осуществляется до выталкивания из регистра 2 всех символов данного ключевого слова. Конец ключевого слова определяется по появлению в старших разрядах регистра 2 символа, отличного от буквы, путем анализа управляющего кода на выходе дешифратора 12 символов.
Одновременный прием новых символов программы осуществляется путем подачи на выход 10 импульса запрос а символа и ожидания появления единичного сигнала на входе 6. После поступления с входа 6 импульса, свидетельствующего о наличии на входе 7 текущего символа программы, произгю
15
20
25
418757
водится сдвиг символов в регистре 2 с приемом нового ст1мвола в младшие разряды. В дальнейшем прием символов программы осуществляется таким же образом. После формирования лексемы ключевого слова и сдвига его символов в регистре 2 возобновляется опрос управляющего кода на выходе дешифратора 12 символов и выполняются действия, определяемые классном анализируемых дешифратором 12 символов. .
Если символ в старших разрядах регистра 2 является буквой, это означает начало идентификатора. На информационном выходе блока 1 форми- руется тип лексемы, который передается через группу 4 элементов И и группы 3 элементов РШИ на информационный выход 9 устройства путем подачи из блока 13 управления соответствующего сигнала. Одновременно на выход 11 готовности подается : импульс, свидетельствующий о наличии на-выходе 9 устройства типа лексемы. После этого на вьпсод 9 устройства передается символ идентификатора через группу 5 элементов И и группу 3 элементов ИЛИ путем подачи на второй вход группы 5 элементов И единицы. При этом на выход 11 готовности подается импульс, св здетельствую- щий о передаче на информационный выход 9 устройства буквы идентифи- (т.е., значения этой лексемы), Одновременно с передачей буквы иден : тификат9ра на информационный выход 9 устройства с информационного входа 7 устройства указанным способом, поступает новый символ программы. На информационный выход 9 устройства подобным образом передаются все символы идентификатора. . .
Конец символов идентифшсатора определяется по появлению в старших разрядах регистра 2 символа, отличного от буквы и цифры. В этом случае на информационный выход 9 устройства передается нулевой код, свиде- тельствующий о завершении последо- , ватедьности символов идентификатора. Это осуществляется, путем подачи на выход 11 готовности устройства импульса, поскольку на вторые входы групп 4 и 5 элементов И из блока 13 управления не поданы логические единицы, на их выходах присутствуют нулевые коды, которые через группу
30
35
40
45
50
55
3 элементов ИЛИ передаются на информационный выход 9 устройства. После
I передачи -нулевого кода осуществляются действия в соответствии с классом ц символов, находящихся в старших разрядах регистра 2,
Если символ в старших разрядах регистра 2 является цифрой, это означает начало целого числа. На информа- ю ционном выходе блока 1 формируется
i тип лексемы, который передается чеI рез группу 4 элементов И и группу 3 элементов ИЛИ на информационный выход 9 устройства путем подачи из 15 блока 13 управления соответствующе- го сигнала. Одновременно на выход 11 , готовности подается импульс, свидетельствующий о наличии на выходе 9 устройства типа лексемы. После этого 20 на выход 9 устройства передаются цифры числа через группу 5 элементов И и группы 3 элементов ИЛИ путем подачи соответствующего сигнала из блока 13.-- При этом на в ыход 11 готов- 25 нести подается импульс, свидетельствующий о передаче на информационный
, выход 9 цифры ( т.е., значения этой лексемы). Одновременно с этим с ин- . формационного входа 7 указанным спо- 30 собом поступает новьй символ программы. Подобным образом на информационный выход устройства передаются все цифры числа. Конец- цифр числа определяется по появлению в старших 35 разрядах регистра .2 символа, отличного от цифрЫё В этом случае на информационный выход 9 устройства указанным способом передается нулевой код, свидетельствующий о завершении 40 последовательности цифр числа. После передачи нулевого кода осуществляются действия, соответствующие классу
. символов, находящихся в старших разрядах регистра 2.45
Если символ в старших разрядах регистра 2 является однолитерным разделителем и не образует со следующим после него двулитерным разделителя, на информационном вь1ходе блока 50
Iформируемся тип лексемы Одноли- терный разделитель (и, если нужно, его значение). Этот тип передается через группу 4 элементов И и группу 3 элементов Ш1И на информацион- 55 ный выход 9 устройства путем подачи из блока 13 управления соответствую- щего сигнала.. Одновременно .на выходе
IIготовности подается импульс, сви-.
детельствукяций о наличии на выходе 9 устройства -типа лексемы. После этого осуществляется сдвиг содержимого регистра 2 с поступлением в младшие разряды нового символа исходной программы. Дальнейшие действия устройства определяются в зависимости от класса символов, находящихся в старших разрядах регистра 2.
Если символ, находящийся в старших разрядах регистра 2, и следующий после него являются двз литерным разделителем, на информационном выходе блока 1 формируется тип лексемы Двули- терный разделитель (и, если нужно, его значение), В этом случае действия устройства во всем подобны действиям, осуществляемым при формировании однолитерных разделителей, однако в конце осуществляется лдвиг содержимого регистра 2 на два символа с приемом новых символов программы .
Если.символ, находящийся в старших разрядах регистра2,является признаком символьной строки (например, кавычкой), на информационном выходе блока 1 формируется тип лексемы Символьная строка. Этот тип передается на информационный выход 9 устройства тем же способом, что и для остальных лексем. После передачи ти- па осуществляется сдвиг содержимого регистра 2 на один символ с.приемом нов ого символа программы. Поскольку символьная строка представляет из себя последовательность символов, ограниченную с обеих сторон специальными признаками (например, кавычками) передача значения этой лексемы (самих символов символьной строки) осуществляется вплоть до появления.в старших разрядах регистра 2 второго символа признака символьной строки. Все символы символьной строки, обра- ззпощие значение лексемы, передаются из регистра 2 на информационный выход 9 устройства так же, как и сим- воль (значение лексемы) идентификатора. Завершающий символ признака символьной строки выталкивается из регистра 2 (с приемом нового символа) , и устройствопродолжает работать в зависимости от класса символов находящихся в старших разрядах регистра 2.
Если символ, находящийся в старших разрядах регистра 2, является символом начала комментария, блоком 13 осуществляется сдвиг содержимого регистра 2 ( с приемом новых симво™ лов) вплоть до появления в старших разрядах последнего символа Конец комментария, который тоже сдвигает- ,ся. После этого устройство осуществляет действия в зависимости от
класса символов, находящихся в старших разрядах регистра 2.
Если символ, находящийся в старших разрядах регистра 2, является символом конца программы, устройство
ся коды символов, находящихся в регистре 2. Обозначают каждь й разряд регистра 2 булевой переменной у, где Р - номер разряда. Построение системы булевых функций Т начинают с построения систем булевых функций для каждого из разновтадностей лексем Для ключевых слов обозначают систе- мУ булевых функций, формирующих тип ключевых слов, через К, для идентификаторов - через I, для однолитер- ных разделителей - череЭ К1, для двулитерных разделителей -.через R2,
название | год | авторы | номер документа |
---|---|---|---|
Устройство для лексического анализа программ | 1984 |
|
SU1238103A1 |
УСТРОЙСТВО ДЛЯ ОБРАБОТКИ СИМВОЛЬНОЙ ИНФОРМАЦИИ | 1991 |
|
RU2010319C1 |
Устройство для лексического анализа метамикроассемблера | 1982 |
|
SU1034043A1 |
Устройство для лексического анализа метатранслятора | 1983 |
|
SU1153329A1 |
Устройство для лексического анализа символьного текста | 1984 |
|
SU1187173A1 |
Устройство для лексического анализа | 1986 |
|
SU1361578A1 |
Устройство для перевода выражений в польскую инверсную запись | 1988 |
|
SU1571616A1 |
Устройство для параметрической автогенерации символьного текста | 1985 |
|
SU1439621A1 |
ВЫЧИСЛИТЕЛЬНАЯ ОТКРЫТАЯ РАЗВИВАЕМАЯ АСИНХРОННАЯ МОДУЛЬНАЯ СИСТЕМА | 2009 |
|
RU2453910C2 |
Синтаксический анализатор | 1987 |
|
SU1439591A1 |
Изобретение относится к вычислительной технике, предназначено для аппаратной поддержки процесса трансляции и может быть использовано в специализированных процессорах или программно-аппаратных средствах, которые осуществляют, перевод с языков программирования высокого уровня на машинный язьж, а также в интерпретаторах языков программирования высокого уровня. Цель изобретения - расширение функциональных возможностей за счет обеспечения лексического анализа в свободном формате и распознавание лексемы Символьная строка, Для достижения указанной цели в устройство, содержащее блок 1 преобразования кода Литер в код Лексем регистр 2, группу 3 элементов ИЛИ, группу 4, 5 элементов И, дополнительно введены дешифратор 12 символов и блок 13 управления. 4 ют., 1 табл. S
завершает свою работу. Поскольку уст-15 для числа - через N, для символьных
ройство работает в режиме запрос- ответ и после запроса следующего символа ожидает его поступления при помощи опроса входа Ответ, после передачи последнего символа программы (символ конца) необходимо еще несколько раз передавать импульс на вход 6 ответа (без фактической установки на информационном входе 7 кода символа) до тех пор, цока символ конца программы не переместится из младших разрядов регистра 2 в старшие.
Если символ, находящийся в старших разрядах регистра 2, не принадлежит ни- к одной из перечисленных групп символов (нелевой код на выходе блока 12), полагается, что этот символ принадлежит к группе символов типа Пробел ., Табуляция, Перевод строки и т.п. Символы из этой группы долясны быть пропущены, что осуществляется путем сдвига содержимого регистра 2 и приема нового символа. Затем действия устройства возобновляются в зависимости от класса символов, находящихся в старших разрядах регистра 2.
Построение системы булевьк функций, которые реализуют блок 1, следующее .
Исходными данными для построения блока 1 служит соответствие между конструкциями лексических единиц и их типами и значениями (считают, что типы и значения в нем представлены в виде двоичных чисел). Блок 1 задает соответствие между лексическими конструкциями/ и их типами,при этом он задает также и значение, если оно представлено кодом. Рассматривают две системы булевых функций: Т-задающую тип лексемы и М-задающую значение лексемы. Аргу: 1ентами являют5
С -,-п
,констант - через S, Рассматривают по- строение каждой из перечисленных систем в отдельности.
0 Нулевые функции f- определяют следующим образом
0- если в разрядах регистра 2 на месте, i-ro сим вола (начиная со старших разрядов регистра 2) находится символ или 1дифра) .
1- в противном ,
Эти функции легко реализовать, на- 0 пример, простым перечислением элемен тарных конъюнк1уш в дизъюнктивной нормальной форме (ДНФ), которые принимают значение единицы на наборах значений, соответствующ1гх.. кодам сим 5 волов, отличных от буквы и цифры,
В дальнейшем пользуются этими функциями
Систему булевых функций К мож но представить в виде
40
.Я;
к,.,(л;:,л;,г1., )., ;
K,v,(A,,zVt ) & 4 ui;
K,vt(4H;, zt-, ) f.,,,
p где каждое Z :{. (,,. .h«; j 1,...,m;
,8 5; , ...,K) есть либо переменная у , либо отрицание переменной Ур f количество ключевых слов, для которых в разряде кода типа - количество букв
стоит единица; g
в 1-М ключевом слове, у которого в 1-м разряде кода типа стоит единица; 55 m - количество разрядов, необходимых для кодирования исходньЬс симво- лов; К - количество разрядов, необходимых для кодирования типов лексем.
Символ, стоящий после ключевого слова, обязательно должен быть не буквой и не цифрой, в противном елучае это не ключевое слово, а идентификатор. Поэтому каждая элементар I. ., V i . W f
:ная конъюнкция вида Л. , А 7 ,.,
:. . Тг Т ) 1 1J t
принимает значение единицы на наборе значений переменных, которое соот- ветствует последовательности из g. |кодов букв для некоторого ключевого слова, и в целом вся конъюнкция
обращается в нуль функцией f„ f
: ir ;
1+-1
1- в противном случае.
Функции q W тривиально реализуются, поскольку для каждого i-ro одно;В случае, если после последней буквы
ключевого слова следует буква или
Цифра. Очевидно, что распознавание
ключевых слов, как и других лексем,
осуществляется для тех из них, нача- 20 литерного разделителя символы, вмес:ло которых располагается в регист- те с которыми он образует двулитер1ре 2 с самых старших разрядов. ный разделитель, - конечное число
I Поскольку идентификатор обязатель- (как правило не более). В случае,
|но должен начинаться с буквы и одна если каждый этот символ представить
буква тоже является идентификатором, 25 соответствующей элементарной конъюнк тип для идентификатора при помощи iсистемы булевых функций I можно фор- |мировать по кодам символа, находяще- :гося в старших разрядах регистра 2.
цией в ДНФ и взять от полученной ДНФ отрицание, получают соответствующую q . V
Система R1
1 VrV.(Aj.z|j) q;;:
. г
m
,2
для разделителей из
|Для разрядов кода типа идентификато- ° второй группы имеет вид ра, которые равны единице, все функ- щга I имеют вид
1г , zj. ,
р S где каждая Z j (,...,6; j 1,...m|
,...К) есть либо переменная у, либо отрицание переменной Ур, причем это переменные соответствующие
35
Rl2 Vj,, (Aj,,) R4 Vb,.() « q,;,
/
где каждая Z- (,... ,r ; j 1,. ..m; ,...,K) есть либо переменная Ур.
.... . . - .. « .
старшим разрядам регистра 2, в кото- 40 отрицание переменной у.,, причем
рык находится первый символ распознаваемой конструкции; b - количество букв в алфавите языка; каждая элементарная конъюнкция Ajl, Z - принимает значение единицы на наборе значений переменных, соответствующих некоторому, коду буквы.
Остальные функции Ig тождественно равны нулю.
Однолитерные разделители можно разделить на две группы; первая - это группа разделителей, которые не могут быть началом двулитерных разделителей, и вторая - разделители
это переменные соответствующие старшим разрядам регистра 2, в которых находится первый символ распознаваемой конструкции; г g количество раз- 45 делителей, для которых в 1-м разряде кода типа стоит единица.
Каладая элементарная конъюнкция д тт , /
J- принимает значение единицы на
наборе значений переменных, которые gg соответствуют некоторому однолитер- ному разделителю, но эта конъюнкция в целом обращается в нуль соответст- вукщей функцией q. в случае, если первый и второй символы из регистра
которой могут быть началом двулитер- gg 2 образуют двулитерньй разделитель. Щ)1Х разделителей. Для однолитерных Система булевых функций R2 для разделителей первой группы система двулитерных разделителей строится три функций R1 строится тривиальным об- виальным образом, в этом случае в разом.. соответствующих ДНФ элементарньте
Рассмотривают построение R2 для второй группы/од но литерньлз разделителей. Для этого перенумеровьюают все однолитерные разделители из второй группы и для каядой из них вводят функцию (j0- если в разрядах регистра 2 на месте второго символа (начиная со старших разрядов) стоит q; J символ, который образует вместе с i-м одно- литерным разделителем двулитерный разделитель.;
1- в противном случае.
Функции q W тривиально реализуются, поскольку для каждого i-ro одноцией в ДНФ и взять от полученной ДНФ отрицание, получают соответствующую q . V
Система R1
для разделителей из
1 VrV.(Aj.z|j) q;;:
рой группы имеет вид
. г
m
,2
Rl2 Vj,, (Aj,,) R4 Vb,.() « q,;,
/
где каждая Z- (,... ,r ; j 1,. ..m; ,...,K) есть либо переменная Ур.
.... . . - .. « .
отрицание переменной у.,, причем
это переменные соответствующие старшим разрядам регистра 2, в которых находится первый символ распознаваемой конструкции; г g количество раз- делителей, для которых в 1-м разряде кода типа стоит единица.
Каладая элементарная конъюнкция д тт , /
J- принимает значение единицы на
наборе значений переменных, которые соответствуют некоторому однолитер- ному разделителю, но эта конъюнкция в целом обращается в нуль соответст- вукщей функцией q. в случае, если первый и второй символы из регистра
111418757
конъюнкции соответствзпот кодам двух стгеолов, образующих некоторый двули- терный разделитель.
Система булевых функций S для числа строится подобно системе функций для идентификатора за исключени Б
гд ес ца бу
Т -
Т K;v()V.R1 Тг (() VR1,JvR2jW2VS2
Т К ,V(lf ( I ,) (,
букв, а цифр.
Система булевых функций S для символьной строки состоит из функций тоадественно равных нулю, если они соответствуют нулевым разрядам в . коде типа символьной строки, и функций, состоящих из одной элементарной конъюнкции, соответствующей коду символа признака символьной строки (например, кавычки), функции соответствуют единичным разрядам в коде типа символьной строки.
Строят систему булевых функций Т, кото.рая задает тип лексем, находящийся в регистре 2, она является суперпозицией указанных систем буле- вых функций.
где tf
Функция If принимает значение единицы, если в регистре 2, начиная со старших разрядов, располагается ключевое слово, и нуля в противном .случае. Эта функция формирует признак ключевого слова, которьй выраба тьюается на соответствующем выходе блока 1.
Построение системы булевых функций М для формирования значений лексемы, которые задаются кодом, во всем аналогично построению системы (1)ункций Т..
Рассматривают построение системы булевьпс функций, которые реализуют дешифратор 12 символов. Считают,что дешифратор 12 символов вырабатьшает унитарный управлякяций код. Тогда каждому выходу дешифратора 12 символов соответствует отдельная буле- вая функция, которая для соответствующей группы символов, находящихся
в старших разрядах регистра 2, прини- gg Вькод ПЗУ 14 соединен с входом мает значение единицы, а для осталь- регистра 15 микрокоманд. В соответ- нуля. .
ных Рассматривают каждую функцию в отдельности.
ствии со структурой микрокоманды сое динены выходы регистра 15 микрокоманды: разряды поля Y - с соответст
12
Функция в для группы символов Буква имеет вид
В V
А;;.
ве.
где каяздое (,.,.,Ь; ,.,.,та) есть либо переменная у , либо отрицание переменной Ур b - количество букв в алфавите.
Каядая элементарная конъюнкция
соответствует некоторой букА
JM
ве.
функция с для группы символов Цифра строится аналогичным образом.
Функции Н и Hj начала и конца комментария строятся так же, как и функция W признака символьной строкИс
Функции F и FJ однолитерного и двулитерного разделителей строятся соответственно как суперпозиции функций R1 и R2j
v,.,Rii;
FO vr. R2;
Функция Р признака ключевого на имеет вид
сло
Р Vj к..
Очевидно,.что функции, которые реализуются блоками 1 и 12 допускают возможность минимизации, что позволяет уменьшить аппаратные затраты при реализации этих блоков.
Блок 13 управления может быть реализован, например, в виде микропрограммного автомата с использованием ПЗУ (фиг.2). В нем используются принудительная адресация и два-адресных поля. Калдая микрокоманда имеет операционное поле Y, поле логических условий X и два адресных поля А0 и А1. Микропрограммный управляющий ав- томаи содержит ПЗУ 14, регистр 15 микрокоманд, дешифратор 16, элемент И-ИЛИ 17. 1К-триггер 18, элемент НЕ 19, элемент И 20, мультиплексор 21, генератор 22 синхроимпульсов, в первого по пятьй выходы 23 автома- та, с первого по одиннадцатый входы 24 автомата, вход 25 запуска автома та.
Вькод ПЗУ 14 соединен с входом регистра 15 микрокоманд. В соответ-
ствии со структурой микрокоманды соединены выходы регистра 15 микрокоманды: разряды поля Y - с соответст
вующими выходами 23 автомата, разряды поля X - с входом дешифратора 16, разряды полей А0 и А1 - с адресным Входом ПЗУ 14, управляемым через мул типлексор 21 соответственно с выходами элемента И-ИЛИ 17 и элемента НЕ 19, выходы дешифратора 16 и входы 24 автомата - с входами элемента И-ИЛИ 17, Первьй разряд из поля Y )регистра 15 соединен с К входом 1К триггера 18, на 1-вход которого поступает сигнал запуска, а прямой вы- 5сод которого соединен с первым входом элемента И 20. На второй вход последнего поступают тактовые импульсы с генератора 22 синхроимпульсов. Выход элемента И 20 соединен с вхо дом чтения ПЗУ 14.
Микропрограммньй управляющий авто Цат работает следующим образом, ; В исходном состоянии рвгистр 15 Микрокоманд и тригг ер.18 находятся . в нулевом состоянии, в результате чего устанавливается нулевой адрес ПЗУ. Импульс запуска с входа 25 переключает 1К-триггер 18 в единичное состояние, в результате чего тактовые импул1 сы проходят, на вход чтения ПЗУ 14., возбуждая в каждом такте процесс чтения микрокоманды из ПЗУ 14, Выбранная из ПЗУ 14 микрокоманда поступает на регистр 15 микрокоманд и обрабатьгоается следующим образом, Поле Y образует управляюшрне сигналы Адрес следующей микрокоманды опреде™ ляется памятью А0 и А1 в зависимости от значения поля X и логических условий, поступающих по группе входов 25« Если выбранное дешифратором 16 условие равно нулю или в поле X указьшается условие тождественно равное нулю (микрокоманда без провер- ки -логического условия), выбирается по взводу элемента НЕ 19 адрес А1, а если указанное в команде условие равно единице, по выходу элемента И-ИЛИ 17 выбирается адрес А в качестве адреса следующей микрокоманды. Работа микропрограммного упраЬля- ющего автомата заканчивается, если указьшается спеиз1альная микрокоманда останова. Эта микрокоманда имеет единицу в первом разряде роля Y регистра 15 и нули в остальных разря- дах. По этой микрокоманде из первого разряда регистра 15 поступает сигнал на К вход 1К-триггера 18, пере- водящий его в нулевое состояние и тем
самым запрещающий проход тактовых импульсов через элемент И 20,
В случае, если в качестве управ- лякнцего автомата выбрать микропрограммный управляющий автомат, работа устройства определяется микропрограммой для этого автомата. При описании микропрограммы используют язык Фз нкционального микропрограммирования (Ф-язык), который является средством описания функций операционных устройств на уровне микропрограммы безотносительно к структуре (аппаратуре) , которая может быть использована для реализации этих функций. Фз нкциональная микропрограмма, содержит в себе два рода сведений, две части; описание слов и массивов, устанавливающее типы и форматы слов, с которыми оперирует микропрограмма; содержательный граф микропрограммы; которьй определяет алгоритм вьтолне- ния операций в содержательной форме- в виде описаний микроопераций и логических условий.
.Множество слов, с которыми рабо- - тает микропрограмма,, описывается в виде таблицы.
Предполагается, что запуск блока 13 управления осуществляется до нача ла работы микропрограммы подачей импульса на вход 8 устройства.
Содержательньй граф микропрограм- t-fbi соответствующий алгоритму работы устройства, изображен на фиг« 3.
На фиг. 4 - изображена временная диаграмма работы устройства во время осуществления лексического анализа программы,
Формула изобретения
Устройство для лексичесного анали за программ, содержащее блок преобра зования кода Литер в код Лексем, регистр, группу элементов ИЛИ и две группы элементов И, причем информа- .ционный вход регистра является ин- формационньм входом устройства, информационные выходы регистра, соответствующие отдельным символам, подключены к информационным входам блока преобразования кода Литер в код Лексем, входы которого соединены с первыми входами элементов И первой группы, выходы которых подключены к первы рходам элементов ИЛИ группы, выходы которых образуют информационные выходы устройства,
- : .15 . 1418757 вторые входы элементов ИЛИ группы ра, соединены с выходами элементов И второй группы, первые входы которых подключены к выходам регистра, соот- ветствуняцим первому введенному в не-;г6 символу,, отличающееся тем, что, с целью расширения функциональных возможностей за счет обеспечения лексического анализа программ на языках высокогй уровня в свободном Формате и расггознавания лексемы Символьная строка, в него
введены дешифратор символов и блок управления, причем первьй и второй информационные входы дешифратора символов соединены с выходами регист10
15
ром ход пер рой ся уст вто клю И п вен сое стр ка тов вет
57 ра,
16
соответствующими первому и вто рому введеннь м в него символам, выход дешифратора символов Соединен с первым входом блока управления, второй и третий входы которого являются входами пуска и сопровождения устройства соответственно, первьй и второй выходы блока управления под- . ключены к вторым вxoдa s элементов И первой и второй группы соответственно, третий выход блока управления соединен с входом синхронизацш. регистра, четвертый и пятый выходь блока управления являются выходами готовности и запроса.устройства соответственно. .
2J
Т Y
18
25
о-
го
ОТ
г
19
&
тО-1
Фиг.2
5
Г. 1 4
5 «о ег
i fl 1- а « t
Устройство для лексического анализа символьного текста | 1984 |
|
SU1187173A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Устройство для лексического анализа программ | 1984 |
|
SU1238103A1 |
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Авторы
Даты
1988-08-23—Публикация
1987-02-18—Подача