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

 

Изобретение относится к вычислительной технике, предназначено для аппаратной поддержки процесса трансляции и может быть использовано в специализированных процессорах или программно-аппаратных средствах, которые осуществляют, перевод с языков программирования высокого уровня на машинный язьж, а также в интерпретаторах языков программирования высокого уровня. Цель изобретения - расширение функциональных возможностей за счет обеспечения лексического анализа в свободном формате и распознавание лексемы Символьная строка, Для достижения указанной цели в устройство , содержащее блок 1 преобразования кода Литер в код Лексем регистр 2, группу 3 элементов ИЛИ, группу 4, 5 элементов И, дополнительно введены дешифратор 12 символов и блок 13 управления. 4 ют., 1 табл. S

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

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

РЕСПУБЛИК

„„SU„„ f 418757 А1 (5i) 4 G 06 F 15/38

Н А BTOPCHOMY (:ВИДЕТЕЛЬСТВУ

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

Ао ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ (21) 419728 i /24-24

:(22) 18 ° 02. 87 (46) 23.08.88. Бюл. N 31 (71) Ленинградский электротехнический институт им. В.И.Ульянова (Ленина) (72) В.С.Фомичеев, Г.В.Разумовский, A.È.Ï0çíÿHñêèé и Н.М.Сафьянников (53) 681.325 (088.8) (56) Авторское свидетельетво СССР

Р 1187173, кл. G 06 F 15/04, 1985.

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

В 1238103, кл. С 06 F 15/38, 9/44, 1986. (54) УСТРОЙСТВО ДЛЯ ЛЕКСИЧЕСКОГО АНАЛИЗА ПРОГРАММ (57) Изобретение относится к вычислительной технике, предназначено для аппаратной подцержки процесса трансляции и может быть использовано в специализированных процессорах или программно-аппаратных средствах, которые осуществляют перевод с языков программирования высокого уровня на машинный язык, а также в интерпретаторах языков программирования высокого уровня. Цель изобретения " расширение функциональных воэможностей за счет обеспечения лекСического анализа в свободном формате и распознавание лексемы Символьная строка".

Для достижения указанной цели в устройство, содержащее блок 1 преобразования кода "Литер" в код "Лексем", регистр 2, группу 3 элементов ИПИ, группу 4, 5 элементов И, дополнительно введены дешифратор 12 символов и блок 13 управления. 4 ил., 1 табл.

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

Цель изобретения — расширение ,функциональных возможностей за счет обеспечения лексического анализа,1 . > программ на языках высокого уровня в свободном формате и распознанания лексемы "Символьная строка".

Сущность изобретения состоит в создании устройства для лексического 20 анализа программ, способного выделять ( типичные лексемы языков программиро.вания высокого уровня-н свободном формате с использованием посимвольI ного анализа текста программы дешиф ратором символон, определения при помощи нее класса символон и распознавания блоком управления на основании этого класса лексических единиц.

Иа фиг. 1 представлена функциональ-3(1 ная схема устройства для лексического анализа программ; на фиг. 2 — функ=. циональная схема примера реализации блока управления; на фиг. 3 — микропрограмма; на фиг. 4 — временная диа1 3 > грамма работы устройства.

Устройство для лексического анали :за програ>мы содержит блок 1 преобразования кода "Литер" в код"Лексем",, регистр 2, группу 3 элементов ИЛИ9 4О группы 4 и 5 элементов И, входы сопровождения 6, информационный 7, пуска 8, информационный выход 9, выходы запроса 10 и готовности 11, дешифратор 12 символов, блок 13 управления.

Между конструкциями лексических единиц и их типами и значениями существует соответствие, задаваемое разработчиками компилятора. Значе50 нием лексемы может быть либо последовательность символов, образующих эту конструкцию, либо некоторый код.

Поле значения для некоторых лексем может отсутствовать. Блок 1 преобразования кода Литер" в код Лексем" задает соответствие между лексимическими конструкциями и их типами, При этом блок 1 задает также значеC ние лексемы, если оно представлено кодом. Кодом могут быть представлены,значения лексемы: ключевые слова, Ф> разделители. Значения для лексем

"Символьная строка", "Идентификатор" и "Чйсло" формируются из последовательности символов их образующих.

Регистр 2 предназначен для приема и хранения до .К литер входного текста программы и может быть собран на регистрах сдвига параллельного или последовательного действия. Очередная литера заносится с информационного входа регистра 2 в младшие оиты регистра с одновременнь>м сдвигом со-, держимого регистра 2 от младших разрядов к стар »им, но число разрядов равное количеству бит н коде символа в случае. подачи импульса на вход сдвига регистра 2.

Группы 4 и 5 элементов И предназначены для коммутации соответственно лексемы (типа) и соответствующих ей литер (значения) через группу 3 элементов ИЛИ на информационный выход 9 устройства.

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

Управляющий код:соответствует классу

/ ° этих символов. Выделены следующие классы: символ н старших разрядах регистра 2 .буква; символ цифра; символ,ограничивающий символьную строку (например, символ кавычки); символ начала комментария; символ конца комментария; символ, янляющййся однолитерным разделителем; символ и следу ющий за ним, являющиеся двулитерным .разделителем; символ, являющийся выделенным символом конца программы; последовательность символов в регисте 2, начиная с символа в старших ра" зрядах образует клю. евое слово.

Блок 13 управления осуществляет анализ поступающих входных (осведомительных) сигналов и выработку выходных (управляющих) сигналов, при помощи которых устройство функционирует н соответствии с алгоритмом распознавания лексем.

Устройство работает следующим образом.

В начальный момент регистр 2 является обнуленным. Устройство запускается подачей импульса на вход 8, по которому начинает работать блок 13

1418757

4 управления, он посылает на выход 10 устройства импульс, по которому на вход 7 устройства должен быть подан первый символ программы. После подачи на вход 7 кода символа на вход 6

- устройства подается импульс, подтверждающий наличие символа на входе 7.

После этого блок 13 управления подает импульс на выход 10, и цикл чте- 10 ния символа повторяется вплоть до заполнения всего регистра 2. Заполнение последнего определяется по выработке на выходе дешифратора 12 символов кода, етличного от нулевого.

После заполнения регистра 2 блок 13 начинает распознавание лексем программы в зависимости от класса символов, поступающих на вход дешифратора 12 символов ° 20

Если управляющий код соответству. ет ключевым символам, это означает, что в регистре 2, начиная со старших разрядов, находятся символы ключевого слова. В этом случае на ин- 25 формационном выходе блока I вырабатывается тип (и, если нужно, значе-, ние) лексемы "Ключевое слово". На второй вход группы 4 элементов И из блока 13 подается логическая едини- 30 ца, и .сформированный тип лексемы передается через группу 3 элементов ИЛИ на информационный выход 9 устройства. Одновременно на выход

11 устройства подается импульс, сигнализирующий о готовности на информационном выходе 9 устройства лексемы. После этого символы, находящиеся в регистре 2, сдвигаются от младших разрядов к старшим с адновремен- 40 ным поступлением в младшие разряды

2 нового символа исходной программы

4 с информационного входа устройства.

Сдвиг осуществляется до выталкивания из регистра 2 всех символов данного ,ключевого слова. Конец ключевого слова определяется по появлению в старших разрядах регистра 2 символа, отличного от буквы, путем анализа управляющего кода на выходе дешифратора 12 символов.

Одновременный прием новых символов программы осуществляется путем подачи на выход 10 импульса запроса символа и ожидания появления единичного сигнала на входе 6. После поступления с входа 6 импульса, свидетельствующего о наличии на входе 7 текущего символа программы, производится сдвиг символов в регистре 2 с приемом нового символа в младшие разряды. В дальнейшем прием символов программы осуществляется таким же образом. После формирования лексемы ключевого слова и сдвига его символов в регистре 2 возобновляется опрос управляющего кода на выходе дешифратора 12 символов и.выполняются действия, определяемые классом анализируемых дешифратором 12 символов.

Если символ в старших разрядах регистра 2 является буквой, это означает начало идентификатора. На информационном выходе блока 1 форми руется тип лексемы, который передается через группу 4 элементов И и группы 3 элементов ИЛИ на информационный выход 9 устройства путем подачи из блока 13 управления соответствующего сигнала. Одновременно на выход 11 готовности подается импульс, свидетельствующий о наличии на. выходе 9 устройства типа лексемы.

После этого на выход 9 устройства передается символ идентификатора через группу 5 элементов И и группу

3 элементов ИЛИ путем подачи на второй вход группы 5 элементов И единицы. При этом на <выход 11 готовности подается импульс, свидетельствующий о передаче на информационный выход 9 устройства буквы идентификатора (т.е., значения этой лексемы) .

Одновременно с передачей буквы иден тификатдра на информационный выход

9 устройства с информационного входа 7 устройства указанным способом. поступает новый символ программы.

На информационный выход 9 устройства подобным образом передаются все символы идентификатора.

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

Это осуществляется путем подачи на выход 11 готовности устройства импульса, поскольку на вторые входы групп 4 и 5 элементов И из блока

13 управления не поданы логические единицы, на их выходах присутствуют нулевые коды, которые через группу

1418757

3 элементбв ИЛИ передаются на информационный выход 9 устройства. После передачи нулевого кода осуществляются действия в соответствии с классом символов, находящихся в старших разрядах регистра 2.

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

3 элементов ИЛИ на информационный выход 9 устройства путем подачи из блока 13 управления соответствующего сигнала. Одновременно на выход 11

; готовности подается импульс, свидетельствующий о наличии на выходе 9 . устройства типа лексемы. После этого на выход 9 устройства передаются цифры числа через группу 5 элементов

И и группы 3 элементов ИЛИ путем подачи соответствующего сигнала из блока 13;. При этом на выход 11 готовности подается импульс, свидетельствующий о передаче на информационный выход 9 цифры (т.е., значения этой лексемы). Одновременно с этим с информационного входа 7 указанным спо" собом поступает новый символ программы. Подобным образом на информационный выход 9 устройства передаются все цифры числа. Конец цифр числа определяется по появлению в старших

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

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

1 формируется тип лексемы "Однолитерный разделитель" (и, если нужно, его значение). Этот тип передается через группу 4 элементов И и группу 3 элементов ИЛИ на информационный выход 9 устройства путем подачи из блока 13 управления соответствую щего сигнаЛа.. Одновременно на выходе

11 готовности подается импульс, сви-, детельствующий о наличии на выходе

9 устройства типа лексемы. После этого осуществляется сдвиг содержи" мого регистра 2 с поступлением в младшие разряды нового символа исходной программы. Дальнейшие действия устройства определяются в зависимости от класса символов, находящихся в старших разрядах регистра 2.

Если символ, находящийся в старших разрядах регистра 2, и следующий после него являются двулитерным раздели5

10 телем, на информационном выходе блока 1 формируется тип лексемы "Двулитерный разделитель" (и, если нужно, его значение). В этом случае действия устройства во всем подобны действиям, осуществляемым при формировании однолитерных разделителей, однако в конце осуществляется .сдвиг содержимого регистра 2 на два символа с приемом новых символов програм15

20 мы е

Если. символ, находящийся в старших разрядах регистра2,является .приз25 наком символьной строки (например, кавычкой), на информационном выходе блока 1 формируется тип лексемы

"Символьная строка". Этот тип передается на информационный выход 9 устройства тем же способом, что и для

30 остальных лексем. После передачи ти- па осуществляется сдвиг содержимого регистра 2 на один символ с приемом

35 нового символа программы. Поскольку символьная строка представляет из себя последовательность символов, передача значения этой лексемы (самих символов символьной строки) осуществляется вплоть до появления в старших разрядах регистра 2 второго

45 -символа признака символьной строки.

Все символы символьной строки, образующие значение лексемы, передаются из регистра 2 на информационный выход 9 устройства так же, как и символы (значение лексемы) идентификатора. Завершающий символ признака символьной строки выталкивается из регистра 2 (с приемом нового сим50 вола), и устройство продолжает работать в зависимости от класса символов, находящихся в старших разрядах регистра 2 °

Если символ, находящийся в старших разрядах регистра 2, является симвоограниченную с обеих сторон специаль40 ными признаками (например, кавычками), 57

7 1ч187 лом начала комментария, блоком 13 осуществляется сдвиг содержимого регистра 2 (с приемом новых символов) вплоть до появления в старших тI

5 разрядах последнего символа Конец комментария", который тоже сдвигает,ся. После этого устройство осуществляет действия в зависимости от класса символов, находящихся в стар- 10 ших разрядах регистра 2.

Если символ, находящийся в старших разрядах регистра 2, является символом конца программы, устройство завершает свою работу. Поскольку уст- 15 ройство работает в режиме запросответ и после запроса следующего символа ожидает его поступления при помощи опроса входа "Ответ", после передачи последнего символа програм- 20 мы (символ конца) необходимо еще несколько раз передавать импульс на вход 6 ответа (без фактической установки на информационном входе 7 кода символа) до тех пор, пока символ 25 конца программы не переместится из младших разрядов регистра 2 в старшие..

Если символ, находящийся в старших разрядах регистра 2, не принадлежит ни. к одной из перечисленных групп символов (нелевой код на выходе блока 12), полагается, что этот символ принадлежит к группе символов типа "Пробел"., "Табуляция", "Пере" вод строки" и т.п. Символы из этой группы должны быть пропущены, что осуществляется путем сдвига содержи мого регистра 2 и приема нового символа. Затем действия устройства во- gp зобновляются в зависимости от класса символов, находящихся в старших разрядах регистра 2.

Построение системы булевых функций, которые реализуют блок 1, следующее.

Исходными данными для построения блока 1 служит соответствие между конструкциями лексических единиц и их типами и значениями (считают, что 50 типы и значения в нем представлены в виде двоичных чисел). Блок 1 задает соответствие между лексическими конструкциями и их типами,при этом он задает также и значение, если 55 оно представлено кодом. Рассматрива-. ют две системы булевых функций,.

Т-задающую тип лексемы и M-задающую значение лексемы. Аргументами являются коды символов, находящихся в регистре 2. Обозначают каждый разряд регистра 2 булевой переменной у„, где P - номер разряда. Построение системы булевых Функций Т начинают с построения систем булевых функций для каждого из разновидностей лексем.

Для ключевых слов обозначают систему булевых функций, формирующих тип ключевых слов, через К, для ицентификаторов - через I для однолитерных разделителей — через R1, для двулитерных разделителей -.через R2 для числа — через N, для символьных ,констант — через S. Рассматривают по-. строение каждой из перечисленных систем в отдельности.

Булевые Функции f определяют сле1 дующим образом:

Π— если в разрядах регистра 2 на месте. i-ro символа (начиная со старших разрядов регистра 2, находится символ или цифра)

1 — в противном случае.

Эти функции легко реализовать, например, простым перечислением элементарных конъюнкций в дизъюнктивной нормальной Форме (ДНФ), которые принимают значение единицы на наборах значений, соответствующих. кодам символов, отличных от буквы и цифры.

В дальнейшем пользуются этими функциями., Систему булевых функций К можно представить в виде

I п %! Р1

К„=V, (,, ;, Z;, ) 4 f q., -а

1 к„=ч;,(A,,л-, z,, ) 4 я,, 1

Ф где каждое Z t. (1=1,...11, 11,...,ш, t=1,я.; 1=1...,,К) есть либо перее.

1 менная у, либо отрицание переменной у ; и — количество ключевых слов, для которых в 1-м разряде кода типа стоит единица g — количество букв

1 в i-м ключевом слове, у которого в

1-м разряде кода типа стоит единица;

m — количество разрядов, необходимых для кодирования исходных символов; К вЂ” количество разрядов, необходимых для кодирования типов лексем.

1418757

9

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

I ф!, !!! ная конъюнкция вида М

Ф! -j=! !)Ф принимает значение .единицы на наборе значений переменных, которое соот:ветствует последовательности из !

:кодов букв для некоторого ключевого слова, и в целом вся конъюнкция обращается в нуль функцией К, !

+1 s случае, если после последней буквы ключевого слова следует буква или . цифра. Очевидно, что распознавание ключевых слов, как и других лексем, осуществляется для тех из них, начало которых располагается в регист.ре 2 с самых старших разрядов.

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

Для разрядов кода типа идентификато ра, которые равны единице, все функ:ции Х имеют нид

Рассмотривают построение R2 для второй группы однолитернь разделителей. Для этого перенумеровывают нсе однолитерные разделители из второй группы и для кажцой из них нводят функцию q;.

Π— если в разрядах регист-. ра 2 на месте второго символа (начиная со старших разрядов) стоит символ, который образует вместе с i-м однолитерным разделителем двулитерный разделитель.;

1 - в противном случае.

Функции q ® тривиально реализуются поскольку для каждого i-ro одно

20 литерного разделителя символы, вместе с которыми он образует двулитерный разделитель, " конечное число (как правило не более). В елучае, если каждый этот символ представить

2б соответствующей элементарной конъюнкцией в ДНФ и взять от полученной

ДНФ отрицание, получают соотнетствующую q.,:, I

Система R1 . для разделителей из

30 второй группы имеет вид е

Т = Ч!=! ЛР, Е1

1 где каждая Е !1 (!.=1,...,1; )=1,. ° .m;

К=1,...К) есть либо переменная у либо отрицание переменной у, причем это переменные, соответствующие старшим разрядам регистра 2, в которых находится первый символ распознаваемой конструкции; b — количество букв в алфавите языка; кажцая эпементарная конъюнкция Л! Е; приP нимает значение единицы на наборе значений переменных, соответствующих некоторому коду буквы.

Остальные функции Т тождественно равны нулю.

Однолитерные разделители можно разделить на две группы; первая— это группа разделителей, которые не . могут быть началом двулитерных разделителей, и вторая — разделители которой могут быть началом двулитерных разделителей. Для однолитерных разделителей первой группы система функций R1 строится тривиальным об-! разом.! Ъ ill 2

R1z =Ч; (Лу-! Zi ) 4 qi 3 зь, Ы„=V, „.(Л.,Е,. ) I, qi;.: !! ° где каждая Z (х=1,...,г ; «!=1... ш;

1)

1=1,...,К) есть либо переменная у

40.либо отрицание переменной у, причем это переменные соответствующие старшим разрядам регистра 2, в которых находится первый символ распознаваемой конструкции; r < - количество раз4 делителей, для которых н 1-м разряде кода типа стоит единица.

Кажцая элементарная коньюнкция

Л;, Е;; принимает значение единицы на наборе значений переменных, которые соответствуют некоторому однолитерному разделителю, но эта конъюнкция в целом обращается в нуль соответствующей функцией ц- в случае, если ! первый и второй символы из регистра

55 2 образуют двулитерный разделитель.

Система булевых функций R2 для двулитврньы разделителей строится три.! виальным образом, в этом случае s соответствующих ДНФ элементарные

1418757

12 конъюнкции соответствуют кодам двух символов, образующих некоторый двулитерный разделитель.

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

Система булевых функций S для символьной строки состоит из функций, тождественно равных нулю, если они соответствуют нулевым разрядам в коде типа символьной строки, и функций, состоящих из одной элементар- 15 ной конъюнкции, соответствующей коду символа признака символьной строки (например, кавычки), если функции соответствуют единичным разрядам в коде типа символьной строки. 20

Строят систему булевых функций

Т, которая задает тип лексем, находящййся в регистре 2, она является суперпозицией указанных систем буле- вых функций. 5

T„=K1V(VII ) V В11VR2, VN,VS,;, т -К,Ч(У4т ) VR1 VR2 Vm VS

1 !

1 т „=K„Ч(т„) VR1 gVR2gVNqVSg, 30 где g- ЧЕ1 К<.

Функция принимает значение единицы, если в регистре 2, начиная со старших разрядов, располагается ключевое слово, и нуля в противном .случае. Эта функция формирует признак ключевого слова, который выраба- тывается на соответствующем выходе блока 1.

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

Рассматривают построение системы булевых функций, которые реализуют дешифратор 12 символов. Считают,что дешифратор 12 символов вырабатывает унитарный управляющий код. Тогда 50 каждому выходу дешифратора 12 символов соответствует отдельная булевая функция, которая для соответствующей группы символов, находящихся в старших разрядах регистра 2, прини- 55 мает значение единицы, а для остальных — нуля.

Рассматривают каждую функцию в

I отдельности.

Функция В для группы символов

"Буква" имеет внд ь

8=V,,h,.,К; где каждое Е;1(х=1,...,Ь; j=1,...,òà) есть либо переменная у,, либо отрир В цание переменной у, b — количество букв в алфавите.

Каждая элементарная конъюнкция

П\

h Z .. соответствует некоторой бук1=1 11 ве.

Функция С для группы символов

"Цифра" строится аналогичным образом.

Функции Н, и Н начала и конца комментария строятся так же, как и функция W признака символьной строки.

Функции Р, и F однолитерного и двулитерного разделителей строятся соответственно как суперпозиции функций R1 и R2:

F = V. R1

1 . 11 1У

Р =V,К2„..

Функция Р признака ключевого слова имеет вид

Р-V.К

К

Очевидно,.что функции, которые реализуются блоками 1 и 12 допускают возможность минимизации, что позволяет уменьшить аппаратные затраты при реализации этих блоков.

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

ПЗУ (фиг.2). В нем используются принудительная адресация и два-адресных поля. Каждая микрокоманда имеет операционное поле Y поле логических условий Х и два адресных поля АР и

А1. Микропрограммный управляющий автомат содержит ПЗУ 14, регистр 15 микрокоманд, дешифратор 16, элемент

И-ИЛИ 17. IK-триггер 18, элемент

НЕ 19, элемент И 20, мультиплексор

21, генератор 22 синхроимпульсов, в первого по пятый выходы 23 автомата, с первого по одиннадцатый входы

24 автомата, вход 25 запуска автома та.

Выход ПЗУ 14 соединен с входом регистра 15 микрокоманд. В соответствии со структурой микрокоманды соединены выходы регистра 15 микрокоманды: разряды поля Y - с соответст757 14 самым запрещающий проход тактовых импульсов через элемент И 20.

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

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

13 управления осуществляется до нача ла работы микропрограммы подачей импульса на вход 8 устройства.

Содержательный граф микропрограммы, соответствующий алгоритму работы устройства, изображен на фиг. 3.

На фиг. 4 — изображена временная диаграмма работы устройства ва время осуществления лексического анализа программы.

13 1418 вующими выходами 23 автомата, разряды поля Х - с входом дешифратора 16, разряды полей Аф и А1 — с адресным входом ПЗУ 14, управляемым через муль- > типлексар 21, соответственно с выходами элемента И-ИЛИ 17 и элемента

НЕ 19, выходы дешифратара 16 и входы 24 автомата — с входами элемента

И-ИЛИ 17. Первый разряд из поля Y 10 регистра 15 соединен с К входом IKтриггера 18, на I-вход которого поФ ступает сигнал запуска, а прямой выход которого соединен с первым входом элемента И 20. На второй вход 15 последнего поступают тактовые импуль-сы с генератора 22 синхроимпульсов.

Выход элемента И 20 соединен с входом чтения ПЗУ 14.

Микропрограммный управляющий авто- 20 мат работает следующим образом.

В исходном состоянии регистр 15 микрокоманд и тригг ер.18 находятся, в нулевом состоянии, в результате чего устанавливается нулевой адрес

ПЗУ. Импульс запуска с входа 25 переключает IK-триггер 18 в единичное состояние, в результате чего тактовые импульсы проходят на вход чтения

ПЗУ 14, возбуждая в каждом такте ЗО

Процесс чтения микрокоманды из ПЗУ

14. Выбранная из ПЗУ 14 микрокоманда поступает на регистр 15 микрокоманд и обрабатывается следующим образом.

Поле Y образует управляющие сигналы.

Адрес следующей микрокаманды определяется памятью Аф и А1 в зависимости от значения поля Х и логических условий, поступающих по группе входов 25. Если выбранное дешифратаром дб

16 условие равно нулю или в поле Х указывается условие, тождественно равное нулю (микрокоманда без провер= ки логического условия), выбирается по входу элемента НЕ 19 адрес А1, а если указанное. в команде условие равно единице, по выходу элемента

И-ИЛИ 17 выбирается адрес АР в качестве адреса следующей микракоманцы. Работа микропрограммного управля- Ва ющего автомата заканчивается, если указывается специальная микрокоманда астанова. Эта микрокоманда имеет единицу в первом разряде роля Y регистра 15 и нули в остальных разря- бб дах. По этой микрокоманде из первого разряда регистра 15 поступает сигнал на К вход IK-триггера 18, пере- " водящий ега в нулевое состояние и тем

Формула изобретения

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

ИЛИ группы, выходы которых образуют информационные выходы устройства, 1418

Тип

Пояснение

Выход 10 запроса устройства

ЗП

Выход 6 ответа устройства

ОТВ

Выход 11 готовности устройства

ГОТ

Выход дешифратора 12 символов, соответствующий признаку ключевого слова

Выход дешифратора 12 символов, соответствующий признаку буквы

Выход дешифратора 12 символов, соответствующий признаку цифры

Выход дешифратора 12 символов, соответствую=. щий признаку двулитерного разделителя

Выход дешифратора 12 символов, соответствующий признаку однолитерного разделителя

Выход дешифратора 12 символов, соответствующий символу.конца программы

Выход дешифратора 12 символов, соответствующий символу признака символьной строки

Выход дешифратора 12 символов, соответствующий символу начала комментария

Выход дешифратора 12 символов, соответствующий символу конца комментария

Вход сдвига содержимого регистра ?

Р2

КОН

НК

КК

СДВ

Второй вход первой группы элементов И

И1

И2

Второй вход второго группы элементов И

1,5 вторые входы элементов ИЛИ группы соединены с выходами элементов И второй группы, первые входы которых подключены к выходам регистра, соответствующим первому введенному в не-.

-!го символУ» . о т л и ч а ю щ е е с я тем, что, с целью расширения функ,циональных возможностей за счет обеспечения лексического анализа программ на языках высокого уровня в свободном формате и распознавания лексемы "Символьная строка", в него ,введены дешифратор символов и блок управления, причем первый и второй информационные входы дешифратора .символов соединены с выходами регист757 )6 ра, соответствующими первому и второму введенным в него символам, выход дешифратора символов соединен с первым входом блока управления, второй и третий входы которого являются входами пуска и сопровождения устройства соответственно, первый и второй выходы блока управления подключены к вторым входам элементов

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

1418781

1418757

Составитель И.Полнвода

Техред M.Õoäàíè÷ Корректор Л.Пилипенко

Редактор И.Горная

Тираж 704 Подписное

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

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

Заказ 4156/48

Производственно-полиграфическое предприятие, r. Ужгород, ул, Проектная, 4

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

 

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

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

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

Изобретение относится к вычислительной технике и может быть исполь:и)вано в автоматизированных система.х обработки данны.х и п)оизводства нрограмм для ЭВЛ

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

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

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

Изобретение относится к вычислительной технике

Изобретение относится к вычислительной технике

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

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

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

Изобретение относится к обработке информационных естественно-языковых текстовых материалов

Изобретение относится к системам классификации текстовых сообщений

Изобретение относится к автоматизированному синтезу текстовых документов

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

Изобретение относится к распознаванию образов из графического изображения, и в частности к распознаванию текста на изображении документа в электронном виде

Изобретение относится к устройствам распознавания написанных знаков
Наверх