Параллельный синтаксический анализатор
Похожие патенты | МПК / Метки | Текст | Заявка | Код ссылки
Номер патента: 1465894
Авторы: Вавилов, Водопьянов, Волков, Зайцев, Орлов
Текст
(51)4 С 06 " 1 ч 38 ГОСУДАРСТВЕННЫЙ КОМИТЕТПО ИЗОБРЕТЕНИЯМ И ОТНРЦТИПРИ ГКНТ СССР ТЕЛЬСТВ 24-24 Бюл, Р 10пьянов, Ю.А.ОрловВ,Н.Волков 088.8)е свидетельство СССРС 06 Р 15/38, 1982,свидетельство СССРС 06 Р 11/28, 1976,ЬНЫЙ СИНТАКСИЧЕСКИЙ АНАк вычис ие относит ике и може ыстродейст быть исющих сисдиалоинФормац вход(57) Изобретелительной техпользовано втемах обработговой разрабо и и отладки програм БЦ 14658 а также в аппаратнь 1 х преобразователях и интерпретаторах языков высокоГо уровя . ель изобретения - повь 1шение бы"тродейстгия, Анализаторосуществляет двухэтапный контрольвходного выражения. Первый, преп;варительный, этап обработки осуществляется двумя идентичными канал -ми 3 и ; синтаксического анализаработающими параллельна и незагиси мо друг от друга, Устройство содержит также регистры 1 и, 9 теку:пегосимвола, лок 5 микропрограммногоуправленцев схемь. 6 и 7 сравненияи дешифратор 8 полуоснов, котсрыеосуществляют окончательную сверткуного выражения. 1 з,п. ф-лы,1 табл., 5 пл,17 14 код "Р формируется на информацион-ном входе блока 19 памяти первого канала, и разрешения записи (74 ) сформированного кода в И-й старший разряд бг 1 ока 19 памяти первого кнала.Если в очередном шаге свертки н выходе дешифратора 8 полуоснов,рмируется сигнал (Хр ), что соотв тствует наличию в трех старших р эрядах блока 19 памяти второго к нала кодов, образующих основу " хР" или "Р+Р", то блок 5 микроограммного управления анализируе наличие входного сигнала (Х), ф рмируемого схемой 7 сравнения.Сигнал 12 формируется схемой 7 с авнения в том случае, если значен е кода, содержащегося в М-м старш м разряде блока 19 памяти первого к нала больше значения кода,содерж щегося в (И)-м разряде блока 19 п мяти второго канала. В этом случ е свертка основы не производится.При отсутствии на выходе схемы 7 сравнения синала (Х) блок микроограммного управления выдает поедовательность микроопераций, осущ ствляющих свертку основы. Выдаютс микрооперации дважды разрешения с вига на один разряд вправо содермого регистров 21 блока 19 памяти в орого канала (У иУ) формиров ния кода операнда (У ), формир вания на управляющем входе коммут тора 17 второго канала кода "10" (, ), переключающего выход комиутатфра на его третий вход, и разрешенйя записи (У 4 ) сформированного кода в Ю-й старший разряд блока 19 пфмяти второго канала.Если в очередном шаге свертки на восходе дешифратора 8 полуоснов фор" м 1 руется сигнал (Хэ ), соответствуюпфй наличию в старших разрядах бло-, ков 19 памяти первого канала кода "Р" и второго канала - кодов "Рх" ши первого канала - кода "(" и второго канала - кодов ")Р", или первого канала - кода "Р" и второго канала - кодов "Р+", то блок 5 юкропрограммного управления производит свертку основы. Блок 5 микропрограммного управления генерирует юкрооперации разрешения сдвига на один разряд вправо содержимого регистров 21 блоков 19 памяти первого (76 ) и второго (У ) каналов, фор 1 Яиирования кода операнда "Р" на тре 658948тъем входе коммутатора 17 второгоканала (У. ), формирования на упЯравляющем входе этого коммутаторакода "10" (У,8 ) переключения выходакоммутатора 17 на его третий входрезрешения записи кода операнда встарший М-й разряд блока 19 памятивторого канала (Ув)фЕсли в очередном шаге сверткина выходе дешифратора 8 полуосновформируется сигнал (Х 6 ), соответствующий наличию в старших разрядахблоков 19 памяти первого канала 1 Б кода Р и второго канала - кодов"хР+", то блок 5 микропрограммного управления генерирует последовательность микроопераций, осуществляющих совместный сдвиг выражения, 20 левая часть которого находится в блоке 19 памяти первого канала, а правая часть - в блоке 19 памяти вто(рого канала, на два разряда влево.Выдаются микрооперации разрешениясдвига на один разряд влево содержимого блока 19 памяти первого канала(У ), формирования на управляющемвходе коммутатора 17 первого каналакода "10" (У,8 ) переключения выхода ЗО коммутатора на его третий вход, разрешения (Уу 4.) записи ода с информационного входа блока 19 памятипервого канала в О"е разряды ре"гистров 21.35В результате выполненных действий код из старшего Я-го разрядаблока 19 памяти второго канала переписывается н М-й разряд блока 19памяти первого канала.40 Затем выдаются микрооперации разрешения сдвига на один разряд содержимого блоков 19 памяти первогоканала влево (У ), второго канала -вправо (76), снова выполняется совокупность микроопераций,осуществляющая перезапись кода из старшегоМ-го разряда блока 19 памяти первого канала в старший И-й разряд бло 1ка 19 памяти второго канала (УЭ74 ), и разрешения сдвига на одинразряд вправо содержимого блока 19памяти второго канала (Уц, ).Ф В результате выполнения совокупности перечисленных микроопераций содержимое блока 19 памяти первого канала сдвигается на два разряда влево, в освободившиеся (И) и М-й разряды переписывается содержимое, соответственно И- и (Н)"го разрядовблока 19 памяти второго каналов и содержимое блока 19 памяти второго канала сдвигаетсяна два разряда вправо, вытесняяза пределы регистров 21 содержимое перенесенных в память первогоканала двух старших разрядов. Если в очередном шаге свертки на выходе дешифратора 8 полуоснов формируется сигнал (Х, ), соответствующий наличию в старших разрядах бло ков 19 памяти первого канала кодови и "Г+" и второго канала - кодов хР то блок 5 микропрограммного управления генерирует последовательность микроопераций, осуществляющих совместный сдвиг выражения, левая часть которого находится в блоке 19 памяти первого канала, а правая часть- в блоке 19 второго канала, на один разряд влево.Выдаются микрооперации разреше,ния сдвига на один разряд влево содержимого блока 19 памяти первого канала (Уд), формирования на управляющем входе коммутатора 17 первого канала кода " 10" 8 ) переключения выхода коммутатора на его третий1вход, разрешения (У 4 ) записи кода с информационного входа блока 19 памяти первогоканала в старшие М-е разряды регистров 21, разрешения .сдвига на один разряд вправо содержимого блока 19 памяти второго канала (Удб)Если в очередном шаге свертки на выходе дешифратора 8 полуоснов формируется сигнал (Х ), соответствующий наличию в старших разрядах блока 19 памяти первого канала кодов11 н "Рх" и второго канала - кода Р1 Г П или первого канала - кодов (Р и второго канала - кода ")", или первого канала кодов "Р+" и второго канала - кодов "Р", то блок 5 микропрограммного управления производит свертку основы. Выдаются мйкрооперации разрешения сдвига на один разряд вправо содержимого блоков 19 памяти первого (У ) и второго (У ) каналов, формирования кода операнда "Р" на третьем входе коммутатора 17 первого канала (Уд ), формирования на управляющем входе этого коммутатора кода "10" (У, ) переключения выхода коммутатора на его третий вход, разрешения записи кода операн да в старший М-й разряд блока 19 памяти первого канала (Уу 4 ). выражения. формула изобретения 30 1. Параллельный синтаксический анализатор, содержащий первый и второй регистры текущего символа, информационные входы которых являются первым и вторым информационными вхо- дами анализатора, первый и второй каналы синтаксического анализа, информационные входы которых соединены с выходами первого и второго регистров текущего символа соответственно, о т л и ч а ю щ и й с я тем, что, с целью повышения быстродействия, в него введены блок микропрограммного управления, две схемы сравнения и дешифратор полуоснов, первые, вторые и третьи выходы формирования полуоснов первого и второго каналов синтаксического анализа соединены с информационными входами дешифратора полуоснов, выход которого подключен к входу признаков полуоснов блока микропрограммного управления, первые выходы формирования полуоснов первого и второго каналов синтаксического анализа соединены с первыми входами второй и первой схем сравнения соответственно и с входами кода переноса 35 4045 50 55 Если в очередном шаге сверткина выходе дешифратора 8 полуосновформируется сигнал (Х 4 ), соответствующий наличию на входах дешифратора составляющих завершающего выражения, т.е, в (М) и М-м разрядахблока 19 памяти первого канала содержатся коды "Г", а в М-м разряде блока 11 памяти второго канала - код " или в М-м разрядеблока 19 памяти первого канала содержится код , а в (М) и М-мразрядах блока 19 памяти второгоканала - коды "Г", то в блоке 5микропрограммного управления выдается микрооперация (Уц ) формирования признака нормального завершения контроля, формирующая на входахблоков 12 микропрограммного управления первого и второго каналовсигнала завершения синтаксического 25 контроля (Хд). На этом цикл работыанализатора завершается, устройствоготово к анализу следующего входного2 14 б 58 второго и первого каналов синтаксического анализа соответственно, вто" рые выходы формирования полуоснов которых соединены с вторыми входами второй и первой схем сравнения соответственно, выходы которых соединены с входами признаков приоритета операций в втором и первом канале блока микропрограммного управления, первые и вторые входы признаков об: наружения ошибки и правильной записи которого подключены к выходам одноименных признаков первого и второго каналов синтаксического анализа со)5 ответственно, управляющие входы которых соединены с выходами первой и второй групп блока микропрограммного управления соответственно, вы 20 ход признака обнаружения ошибки которого соединен с одноименным выхо,дом анализатора, выходы стробирования ввода первого и второго каналов синтаксического анализа соединены с входами записи первого и второго 2 регистров текущего символа соответственно.2. Анализатор по п,1, о т л и - ч а ю щ и й с я тем, что каждый канал синтаксического анализа содержит дешифратор лексических единиц, инфор 30 Мационный вход которого является информационным входом канала, блок микропрограммного управления, дешифратор кодов операций, регистр кода операции, схему сравнения, коммутатор, блок памяти, дешифратор основ И два блока элементов ИЛИ выходы которых соединены с управляющими Входами коммутатора и блока памяти соответственно, с первого по третий Выходы которого соединены с первого,94 22по третий выходами формирования полуоснов канала и с первого по третий информационными входами дешифратора основ, выходы которого соединены с входами первой группы блокамикропрограммного управления, выходыпервой, второй, третьей и четвертойгрупп которого соединены с разрядами информационного входа регистракода операции, разрядами первогоинформационного входа коммутатора ипервыми входами первого и второгоблоков элементов ИЛИ соответственно,разряды вторых входов которых и разряды второго информационного входакоммутатора соединены с управляющимивходами канала, вход кода переносакоторого соединен с третьим входомкоммутатора, выход которого соединенс информационным входом блока памяти, второй выход которого соединенс первым входом схемы сравнениявторой вход которой соединен с выходомрегистра кода операции, четвертыминформационным входом коммутатора иинформационным входом дешифратора кодов операции, выходы которого и выход схемы сравнения соединены с входами второй группы и первым входомблока микропрограммного управления,с первого по четвертый выходы которого соединен с входом записи регистра кода операции, с выходами стробирования, признаков обнаруженияошибки н правильной записи каналасоответственно, входы третьей группыи вход начальной установки блокамикропрограммного управления соединены с выходами дешифратора лексических единиц и соответствующим разрядом управляющего входа канала.1465894 Составитель В.КуленкаапРедактор М.Келемеш Техред А.Кравчук рректор В,Романенк одписно КНТ СС ытиям 4/5Изобретение относится к вычислительной технике и может быть использовано в быстродействующих системах обработки информации диалогоЭ 5вой разработки и отлацки программ,а также в аппаратных преобразователях и интеграторах языков высокогоуровняЦель изобретения - повышение быстродействия,На Фиг,1 представлена структурнаясхема анализатора; на фиг.2 - то же,канала. синтаксического анализа наВФиг. 3 - то же, блока памяти; на фиг. 4 - 15блок-схема микропрограммного управления каналом синтаксического анализа; на фиг.5 - блок-схема микропрограммного управления устройствомв целом. 20Параллельный анализатор (фиг.1)содержит регистр 1 текущего символа,дешифратор 2 лексических единиц вканале 3 синтаксического анализа,элемент ИЛИ 4 в блоке 5 микропрограм много управления, схемы 6 и 7 сравнения депщфратор 8 полуоснов, регистр 9 текущего символа, дешифратор 10 лексических единиц в канале11 синтаксического анализа.Канал 3 (11) синтаксическогоанализа (Фиг.2) содержит также блок12 микропрограммного управления,дешифратор 13 кода операции, регистр 14 кода операции блоки 15 и3516 элементов ИЛИ, коммутатор 17,схему 18 сравнения, блок 19 памяти деЭ Ушифратор 20 основ.В состав блока 19 памяти (фиг.З)входит группа 21 из трех реверсивных сдвигающих регистров,Регистры 1 и 9 текущего символаиспользуются. для хранения очередныхлексических единиц исходного выражения,Дешифраторы 2 и 10 выделяют из45лексических единиц исходного выражения операнды, операции, скобки,атакже признаки начала и конца частивыражения. При этом отличие в подключении группы выходов дешифратора10 к группе входов признаков лексических единиц канала 11 от подключения группы выходов дешифратора 2 кгруппе входов признаков лексическихединиц канала 3 заключается в томчто выход дешифратора 10 означающийпоступление на вход дешифратора лексической единицы "(" " скоба открывающая, подключается по входу признака лексической единицы)" - скоба закрывающая канала 11, а выходдешифратора 2, означающий поступление на вход дешифратора лексической1 / 1единицы ( - ко входу признака лексиче ской единицы " ) " канала 3 ,Каналы 3 и 1 1 синтаксическогосанализа осуществляют предварительную свертку частей исходного выражения с учетом приоритета операций.Каналы полностью идентичны по составу, назначению элементов и алгоритму Функционирования,Элемент ИЛИ 4 служит для формирования сигнала завершения цикласинтаксического контроля, возвращающего каналы в исходное состояние.Схемы б и 7 сравнения осуществляют сравнение кодов операций, содержащихся в блоках памяти первогои второго каналов синтаксическогоанализа.Дешифратор 8 полуоснов в зависимости от содержания трех старших,разрядов блоков 19 памяти первогои второго каналов формирует признаки,на основании которых блок 5 микропрограммного управления производитсвертку частей выражения.Регистр 14 кода операции используется в канале синтаксического анализа для временного хранения лексических единиц, соответствующих кодамопераций,Коммутатор 17 обеспечивает выборочное подключение в зависимости отсигналов на его управляющих входахк входу записи блока 19 памяти выходов регистра 14 кода операции,блоков 5 или 12 микропрограмного управления или выхода блока памяти второго канала,Группы элементов ИЛИ 15 и 16 реализуют объединение используемыхдля управления коммутатором 17 и бло-ком 19 памяти выходных сигналов блоков12 и 5 микропрограммного управления.Блок 19 памяти " это память с последовательным безадресным принципом записи и чтения, с обеспечениемвозможности доступа для чтения одновременно к трем старшим разрядам.Реверсивные сдвигающие регистры21 блока. 19 памяти реализуют записькодов лексических единиц в старшиеИ разряды, хранение записанной инФормации, поразрядный сдвиг содер1465894 10 15 20 Х 4 Х 5 Х 6 Хт жимого вправо или влево, а также выдачу записанной информации из (И), (И) и И-х разрядов на первый, второй и третий выходы блока памяти.Блок 12 микропрограммного управления управляет работой всех элементов канала.На фиг,4 приведена блок-схема функционирования блока 12, где входные сигналы Х - Х,1, Х, Х 1 формирует дешифратор 2 (для второго канала - дешифратор 10) лексических единиц; Х, Хб - дешифратор 13 кода операции; Хо, Хп - дешифратор 20 основ; Х - схема 18 сравнения; Х - блок 4 элементов ИЛИ.На выходе блока 12 микропрограммного управления формируются сигналы микроопераций Ъ - У 1 .Содержательный смысл входных и выходных сигналов следующий: 1, если лексическая единица исходного выражения есть знак конца части 25 выражения О, в противном случае; 1, если лексическая единица исходного выражения есть открывающая скобка; О, в противном случае; 1, если лексическая единица исходного выражения есть операнд; О, в противном случае; 1, если лексическая единица35 исходного выражения есть низкоприоритетная операция. О, в противном случае; 1, если в регистре кода операции содержится код закрывающей скобки; О, в противном случае; 1, если регистр кода операции очищен; О, в противном случае; если лексическая единица ис" ходного выражения естьвысокоприоритетная операция. О, в противном случае; 1, если в разрядах (И),50 (И) и И регистров 21 блока 19 памяти содержится основа "Р М Г", где 11 Г коду соответству-. ющий операнду, 4 код, соответствующий операции (высоко- илинизкоприоритетной);О, в противном случае; 1, если лексическая единицаисходного выражения естьзакрывающая скобка;О, в противном случае;1, если значение кода, содержащегося в регистре14 кода операции, больше значения кода, содержащегося в (М)-х разрядах регистров 21 блока 19 памяти;О, в противном случае;1, если в разрядах (И),(И) и И блока 19 памяти содержится основа1 11,О, в противном случае;1, если блоком 5 микропрограммного управлениябыла выдана одна из операций 714 - У, означающих завершение цикласинтаксического контроля;О, в противном случае; У У 1, У - микроперации, используемые для формирования кодов лексических единиц на первом входе коммутатора 17;У 14, УВ , У, - микрооперации, используемые для формирования кодов на входе регистра 14 кода операции;Уц - микрооперация, соответствую 11 11 щая коду лексической единицы ) скоба закрывающая ;У 6 - совокупность микроопераций , соответствующая коду низ 11 11 коприорите тной операции типа 1. сложение ;из , У 6 - совокупность микр оопер аций , соответствующая коду высокоприоритетной операции типаХ - умножение ;У , У - совокупность микро операций , соответствующая коду начала11 с 4 Ичасти выраженияУ - микрооперация, соответствую 11щая коду конца части выражения мУ , 7- совокупность микр оопераций , соответствующая коду лек с ической единицы " ( " - скоба открывающая ;У - микроопер ация , соответствующая коду лексической единицы " Г " - операнд . Сигналы микроопераций У, У, У поступают на информационный вход блока 19 памяти через коммутатор 17.5 1465Сигналы микроопераций у , у,У, поступают на информационный входрегистра 14 кода операции,Уд - микрооперация, разрешающаязапись сформированного на информационном входе блока 19 памяти кодав И-е разряды регистров 21;У - микрооперация, разрешающаясдвиг содержимого регистров 21 блокапамяти 19 на один разряд влево;У 6 - микрооперация, разрешающаясдвиг содержимого регистров 2 1 блокапамяти 19 на один разряд вправо;У - микрооперация, разрешающаяочистку регистра 14 кода операции,"У - микрооперация разрешающаязапись сформированного на информационном входе кода в регистр 14 кода операцииФ 20У - микрооперация, разрешающаязапись следующей лексической единицы в регистр 1 (для второго канала - в регистр 9);10 з 11 микрооперации ис 25пользуемые для Формирования адресана управляющем. входе коммутатора 17,указанные микрооперации поступают напервые входы группы 15 элементовИЛИ.Отсутствие сигналов на управляющем входе коммутатора означает подключение информационного входа блока19 памяти через коммутатор 17 к первому выходу блока 12 микропрограммного управления.3570 - микрооперация обеспечиваю"щая переключениеинформационного входаблока 19 памяти через коммутатор17 на выход регистра 14 кода операции (выдача сигнала микрооперацииУр при отсутствии сигнала микрооперации 711 означает подачу на управляющий вход коммутатора кода "1"подключение выхода коммутатора кего второму входу);ф 571 - микрооперация, Формирующаяна входе блока 5 микропрограммногоуправления сигнал Х, (Х 1 - длявторого канала), означающий нормальное завершение предварительнойсвертки части входного выражения вканале); Апгоритм функционирования блока5 микропрограммного управления описан блок-схемой (фиг,5), где входные5 сигнаХ Я Х 13 и Х 1 Хе формируются соответственно первым и вторым каналами синтаксического анализа, Х 1 - Х 1, Хщ - дешифратором 8 полуоснов; Х 0 - первой схемой6 сравнения; Х - второй схемой7 сравненияНа выходе блока 5 микропрограммного управления генерируются сигналы микроопераций Уд , Уцяз 15 У%б 1 У ь 1 Ь фСодержательный смысл перечисленных входных и выходных сигналов следующий: 1, если предварительная свертка части входного выражения в первом (во втором) канале завершенанормально;О, в противном случае; 1, если при предварительной свертке части входного выражения в первом (во втором) канале обнаружена ошибка; О, в противном слуЗО 40 Хд, = 50 71 - микрооперация, Формирующаяна входе блока 5 микропрограммногоуправления сигнал Х 1 (для второгоканала - Х ), означающий ошибочноезавершение предварительной сверткичасти входного выражения в канале. чае;1, если приоритет операции, код которой содержится в (И)-м разряде блока 19 памяти первого канала, больше или равен приоритету операции, код которой содержится воМ-м разряде блока 19 памяти второго канала; О, в противном случае; если приоритет операции, код которой содержится в (М)-мразряде блока 19 памяти второго канала,больше или равен приоритету операции, код,которой содержится вЫ-м разряде блока 19памяти первого канала; О, в противном случае,14658 Содержимое (Я),(Ы) и И-го разрядов блока 19 памяти второго канала Содержимое(И),(И)и И-го разрядов блока19 памятипервого канала Формируемый сигнал 15 20 или или 1 УР, р+хРУмР Нулевые значения входных сигналовХ 4 - Хдз, Х 1 образуются при от,личных от приведенных в таблице содержимых старших трех разрядов блоков 19 памяти первого и второго каналов.ъ 7 (У 7 ) - микрооперация, используемая для Формирования кода лексической единицы "Р" - операнд на третьем входе коммутатора 17 первого40(второго) канала;ЪИ В 4 ) - микрооперация, разреДшающая запись сформированного на информационном входе блока 19 памятипервого (второго) канала хода в 45старшие Ю-е разряды регистров 21У (У ) - микрооперация, разрезшающая сдвиг влево на один разрядсодержимого регистров 21 блока 19памяти первого (второго) канала;УМ (У ) - микрооперация, разре 2шающая сдвиг влево на один разрядсодержимого регистров 2 1 блока 19памяти первого (второго) канала;17 В 3 Ж 7 р ц ) микро- операции, используемые для Формиро. вания адреса на управляющем входе коммутатора 17 первого (второго) канала, указанные микрооперации поУсловия формирования единичныхзначений остальных входных сигналовблока 5 микропрограммного управленияприведены в таблице. 1Примечание. М - кодпроизвольной лексической единицы. 94 8ступают на вторые входы группы 15элементов ИЛИ;У,7 (У 7 ) - микрооперация, обеспе 5чивающая переключение информационного входа блока 19 памяти первого,(второго) канала через коммутатор17 на первый (второй) выход блока5 микропрограммного управления;1У,7, У, (77, У,8 ) - совокупность микроопераций, обеспечивающаяпереключение информационного входаблока 19 памяти первого (второго)канала через коммутатор 17 на третий вход канала;У - микрооперация Формированияпризнака нормального завершенияанализатором цикла синтаксического контроля;Удр - микрооперация формированияпризнака ошибочного завершения анализатором цикла синтаксическогоконтроля.Сигналы микроопераций Уи , Туз,у (у,1, У,1, У) поступают навторые входы группы 16 элементов ИЛИпервого (второго) каналов, выходыэлементов ИЛИ группы 16 подключенык управляющим входам блока 19 памяти.Устройство работает следующимобразом.Исходное выражение перед началомделится внешним устройством в произвольном месте на две примерно равные части. Левая (правая) часть входного выражения справа дополняетсяпризнаком конца Ъ".Правая (вторая) часть выражениядополняется признаком слева.Лексические единицы левой части исходного выражения поступают врегистр 1 текущего символа слева,направо, лексические единицы правойчасти - в регистр 9 текущего символасправа налево, т.е. с конца выражения,После включения устройства блок 550 микропрограммного выражения анализирует входные сигналы нормального завершения свертки части входного выражения в первом канале (Х, ), ошибочного завершения свертки частивходного выражения в первом канале 55(Х, ), нормального завершения свертки во втором канале (Х ), ошибочно 2го завершения свертки во второмйканале (Х, ).1 О 65894 мяти.Если очередная лексическая единица на входе дешифратора 2 естьнизкоприоритетная операция, то наего соответствующем выходе формиЭ 5руется сигнал (Х 4), запускающий вблоке 12 микрооперации формирования (У 5, У 6 ) на информационномвходе регистра 14 кода "+" (110) и40разрешения записи (У) сформированного кода в регистр 14 кодаоперации,Если очередная лексическая единица на входе дешифратора 2 естьвысокоприоритетная операция то на9его соответствующем выходе формируется сигнал (Х ), запускающий в блоке 12 микрооперации формирования(У 14, У , У 6 ) на информационномвходе регистра 14 кода "х" ("111") 50и разрешения записи (У) сформированного кода в регистр 14 кодаоперации.Если очередная лексическая единица на входе дешифратора 2 есть закрывающая скобка, то на его соответствующем выходе формируется сигнал (Х), запускающий в блоке 12микрооперации формирования (Уц ) на 9 14Анализ перечисленных входных сигналов осуществляется циклически блоком 4 микропрограммного управления до тех пор, пока в обоих каналах не будет завершена предварительная свертка частей входного выражения, т,е, до момента, когда выполнится условие истинности выраженияФПеречисленные входные сигналыблока 5 микропрограммного управления формируются блоками 12 микропрограммного управления каналовсинтаксического анализа по завершению предварительной свертки частей исходного выражения,Каналы 3,1 осуществляют предварительную свертку частей входноговыражения полностью идентично, параллельно и независимо друг от друга, поэтому рассмотрим работу только одного иэ них (первого).Блок 12 микропрограммного управления в начале цикла своей работыгенерирует микрооперации очисткирегистра 14 кода операции (У),формирования кода признака началавыражения (У 1, У) и разрешения записи сформированного кода в И-й разряд блока 19 памяти (У 4). На управляющем входе коммутатора 17 сигналы отсутствуют, что соответствует подключению информационного входаблока 19 памяти к первому выходублока 12 микропрограммного управления.На следующем шаге блок 12 начинает обработку очередной лексической единицы.Блок 12 микропрограммного управления выдает микрооперацию разрешения записи (Уц) в регистр 1 текущего символа.На выходе дешифратора 2 лексических единиц формируются признакилексических единиц, являющиеся входными сигналами блока 12 микропрограммного управления (Х, - Х 4, Х,Хв). Если очередная лексическая единица на входе дешифратора 2 есть открывающая скобка, то на его соответствующем выходе Формируется сигнал (Хз), запускающий в блоке 12 5 10 15 20 25 ЗО микропрограммного управления микро- операцию (У), разрешающую сдвиг содержимого регистров 2 1 блока 19 памяти на один разряд влево, тем са-, мым освобождается старший И-й разряд блока памяти для записи в него кода очередной лексической единицы.На следующем шаге блок 12 микропрограммного управления выдает микрооперации (УУ) формирования на информационном входе блока 19 памяти кода "011" - скобка открывающая и У 4 - разрешение записи сформированного кода в И-й разряд блока 19 памяти.Если очередная лексическая единица на входе дешифратора 2 есть операнд, то на его соответствующем выходе формируется сигнал (Х), запускающий в блоке 12 выдачу микро- операции (У), разрешающей сдвиг содержимого блока 19 памяти на один разряд влевоЗатем блоком 12 микропрограммного управления выдаются микрооперации формирования (У) на информационном входе блока 19 памяти кода операнда "Р" ("100") и разрешения записи (У 4) сформированного кода в Ы-й разряд блока 19 паинформационном входе регистра 14 кода ")" ("001") и разрешения записи (У) сформированного кода в регистр 14 кода операции.Если на выходе дешифратора 2, соответствующем поступлению на его вход признака конца выражения ъ 1", формируется сигнал (Х 1), то блок 12 микропрограммного управления выдает микрооперацию признака нормального завершения предварительной свертки части входного выражения в канале (У ). Эта микрооперация, формирующая входной сигнал признака нормального завершения работы первого канала (Хи ) для блока 5 микропрограммного управления, выдается блоком 12 микропрограммного управления в каждом последующем такте до тех пор, пока блок 5 микропрограммного управления не выдаст одну из микроопераций (7 У) признаков нормаль- ного или ошибочного завершения контроля, формирующих входной сигнал (Х ) блока 12 микропрограммного управления, При этом генерация микро- операции У прекращается, и блок 12 микропрограммного управления завершает работу (возвращается в начальное состояние). Если очередной символ входного выражения не является допустимой лексической единицей, то сигналы на выходах дешифратора 2 (Х - Х 4, Х, Х) отсутствуют. При отсутствии входных сигналов признаков лексических единиц (Х, - Х, Х, Х) блок 12 микропрограммного управления выдает микрооперацию признака ошибочного .завершения предварительной сверки части входного выражения исходного выражения в канале (У )указанная микрооперация, формирующая входной сигнал признака ошибочного завершения работы канала (Х,э ) блока 5 микропрограммного управления, выдается блоком 12 микропрограммного управления в каждом последующем такте до тех пор, пока блок 5 микропрограммного управления не выдаст одну из микроопераций (У или 7 ) признаков нормального или ошибочного завершения контроля, формирующих входной сигнал (Хэ) блока 12 микропрограммного управления, При этом генерация микро- операции Т, прекращается,и блок 12 микропрограммного управления завершает работу (возвращается в начальное состояние),5После распознавания очереднойлексической единицы и запоминанияее кода в М-м раэряде блока 19 памяти (коды "Р и(") или в регистре14 кода операции (коды "х", "+" илц")") блок 12 микропрограммного управления переходит на анализ входных сигналов, вырабатываемых схемой18 сравнения (Хо ), дешифратором 13кода операции (Хэ, Х 6) и дешифратором 20 основ (Х, Хц ).Если на выходе схемы 18 сравнения вырабатывается сигнал (Хо )означающих, что код операции, содержащийся в регистре 14 кода операции, имеет большое значение, чемкод операции, содержащийся в (И)-мразряде блока 19 памяти, то этоозначает, что приоритет текущейоперации, код которой записан в 25 регистре 14, выше приоритета предыдущей операции, код которои содержится в (И)-м разряде блока 19 памяти. В этом случае свертка основы.заключающаяся в замене сочетаний 30 кодОВ типа Г"РР + Р или (Р)кодом операнда Р невозможна, Свертка допускается лишь тогда, когдаприоритет операции, следующей за основой, ниже или равен приоритетуоперации, соединяющей два операнда внутри основы.Кроме кодов высокоприоритетной("х") и низкоприоритетной ("+") операций регистр 14 может содержать 40код закрывающей скобки ")" или нулевое значение (после операции очистки).Если на входе блока 12 микропрограммного управления схемой 8. сравнения сформирован сигнал Х, то 45блок 12 генерирует микрооперацию(Уз), разрешающую сдвиг на один разряд влево содержимого регистров 2 1блока 19 памяти. Затем генерируются микрооперации формирования Ж )на управляющем входе коммутатора 11кода "01" переключения его выходана второй вход, в результате чегоинформационный вход блока 19 памяти оказывается соединенным с выходом регистра 14 кода операции, иразрешения записи (У) в блок 19памяти кода, сформированного на егоинформационном входеПосле пеоеза146589414писк содержимого регистра 14 ко аода Если на входе блока 12 микропрооиерации в И-й раэ я, блокР д а 19 памя- . граммного Управления отсутствуетти б,пок 12 мик оп гр про Раммного управ- Формируемый дешифратором 20 основления генерирует микроопе ар цию (У) . сигнал (Х 5)р что означает отсутразрешающую очистк у регистра 14 стние основы типа "РрГ" в5Затем блок 15 микв старшихмикропрограммного уи- трех разрядах б 19равления выполняет действия по ввоилока памяти гдерозначает код произвольной опе аи о работке след ю ей лерау .ц :., ксическои ции то и этом случаевединицы исходного ныр акения. 1 О (И), (И) и Ы-мЕсли на выхо,1 О - , И-и 11-м разрядах блока 19выходе схемы сравнения имяти мог тсигнал Х отс т. Огут содержаться только ос".л ,11 отсУтстнУетр то блок 12 новы типа "Е". Пюбоемикропрограммного управления н.. п анления анали- мое данных разрядов свидетельствэирует наличие входного сигнала (Х ) етэи . ., . б ет 0 наличии Ошибки но Входном Выормируемого дешифратором 13 кодов 15 ражении, В этом лопераций.ии, этом случае на входе блоЕд .о(аспи на входе блокака 12 микропрограммного управленияотсутствует сигнал Х о ми еграммного управления дешифраторомгнал р формируемый13 кодешифратором 20 основ. При этом анакода операции формируется сигнал лиз части входного выражения заве -(Хь)р соответствУющий ОчиЩенномУ Р . Бсостоянию регистра 14, то б . 2О шается. Блок 12 мик оиБ р рограммноговыполняет дейс"1. , то лок 1 вы- Управления вы ает мтвия по ооработке сле- знд икрооперацию приака ошибочного завершения предвадующей лексической единицы исходного выражения.рительной свертки части исходи .ь" ОГОвыражения в .канале (У 1 з ) . УказаннаяПри отсутствии входного сигнала 25 микХла микрооперация, формирующая входнойьр что соответствует непустомусостоянию регистра 14 ко а опесигнал и изн,с р ака ошибочного завершения работы канала (Х, ) блока 5ции блок 12 микрог.рограммного упалока 5 микупРопрограммного упраВления Выдаетн я ачализирует формируемый де- б 1 вшиФратором 20 основ сигнал ( )ся лаком 12 в1 в каждом последующемсоответствующий нЗО такте до тех поаличию В старшихр, пока блок 5 микОпр граммн гО управления не выдасразрядах блока 19 памяти свора- одну из мик очиваемой основыны нида 1.хЕ илиодну из микроопераций У 10 - У при 1 Р 1 РРныс знаков нормального или ошибочногоБ 2лок 1 мик оп огзавершения контроля формируюпр р раммного управ- входной сигнал (Х блрр 1 ихал ( 1 ) лока 12 микронала Хь вы аетии на его входе сиг- п Ого .р 1 аммного управления. При этома 6 выдает последовательность генерация мик о емикроопе рацге е ация микрооиерации Ур, прекращаий, осуществляющих снент- етс б 1я, и лок 1 завершает работку основы, т.е, замену сочетания ко- ПинУгдов об аз .ри наличии В трех старших разряо разующих основур кодом опе- ах блокранда Г". Свертка осдах пока 19 памяти кодов образуюа . вертка осуществляется щих основу типа "(Г) " , ешину апутем выдачи блоком 12 мик оимикроирограм основ формирует сигнал (Х 5)р замного управления микроопераций дваж" 2ды разрешения сдвига на о ин азскающии в локе 1ск микропрограм.,в га на один разряд много управления последонательноствправо содержимого ре,гистров 21 блод н тельностька 19тров ло- , микрооиераций, осуществляющихка памяти (Ув и Ув)р Формирования све тк о исвертку основыБлок " микроиродана. инфсрмационном граммного п авлвходе блока 19( ),памЯти У ) р пОДклюоперации ва ыуправления выдает микроченном к выход б 2у лока . Микропро"- на один раэ я впп ации дважды разрешения сдвигаения через комму- ,- регистров 21 блока 19 памяти (Утатор 1, и разрешения записи сфор- у ) нмированного кода в И-й старш6, Формирования ко а Грд (Уз) на-й старшин раз- инфо мап нр а 1 ионном Входе блока 19 памяПосле выполненныхбти и Разрешения з иного кода в И-й аз я баписи сформированва анализирует входной сигнал (Х )авления сно- ,. Мяти. После этого блок 12 микроформируемый схемой 18 сравнениял 10 , программного пу равления выполняетдействия по вводу и обработкедля определения возможности сверткие .с слеобразовавшегося выражения,дующей лексической е инд ицы исходного выражения,26 В том случае, когда в первом и/или во втором канале свертка части входного выражения завершилась ошибочно, т.е. Истинно значение описывающего состояния входных сигналов блока 5 микропрограммного управления выражения вида Х Х Ч 2, ( й 1 Ъ 15( ( Х(то блок 5 микропрограммного управления выдает микрооперацию признакаошибочного завершения контроля (.2 о ),формирующую на входах блоков 12 мик 35ропрограммного управления первогои второго каналов сигнала завершения синтаксического контроля (Х 2).На этом цикл работы устройства заканчивается,В случае нормального завершенияпредварительной свертки частей вход- .ного выражения в обоих каналах,т,е,на входе блока 5 микропрограммногоуправления сформированы первым (Х,2 )45и вторым (Х(2 ) каналами сигналы нормального завершения предварительнойсвертки, блок 5 микропрограммногоуправления выполняет цикл микроопераций по окончательной свертке час 50тей исходного выражения,Если на входе блока 5 микропрограммного управления отсутствуетформируемый дешифратором 8 сигнал(Х( наличия завершающего выраженияв блоках 19 памяти каналов, то блок555 продолжает окончательную сверткувыражения. В зависимости от содержания старших разрядов блока 19 памяОкончательная свертка входноговыражения производится под управлением блока 5 микропрограммногоуправления, При этом в результате5предварительной свертки частей входного выражения в каналах синтаксического анализа длина анализируемого выражения существенно уменьшена,что обеспечивает погышение быстро Одействия устройства.Блок 5 микропрограммного управления продолжает анализировать формируемые блоками 12 микропрограммного управления обоих каналов признаки нормяльнОГО (Х(у и Х (2 ) и ОшиоочнОГО2(Х(з и Х( ) завершения предваритегьной свертки частей входного выражения до тех пор, пока не завершитсяработа обоих каналов,ти дешифратор 8 формирует признаки полуоснов (Х,( - Х(, Х 2.Если в очередном шаге свертки ня входе блока 5 микропрограммного управления одновременно отсутствуют все формируемые дешифратором 8 признаки полуоснов (Х(. - Хи Х о, то это свидетельствует о наличии Ошибки во входном выражении.В этом случае блок 5 микропрограммного управления выдает микроОпе,ацпю (У 2 э ) сиГняла признака Ошибочного завершения контроля, которая формирует на входах блоков 12м (кропрогряммного упраьления первоГО П ВТОРОГО КацаДОВ СИГНада ЗаВЕРщения синтаксического контроля (Х;,1),1 а этом цикл работы анализатора завесшяетсяУстройство готово к анализу следук(щего входного выражения,Есди в очередном шаге свертки,:я выходе дешифратора 8 полуоснов Фарформируется сигнал (Х(э ), соответствующий наличию в трех старших разрядах блока 19 памяти первого канала одов, образующих основу "ЕхГ"п(и Г+Е , то блок Э микропрограм.(Ного управления анализирует наливчие ЗходНОГО сигналя (Хеь), ФорьЫ=руемого схемой 6 сравнения.Еигнал Х. Формируется схемой 6сряьнепия в том случа, если значение кода, содержащегося ь (-ь( старшем разряде блока 19 памяти второгоканала, больше значения кода, содержащегося в (И)-ы разряде бпокя 19 памяти первоГО канала, В этОмслучае приоритет операции, следующей зя основой типа Е+Р", выше кода Операции, соединяющего операдыосновы, Свертку при этом производить нельзя,При отсутствии на выходе схемы6 соявнения сигнала (Х,(о) блок 5микропрограммного управления выдаетпоследовательность микрооперацпй3осуществля(ощих свертку основы. Выдя(отся микрооперации дважды разрешения сдвига вправо на один разрядсодержимого регистров 21 блока 19памяти первого канала (У и (, )2 ь ( (ьФормирования кода Р на третьем входе коммутатора 17 первого канала(У( ), гереключающего выход коммутатора на его третий вход, тем самым
СмотретьЗаявка
4302078, 13.07.1987
ПРЕДПРИЯТИЕ ПЯ Р-6668
ВОДОПЬЯНОВ ВИТАЛИЙ КОНСТАНТИНОВИЧ, ОРЛОВ ЮРИЙ АЛЕКСЕЕВИЧ, ВАВИЛОВ СЕРГЕЙ НИКОЛАЕВИЧ, ВОЛКОВ ВИТАЛИЙ НИКОЛАЕВИЧ, ЗАЙЦЕВ СЕРГЕЙ ПАВЛОВИЧ
МПК / Метки
МПК: G06F 17/27
Метки: анализатор, параллельный, синтаксический
Опубликовано: 15.03.1989
Код ссылки
<a href="https://patents.su/15-1465894-parallelnyjj-sintaksicheskijj-analizator.html" target="_blank" rel="follow" title="База патентов СССР">Параллельный синтаксический анализатор</a>
Предыдущий патент: Интерполятор
Следующий патент: Развертывающий преобразователь
Случайный патент: Измерительный прибор