SU1238103A1 - Устройство дл лексического анализа программ - Google Patents

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

Info

Publication number
SU1238103A1
SU1238103A1 SU843808768A SU3808768A SU1238103A1 SU 1238103 A1 SU1238103 A1 SU 1238103A1 SU 843808768 A SU843808768 A SU 843808768A SU 3808768 A SU3808768 A SU 3808768A SU 1238103 A1 SU1238103 A1 SU 1238103A1
Authority
SU
USSR - Soviet Union
Prior art keywords
input
output
elements
letter
inputs
Prior art date
Application number
SU843808768A
Other languages
English (en)
Inventor
Сергей Алексеевич Соколов
Михаил Алексеевич Курносов
Сергей Валентинович Савченко
Роман Павеласович Гахов
Андрей Николаевич Николаев
Original Assignee
Харьковское Высшее Военное Командно-Инженерное Училище Ракетных Войск Им.Маршала Советского Союза Крылова Н.И.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Харьковское Высшее Военное Командно-Инженерное Училище Ракетных Войск Им.Маршала Советского Союза Крылова Н.И. filed Critical Харьковское Высшее Военное Командно-Инженерное Училище Ракетных Войск Им.Маршала Советского Союза Крылова Н.И.
Priority to SU843808768A priority Critical patent/SU1238103A1/ru
Application granted granted Critical
Publication of SU1238103A1 publication Critical patent/SU1238103A1/ru

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Изобретение относитс  к вычислительной технике. Целью изобретени   вл етс  расширение функциональных возможностей за счет обеспечени  преобразовани  цепочки терминальных слов программы в цепочку лексем стандартной длины, осуществлени -логического контрол  и обеспечени  режима работы запрос-ответ, в процессе трансл ции. 34t Л С

Description

Устройство содержит блок 1 преобразовани  кода литер в код лексем, регистр 2, дешифратор 3, счетчик А позиций , счетчик 5 литер, триггеры 6 и 7, группы 8 и 9 элементов И, группы 10 элементов ИЛИ, элемен ты И 11-17, элементы ИЛИ 18-22, элемент ИЛИ-НЕ
Изобретение относитс  к вычислительной технике и может быть использовано в вычислительньтх системах с диалоговым режимом отладки и исполне . ни  программ, а также в электронных вычислительных машинах (ЭВМ) со структурно реализованным  зыком программировани .
Цель изобретени  - расширение функциональных возможностей путем обеспечени  преобразовани  цепочки терминальных слов программы в цепочку лексем стандартной длины, осуществлени  логического контрол  и обеспечени  режима работы запрос-ответ в процессе трансл ции.
На Фиг. 1 изображена функциональна  схема предлагаемого устройства; на фиг. 2 - диаграмма работы при анализе первых К литер входного текста (пол  метки); на фиг. 3 - диаграмма работы устройства при анализе пол  оператора; на фиг. 4 - диаграмма работы устройства при анализе пол  операндов; на фиг. 5 - диаграмма работы устройства при анализе коммента риёв в поле операндов.
Устройство содержит блок 1 преобразовани  кода литер в код лексем, регистр 2, дешифратор 3 счетчик 4 позиций, счетчик 5 литер, триггеры 6 и 7, группы 8 и 9 элементов И, группа 10 элементов ИЛИ, элементы И 11- 17, элементы ИЛИ 18-22, элемент ИЖ- НЕ 23, элементы 24-27 задержки, одно вибратор 28, вход 29 ответа, информационный вход 30 устройства, вход 31 выдачи, вход 32 пуска, информационный выход 33 устройства, выход 34 запроса, выход 35 готовности, Ь1ход 36 расхо одени  типа.
1238103
23, элементы 24-27 задержки, одновиб- ратор 28, вход 29 ответа, информационный вход 30, вход 31 вьздачи, вход 32 пуска, информационный вход 33, выход ЗА запроса, выход 35 готовности , выход 36 расхождени  типа. 5 ил.
В процессе лексического анализа программ из отдельных литер (букв, цифр, разделителей) обычно собираютс  простые синтаксические конструкции: идентификаторы, числа, зарезер- вированные слова  зыка, одно- и двух- литерные разделители, которые при дальнейшей обработке рассматриваютс  как неделимые. При этом осуществл етс  подавление всех незначащих литер входного текста.
Однако последующий этап синтаксического анализа с использованием многолитерных лексем, представл ющих собой выделенные из входного
текста значащие литеры терминального слова, значительно усложн етс  и увеличиваетс  врем  анализа. Это объ сн етс  необходимостью политер- ного сравнени  входных лексем с лексемами соответствующих правил порож- даюш,ей грамматики  зыка. Введение кодопреобразовател  и определ емых им св зей позвол ет осуществить анализ одновременно до К литер входной
цепочки и формировать соответствующую (выделенной из данных К литер) лексему стандартной длины на группе его выходов. Яексема имеет фиксированный формат и состоит из следующих
полей: пол  ошибки, пол  типа и пол  значени . В существующих ЭВМ литеры терминальной цепочки программы обычно представл ютс  в пам ти ЭВМ в коде ДКОИ и длина литеры h равна восьми разр дам (байт). Кроме-тогр,
обычно на практике дл  различных  зы- ко1з программировани  выдерживаетс  следующее соотношение:
nimt(l,5-2)n,
где m - разр дность лексемы; п - разр дность литеры.
- 3Большинство существующие систем трансл ции  зыков программировани  предполагает структурирование программы на записи стандартной длины. Это св зано с организацией в современных ЭВМ системного ввода-вывода, при котором записи стандартной длины (обычно 80 байт) буферируютс  и ввод тс  (вывод тс ) более крупными единицами - блоками (240,400,800 и т.д. байт), что повьшает эффективность использовани  оборудовани .
Кроме того, кажда  запись может содержать не более одного оператора  зыка с соответствующими ему меткой и операндами, расположенными в соответствующих позици х. Позиционирование терминальных внутри записи .упрощаетс  и ускор ет этап лексического анализа, так как требует проведени  анализа накопленной цепочки литер и формировани  лексем в строго определенных тактах (по достижении соответствующей позиции записи).
1
Дл  учета позиционировани  терминальных слов в устройстве имеетс  счетчик позиций, соединение выходов которого с входом дешифратора обеспечивает формирование на соответствующих выходах последнего управл ю тих сигналов, инициирующих подачу очередной литеры или стробирование анализа лексической конструкции кодо , преобразователем.
В устройстве осуществл етс  под- счет числа литер терминального слова и ,после окончани  его анализа и выдачи лексемы соответствующего типа производитс  последовательна  выдача литер исходного слова дл  занесени  в соответствующую временную таблицу.
Устройство логично сопр гать не - посредственно с пам тью дл  считьшани  литер входного текста и записи Литер соответствующих лексем во вре- менные таблицы, а с другой стороны - с устройством синтаксического анализа дл  выдачи ему сформированных литер . В этом случае процессор ЭВМ освобождаетс  от анализа текст4)вой информации (программы), что noBbmiaer эффективность использовани  системы в целом.
В целом устройство позвол ет осуществл ть преобразование входного текста программы в цепочку лексем стандартной длины с одновременным подавлением незначащих литер (про
10
15
20
25
-
35 0
5
238103.4
белов, комментариев, специальных литер ) ; осуществл ть выдачу литер лексем идентификатор и константа с целью формировани  временных таблиц, 5 используемых на последующих этапах трансл ции; осуществл ть лексический контроль входных терминальных слов, формиру  в случае недопустимой конструкции сигнал ощибки, устанавливающий бит ошибки в соответствующем поле лексем в единичное состо ние; осуществл ть процесс анализа в режиме запрос-ответ, взаимодейству  с дру- .гими блоками трансл тора.
Блок 1 предназначен дл  распознавани  литер входного текста программы , формировани  (в зависимости от их значени  и состо ни  устройства) ., кода соответствующей лексемы и инициировани  соответствующих сигналов признаков в процессе анализа. Работа блока 1 сводитс  к дешифрации комбинации входных кодов литер и управл ющего унитарного кода, шифрации кода лексемы по ним и выдачи соответствующих сигналов. Поэтому он представл ет собой комбинационную схему с пам тью, котора  может быть синтезирована дл  конкретного  зыка (определенного входного алфавита) одним из известных методов.
Регистр 2 предназначен дл  приема и хранени  до К литер входного текста программы и может быть собран на регистрах сдвига параллельного г или последовательного действи . Регистр 2 работает по принципу магазина: очередна  литера заноситс  в вершину стека и при этом ранее (прин тые литеры сдвигаютс  на одну позицию вниз под действием управл ющего сигнала на первом входе сдвига} при установке единичного сигнала на другом входе литеры в стеке сдвигаютс  на одну позици(о вверх.
Дешифратор 3 и счетчик 4 позиций предназначены дл  отслеживани  позиций обрабатываемой записи и инициировани  соответствующих сигналов на выходах дешифратора 3, которые обеспечивают выполнение микроопераций в устройстве.
0
Счетчик 5 литер предназначен дп  отслеживани  состо ни  регистра 2 (числа литер в нем) и управлени  совместно с триггером 7, элементами И 13-15, элементом ИЛИ 22, элементом ИПИ-НЕ 23 и элементами 24 к 25 задёржки , процессом последовательной выдачи литер из регистра 2 иа вход 3 :устройства в соответствующих тактах его работы.
Триггер 6 предназначен дл  фиксировани  очередного такта работы устройства и формировани  сигнала Запрос на выходе 34 устройства, инициирующего подачу очередной литеры входного текста в конце соответствующего такта устройства.
Группы 8 и 9 элементов И предназначены дл  коммутации соответственно лексемы и соответствующих ей литер через группу 10 элементов ИЛИ на выход 33 устройства в соответствующих такта его работы. Остальные элементы И, ИЛИ и задержки предназначены дл  разнесени  во времени несовместимых микроопераций, реализуемых в течение . одного такта и в различных тактах работы устройства.
Принцип работы устройства основан на том, что при лексическом анализе необходимо преобразовать входной (терминальный) текст программы к внутреннему (нетерминальному) представлению , в котором терминальные .слова различной длины преобразуютс  в лексемы стандартной длины. Цепочка лексем, как правило, короче терминальной цепочки литер, так как во . врем  лексического анализа осущест- вл етр  пропуск комментариев и про- белов, число которых может быть сравнимо и больше числа значащих литер. Это упрощает и ускор ет последующий этап синтаксического анализа программ.
Терминальные слова и соответствующие им лексемы прин то подраздел ть на следующие типы: идентификатор; оператор (зарезервированное слово); константа (число); разделитель (служебный символ).
В устройстве допускаютс  п ть типов терминальных конструкций ввиду того, что тип идентификатор подраздел етс  на два типа: идентифи
катор - метка (далее просто - метка ) и идентификатор, под которым понимаетс  метка перехода в позиции операндов входной записи или переменна  - им  соответствующего операнда. Данное разделение позвол ет упростить этап формировани  соответствующих временных таблиц и определение
5
s 0
5 0
5
5
ошибок в программе, например, таких как дублирование меток.
Предполагаетс , что литеры терминальной цепочки представлены в коде ДКОИ и поступают в начале соответствующих рабочих тактов на вход 30, устройства. Одновременно поступает идентифицирующий начало очередного такта сигнал Ответ на вход 29 устройства . .
Формируема  блоком I лексема содержит три пол : поле ошибки (один разр д), поле типа (три разр да) и поле значени  (шу разр дов), так что обща  длина лексемы m 5 п.
В общем случае в поле значени  указываетс  номер (смещение) соответствующего лексеме терминального слова во временной таблице, соответствующей типу лексемы. Поэтому конкретное значение определ етс  числом операторов конкретного  зыка или числом допустимых отличных один от другого идентификаторов или констант , встречающихс  в одной программе, и заранее определ етс  при построении трансл тора конкретного  зыка.
На информационный вход 30 устройства в соответствующих тактах его работы последовательно подаютс  литеры входной записи (цепочки). При этом накладьгааютс  следующие ограничени  на позиционирование терминальных слов внутри записи. Кажда  из позиций от 1 - К может содержать значащую литеру метки.или литеру типа Ц - пробел. Позиции (К+1) - (К+Е) могут содержать значащие литеры оператора входного  зыка или с литер LJ ( ). Позиции (K+E+t) - (L-3) могут содержать значащие литеры идентификаторов или констант и специальных разделителей (+,-,f и тону подобное), которые используютс  при записи выражений  зыка, меток перехода, ключевых параметров оператора. Число литер в каждом из терминальных слОв данного пол  не должно превышать К-1, при этом L (5-10)К. После каждого терминального слова должен следовать специальный одно- или двухлитерный разделитель из числа допустимых в  зыке или литера .Допустимое число терминальных слов в данном поле зависит от конкретного  зыка программировани  , а пор док их следовани 
определ етс  синтаксисом  зыка и провер етс  на этапе синтаксического анализа, поэтому здесь конкретные ограничени  не накладываютс  с целью сохранени  обпщости. Кроме того, с любого места позиции после (K+f+1) до (L-3) включительно может размещатьс  комментарий, которому должен предшествовать (и заканчивать) специальный разделитель (например ).
Позиции с L-2 по L обычно предназначены дл  указани  номера записи (перфокарты) и используютс  при системном вводе-выводе. Поэтому в .устройстве анализ литер этих позиций не определ етс . Согласно указанному счетчик 4 позиций имеет L состо ний. Исходным дл  него  вл етс  нулевое состо ние. С поступлением первой литеры на информационный вход 30 устройства состо ние счетчика 4 увеличиваетс  на единицу, так что первой литере соответствует единичное состо ние счетчика 4, i-й литере соответствует i-e состо ние, а L-ой литере (последней в записи) соответствует нулевое состо ние счетчика 4, которое в то же врем   вл етс  L-ым по счету. Поэтому с поступлением первой и последующей литер очередной записи счетчик 4 вновь последовательно проходит состо ни  с первого По L-e (нулевое), т.е. счетчик 4  вл етс  циклическим. Множество состо ний устройства однозначно определ етс  уровнем записи, (состо нием счетчика 4 позиций), которьй совместно с литерами входного текста данного уровн  определ ет переходы из текущего состо ни  в очередное и выходные воздействи  устройства..
Работа устройства рассматриваетс  на основе анализа его функционировани  в каждом из подмножеств множества состо ний (каждое из подмножеств состо ний соответствует уровню входной цепочки литер, иначе типам йолей указанных позиций).
В исходном состо нии регистр 2, счетчик 4 позиций, счетчик 5 литер и триггер 7 наход тс  а нулевом состо нии , а иа вход 32 пуска поступает единичный сигнал который через элемент 18 ИЛИ устанавлива ет триггер 6 в единичное состо ние. При этом на выходе 34 присутствует едиыич ый сиР- нал Запрос, свидетельствующий о тотовности устройства к приему и анализу литера входной цепочки. Сигнал Запрос вызывает подачу от внешнего 5 .устройства (не показано) единичного сигнала Ответ на в-ход 29 и литеру входной записи на информационный вход 30 устройства. Единичный сигнал на входе 32 при этом снимаетс . Сиг- 10 нат Ответ устанавливает триггер 6 в нулевое состо ние, обеспечива  сн тие сигнала Запрос. При этом единичный сигнал с нулевого выхода триггера 6 переводит счетчик 4 в единич- 15 ное состо ние и одновременно обеспечивает занесение литеры в регистр 2 (при этом ииформаци  из первой  чейки заноситс  во вторую, из второй в третью и т.д., а поступивша  лиТера 20 заноситс  в освобожденную первую  чейку - вершину стека), Затем с задержкой на элементе 27 данный Сигнал переводит счетЧик 5 в единичное состо ние (в регистре 2 находитс  5 одна - значаща  литера входной цепочки) и стробирует анализ текущего состо ни  счетчика 4 дешифратором 3, на первом выходе которого формируетс  единичный сигнал. Данньй 0 сигнал устанавливает триггер 6 в
единичное состо ние. Прием последующих литер входной цепочки осуптест- вл етс  аналогично, поэтому далее подробно не рассматриваетс . Указан- - на  последовательность действи  отражена на диаграмме работы устройства (см. фиг. 2,1 такт). При этом предполагаетс , что единичный сигнал на входе 32 устройства имеет им- 0 пульсный характер и поступает в начале работы устройства. В этом случае данный сигнал одновременно с установкой единичного состо ни  триггера 6 вызывает установку нулевого состо - ни  счетчиков 4 и 5, регистра 2 и триггера 7 (цепи обнулени  на фиг. 1 опущены).
Рассматриваетс  работа устройства в Соответствии с подмножествами его
состо ний. I
Подмножество состо ний l:l C;f4J л К. В каждом такте после приема очередной литеры в регистр 2 и установки соответствующего состо ни  в счетчике 4 вырабатьшаетс  единичный сигнал на первом выходе дешифратора 3, овеспечи19ающий через элемент ШШ 18 устаиовку т иггера 6 в единичное .состо ние и формирование сигнала Запрос на выходе ЗА устройства , который инициирует подачу очередной литеры на информационный вход 30 устройства. Одновременно унитарны код 10000 с первого по п тый выходов дешифратора 3 осуществл ет блокировк анализа литер блоком 1. Данный про- цесс продолжаетс  до приема К-1 ли- теры цепочки.
Подмножество состо ний .2: . В данном случае в регистре 2 находитс  К-1 литера пол  метки и в верх нк о  чейку в данном такте заноситс  литера U или некоторьтй специальный разделитель. При состо нии счетчика- вырабатываетс  единичный сигнал на втором выходе дешифрато- тора 3. Унитарный код 01000 с выхо- дов дешифратора 3 инициирует анализ литер, поступающих с информационных выходов pferHCTpa 2 на одноименные информационные .входы блока 1, причем возможны следующие ситуации.
Ситуаци  2q (см. фиг. 2с|, такты К-2К). На выходах с второго по К-й регистра 2 установлены значащие литеры метки. Тогда на информациочг- ном выходе блока 1 формируетс  соответствующа  метке лексема длины т (разр дов) и формируетс  единичньш сигнал Готово на выходе 35 устрой- CTJBa, который удерживаетс  до момента сн ти  унитарного кода 01000 с- разрешающие входов блока 1. Данный . сигнал инициирует поступление от внешнего устройства (например, блока управлени  оперативной пам тью, на фиг. 1 не показан) последовательное- ти единичных импульсов на вход 31 устройства в течение времени действи  сигнала Готово. Первый импульс через элемент И 11, открытый едииичнь м сигналом с нулевого выхода триггера 7, разрешает вьщачу лексемы через группу элементов И 8 и ИЛИ 10 на информационньш выход 33 устройства . Данный импульс через элемент И 24 и элемент И 15, открытый эле- ментЯЛИ 21 единичным сигналом с второго выхода дешифратора 3 и единичным сигналом с выхода признака блока 1 (данный сигнал находитс  в единичном состо нии при наличии ком- бинаций 01000 на разрешающих входах блока 1), устанавливает триггер 7 в единичное состо ние.
5 0 5
5
0
При. по влении сигнала на единичном выходе триггера 7 и, соответственно , на входе элемента И 13 на выходе 3.1 уже присутствует нулевой { сигнал, так что первый импульс череа данный элемент не проходит. Второй импульс через элемент 13 И разрешает выдачу литеры, наход щейс  в верщине регистра 2 через группу элементов И 9 и ИЛИ 10 на выход 33 устройства. Одновременно данный импульс через элемент ИЛИ 20 уменьшает счетчик 5 на единицу. Через врем  задержки на элементе 25 данный импульс через элемент ИЛИ 22 инициирует сдвиг литер в регистре 2 на одну позицию Вверх, устанавливаетс  (К-1)-а  литера. Одновременно блокируетс  прохождение данного импульса через элемент И 14, который закрыт нулевьп сигналом с выхода элемента ИЛИ-НЁ 23.(состо ние счетчика 4 отлично от нул , т.е. не все литеры метки выданы из регистра 2) . С приходом К-го импульса на вход 31 (фиг. 2а, 2k-TaKT) на выход 33 устро.йства выдаетс  последн   литера метки (литеры выдаютс  в пор дке , обратном пор дку поступлени  в регистр 2, аналогично указанному). В данном также счетчик 5 имеет нулевое состо ние и на выходе элемента ИЛИ-НЕ 23 формируетс  единичный сигнал , разрешающий прохождение импульса с входа 31 через элемент И 14. Данный импульс устанавливает триггер 7 в исходное состо ние и триггер 6 через элемент ИЛИ 18 в единичное состо ние , обеспечива  формирование сигнала Запрос на выходе 34 устрой- ства. Таким образом, в данном-под- множестве состо ний осуществл етс  вьщача дл  записи в оперативную пам ть сформированной лексемы метки и последующа  вьщача (такты К+ - 2К) соответствуюш их лексеме терминальных литер исходной метки дл  записи.в соответствующую временную таблицу. После выдачи последней -литеры осуществл етс  запрос на подачу очередных литер входной цепочки.
Ситуаци  2 (см. фиг. 2S, К-й такт) . На; выходах регистра 2 установлены литеры U т.е. в дайной записи в поле метки метка отсутствует. Формируетс  единичный сигнал на выходе блока 1, который через элемент ИЛИ 18 устанавливает триггер 6 в единичное состо ние и соответственно формирует сигнал Запрос на выходе 34 устройства (содержимое пол  метки с 1 по К позиции включительно игно- рируетс ) .
Подмножество состо ний 3:К C 4jiK+ + f. В каждом тйкте после приема очередной литеры в регистр 2 вырабатываетс  единичный сигнал на Третьем выходе дешифратора 3, который обеспечивает блокировку срабатывани  6jjo- ка 1 и через элемент ИЛИ 18 обеспечивает установку триггера .6 в единично состо ние..Единичный сигнал Запрос инициирует подачу очередной литеры пол  оператора в устройство 0ез анализа уже поступивших до приема литер
.данного пол  (см. фиг. За) такты ()-(Кле-1 -1).
.Подмножество состо ний 4: -К+. После занесени  последней литеры пол  оператора в вершину регистра 2 вырабатываетс  единичный сигнал
.на четвертом выходе дешифратора 3, инициирующий: анализ литер пол  оператора блоком 1 (обычно X К) , причем возможны следующие ситуации.
Ситуаци   АО (см. фиг. 3, т акт С). ,На информационных входах блока 1 установлены значащие литеры оператора , тогда на информационном выходе блока 1 формируетс  соответствунипа  оператору лексема, единичный сигнал Готово на вьпсоде 35 устройства и нулевой сигнал на выходе признака блока 1. Сигнал Готово инициируе.т поступление импульса на вход 31 устройства , который стробирует выдачу лексемы на выход 33 устройства (ана- логично ситуации 2а). Прохождение данного импульса через элемент И 15 блокировано нулевьми сигналами второго и п того выходов дешифр атора 3 через элемент ИЛИ 21 и нулевьм сигна- лом с соответствующего выхода блока 1. Следовательно, выдача литер пол  оператора из регистра 2 не. осущест- вл етс . Это объ сн етс  тем, что в поле значени  сформированной лексе мы .устанавливаетс  номер (смещение) данного оператора в Соответствующей посто нной таблице (таблицы операторов и разделителей  зыка формируютс  при генерации трансл тора, посто нно наход тс  в бперативной пам ти ив процессе лексического анализа формируютс ) , в которой терминально сфор
5
0 5
0
5
мировано представление данного опера тора. Одновременно с инициированием лексемы импульс через элеменФ И 12, открытый единичным сигналом с четвертого выхода дешифратора 3, через элемент И 17 устанавливает триггер 6 в единичное состо ние, обеспечива  формирование сигнала Запрос на выходе 24 устройства, и одновременно через элемент ИЛИ 19 устанавливает регистр 2 и счетчик 5 литер в нулевое состо ние, подготавлива  к приему и . аналиау очередных литер входной цепочки .
Ситуаци  48 (см. фиг. 3S, такт С ). На информационных входах блока 1 установлены литеры Ц т.е. в данной записи оператор отсутствует. В этом случае формируетс  единичный сигнал на выходе блока I, который через элемент ИЛИ 18 обеспечивает установку триггера 6 в единичное состо ние и формирование сигнала Запрос (содержимое пол  записи с К+1 по К+ 2 позицию включительно игнорируетс ) .
Подмножество состо ний 5: К + + 4 L-2. .
После приема (К+2+1)-ой литерь1 входной цепочки (см. фиг. 4, L -и такт) формируетс  единичный сигнал на п том вьпсоде дешифратора 3, кото- рый инициирует анализ литер блоком 1 . При этом возможны спецующ е ситуации.
Ситуаци  5д| (см. фиг. 4). Если в результате анализа поступившей в регистр 2 цепочки литер на выходе 36 не по вл етс  единичный сигнал, импульс , сформированный по переднему фронту сигнала одновибратором 28 через элемент 26 задержки и через элемент И 16, открытый нулевым сигналом с выхода 35, устанавливает триггер 6 в единичное состо ние. Формируетс  сигнал Запрос на выходе 34 устройства, инициирующий поДачу очередной литеры в устройство. Данна  ситуаци   вл етс  характерной при анализе пол  операндов, в котором встречаютс  идентификаторы, константы и/ или специальные одно- и/или двулитерные разделители. В этом слу чае анализ поступившей цепочки литер в каждом такте работы устройства не приводит к формированию единичного сигнала Расхождение Типа (РТ) на выходе 36 устройства, так как поступившие , литеры  влтотс  Литерами
одного типа. Если в регистре 2 иа- ходитс  допустима  лексическа  конструкци  (в такте L +К-1) и считанна  в текущем такте (см. фиг. 4, такт L +K) литера отлична по своему типу от ранее прин тых литер (например, в регистре 2 находитс  К-1 литера идентификатора и прин та литера + или подобна ; данный случай рассмот- рен на диаграмме фиг. 4), то на выходе 36 устройства формируетс  единичный сигнал, обеспечива  фиксацию внешним устройством требовани  повторной подачи последней литеры в следующем такте по сигналу .Запрос. Одновременно сигнал РТ обеспечивает уменьшение состо ни  счетчиков 4 и 5 на единицу и сдвиг литер в регистр;,
2 на одну позицию вверх (литера/ вы- звавша  расхождениее типа, выталкиваетс  из вершины стека, и там остаютс  литеры допустимой лексической конструкции). После устранени  расхождени  типа на выходе 36 устанавли ваетс  нулевой сигнал и формируетс  сигнал Готово на выходе 35 устройства , который .инициирует подачу последовательности импульсов от внешнег устройства на вход 31 устройства дл  считывани  сформированной лексемы и соответствующих ей терминальных литер иэ регистра 2, Одновременно единичный сигнал Готойо поступает на инверсный вход элемента И 16, блоки- рун прохождение импульса от одновибI - .
ратора 28. Первый импульс на входе 31 стробирует выдачу лексемы на выхо 33 устройства (аналогично ситуации 2а; см. фиг. 4, такт L -«-К) , Если тип сформированной лексемы Идентификатор или Константа, то на выходе блока 1 присутствует единичный Сигнал, который совместно с единич- ,ным сигналом с п того выхода дешиф- ратора 3 открывает И 15. Импульс 2 через элемент 24 задержки устанавливает триггер 7 в единичное состо ние. Второй и последующие импульсы с входа 31 через элемент И 13 инициируют выдачу литер, соответ- ствукщих сформированной лексеме, внешнему, устройству дл  формировани  соответствзпощих временных таблиц (аналогично ситуации 2в; см. фиг. 4,
такт L +K - L +2K-I), Наличие единичного сигнала на выходе блока 1 обеспечивает блокировку прохождени  ийпульсов с Входа 31 через элемент И 17 и установку триггера 6 в единич иое состо ние. Если тип сформированной лексемы Разделитель, то на выходе блока 1 установлен нулевой сигнал , которьтй поддерживает элемент И 15 в закрытом состо нии, так что прохождение импульсов с входа 31 через данный элемент блокируетс  (вьщача литер разделител  из регистра 2 не осуществл етс , так как формирование таблицы разделителей во врем  трансл ции не происходит). В данном слунае импульс с входа 31 одновременно со стробированием выдачи лексемы, через элемент И 17, открытый по инверсному входу нулевым сигналом с выхода блока 1, устанавливает триггер 6 в единичное состо ние и через элемент ИЛИ 19 устанавливает регистр 2 и счетчик 5 в нулевое состо ние , подготавлива  к приему и ,анализу последующих конструкций записи .
Ситуаци  5S (см. фиг. 5). В какой-либо позиции после, ()-й может встретитьс  комментарий, который начинаетс  служебным символом используетс  лишь дл  этой цели и им заканчиваетс . После приема символа в регистр 2 унитарный код 00001 с выходов дешифратора 3 инициирует его анализ блоком 1. Импульс с выход одновибратора 28 через элемент И 16 и далее через элемент ИЛИ 18 устанавливает триггер 6 в единичное состо ние , обеспечива  формирование сигнала Запрос , на выходе 34 устройства . Процесс считывани  литер продолжаетс  аналогичным образом до тех пор, пока не считан закрьгаакщий символ , Считывание второй литеры приводит к формированию единичного сигнала на выходе первого признака блока 1. Данный сигнал через элемент ИЛИ 19 обеспечивает установку регистра 2 и счетчика 5 в нулевое состо - ние (литеры комментари  игнорир тот- с ). :Единичный импульс с выхода одно- вибратора 28 через элемент 16 И и через элемент ИЛИ 18 обеспечивает уста новку триггера 6 в единичное состо ние (формируетс  запрос на подачу очередной литеры).
Ситуаци  58 (аналогична ситуаци м 2 и 45, см. фиг. 2S или фиг. 35).
Если.в какой-либо позиции после (К+)-й встречаютс  литеры Lj и при зтом регистр 2 пуст, то анализ литеры Ц приводит к формированию еди- ничного сигнала на втором выходе признака блока 1. Данный сигнал через элемент ИЛИ 18 устанавливает триггер 6 в единичное состо ние, обеспечива  формирование запроса на подачу очерёдных литер входной цепочки (пробелы игнорируютс ).
Подмножество состо ний 6. Последовательно считываютс  литеры (Ь-2)-й; а-1)-й и L-й позиции за- писи. При этом L-й позиции записи соответствует нулевое состо ние счетчика 4 позиций, т.е. после достиже- .ки  максимального (L-l)-ro состо ни  счетчик 4 автоматически перехо- дит в нулевое состо ние. Данные состо ни  счетчика 4 позиций привод т к формированию единичного сигнала на третьем выходе дешифратора 3, обеспечивающего установку запроса на под.- чу очередной литеры записи и блокир ку блока 1 (аналогично подмножеству состо ний 1), т.е. литеры номера записи игнорируютс  при лексическом анализе. После анализа L-й литеры данной записи поступает перва  литера следующей, и работа устройства происходит аналогично. При отсутствии готовых к анализу записей (программы ) устройство может йеопределен- но долго находитс  в состо нии ожидани : на выходе 34 устройства присутствует единичный сигнал Запрос и схемы устройства наход тс  в исходном состо нии.
Таким образом, предлагаемое устройство обеспечивает преобразова- ние входной цепочки терминальных литер в цепочку лексем, что свиде- тельствует о вЫполненки основных . .функций лексического анализа.
Формула и 3 о б р е те ки 
Устройство дл  лексического ана- лиза программ, содержащее регистр, информационный вход которого  вл етс  инфбрмагщонньгм входом устройства, два триггера четыре элемента И, первый элемент ИЛИ, дешифратор две группы элементов И, первые входы которых соединены с первым еьскодом ре- гнстра, а выходы - подключены к йервым входам группы элементов МШ, вторые входы группы элементов ИЛИ соединены соответственно с выходами элементов И второй группы, выход первого элемента И соединен с первьп входом второго элемента И и с первыми входами элементов И второй группы выход второго элемента И соединен с первым входом первого элемента ИЛИ, выход третьего элемента И соединен с вторыми -входами элементов И первой группы, выход четвертого элемента И соединен с вторым входом первого элемента ИЛИ, отличающеес  тем, что, с целью расширени  функциональных возможностей за счет обеспечени  преобразовани  цепочки терминальных слов программы в цепочку лексем стандартной длины, осуществлени  логического контрол  и обеспечени  режима -работы запрос-ответ в процессе трансл ции, в него введены счетчик позиций, счетчик литер, элементы задержки элементы И, ИЛИ, элемент Ш1И-НЕ и блок преобразовани  кода литер в код лексем, информационны выход которого соединен с вторыми входами элементов И второй группы, выходы разр дов счетчика лит..;р подключены соответственно к входам элемента ИЛИ-НЕ, выход которого соединен с первым входом четвертого элемента И, вход пуска устройства соединен с третьим входом первого элемента ИЛИ, выход которого соединен с единичным входом первого триггера, единичный выход которого  вл етс  выходом запроса устройства, вход ответа устройства соединен с нулевым входом первого триггера, нулевой вы- ход которого соединён с первым сдвигающим входом регистра, с суммирующим входом счетчика позиций и через первый элемент задержки - с суммирующим входом счетчика литер и разрешающим входом дешифратора, вход выдачи устройства соединен с первыми входами первого и третьего элементов И и через второй элемент задержки - с первьот входом п того элемента И, выход которого соединен с единичным входом второго триггера, единичньй вбгход которого соединен с вторым входом третьего элемента И, нулевой выход соединен с вторьм входом первого элемента И j вьжоД третьего элемента И соединен с первым входом второго элемента ИЛИ и через третий
элемент задержки - с первым входом третьего элемента ИЛИ и с вторым входом четвертого элемента И, выход которого соединен с нулевым входом вто рого триггера, выход счетчика позиций соединен с информационньм входом дешифратора, первый выход которого соединен с четвертым входом первого элемента ИЛИ и с первым разрешающим входом блока преобразовани  кода литер в код лексем, второй выход дешифратора соединен с первым входом четвертого элемента ИЛИ и с вторым разрешающим входом блока преобразо- вани  кода литер в код лексем, третий выход дешифратора соединен с п тым входом первого элемента ИЛИ и с третьим разрешающим входом блока пре образов ани  кода литер в код лексем, четвертый вьЬсод дешифратора соединен с .вторым входом второго элемента И и с четвертым разрешающим входом блока преобразовани  кода литер в код лексем, п тый разрешающий вход которого, второй вход четвертого элемента ИЛИ и вход одновибратора соединены с п тым выходом дещифрато- ра, выход одновибратора через четвертый элемент задержки соединен с пер- вым входом шестого элемента И, выход которого соединен с шестым входом первого элемента ИЛИ, выход четвертого злемента ИЛИ соединен с вторым входом п того элемента И, выход первого элемента И соединен с первым входом седьмого элемента И, выход которого соединен с седьмым входом первого элемента ИЛИ и с первым входом п того элемента ИЛИ, выход второго элемента И соединен с вторым входом п того элемента ИЛИ, выход которого соединен с установочными входами счетчика литер и регистра, информационные выходы которого, начина  с первого , соединены соответственно с информационными входами блока преобразовани  кода литер в код лексем, выход первого признака которого соединен с третьим входом п того элемента ИЛИ, выход, второго признака соединен с четвертым входом п того элемента ИЛИ и с восьмым входом первого элемента ИЛИ, выход третьего признака соединен с выходом готовности устройства и с вторым (инверсным) входом шестого элемента И, четвертый выход признака соединен с выходом расхождени  типа устройства, с вычитающим вкрдом счетчика позиции и с вторыми входами второго и третьего элементов ИЛИ, выход второго элемента ИЛИ соединен с вычитающим входом счетчика литер, выход п того признака блока преобразовани  кода литер, в код лексем соединен с вторым (инверсным) входом седьмого элемента И и третьим входом п того элемента И, выход третьего элемента ИЛИ соединен с вторым сдвигаощим вхо- ,дом регистра, выходы элементов ИЛИ .группы  вл ютс  информационным выходом устройства.
1(3}.
.,
i mottm
t/noK/n
J4
33
tpue.4J4
фаг. 5
Редактор С. Лисина
Заказ 3294/51 .Тираж 671 . : Подписное
ВНИИПИ Государственного комитета СССР
по делам изобретений и открытий 113035, Москва, Ж-35, Раушска  наб., д. 4/5
Производственно-полиграфическое предпри тие, г. Ужгород, ул. Проектна , 4
Составитель А. Жеренов .
Техред Н.Бонкало Корректор Л.Патай

Claims (1)

  1. Формула изобретения
    Устройство для лексического ана- . 50 лиза программ, содержащее регистр, информационный вход которого является информационным входом устройства, два триггера, четыре элемента Й, первый элемент ИЛИ, дешифратор, две 55 группы элементов И, первые входы которых соединены с первым выходом регистра, а выходы -подключены к Пер вым входам группы элементов ИЛИ, вторые входы группы элементов ИЛИ соединены соответственно с выходами элементов И второй группы, выход первого элемента И соединен с первым входом второго элемента И и с первыми входами элементов И второй группы, выход второго элемента И соединен с первым входом первого элемента ИЛИ, выход третьего элемента И соединен с вторыми -входами элементов И первой группы, выход четвертого элемента И соедицен с вторым входом первого элемента ИЛИ, отличающееся тем, что, с целью расширения функциональных возможностей за счет обеспечения преобразования цепочки терминальных слов программы в цепочку лексем стандартной длины, осуществления логического контроля и обеспечения режима работы запрос-ответ в процессе трансляции, в него введены счетчик позиций, счетчик литер, элементы задержки элементы И, ИЛИ, элемент ИЛИ-HE и блок преобразования кода литер в код лексем, информационный выход которого соединен с вторыми входами элементов И второй группы, выходы разрядов счетчика литер подключены соответственно к входам элемента ИЛИ-HE, выход которого соединен с первым входом четвертого элемента И, вход пуска устройства соединен с третьим входом первого элемента ИЛИ, выход которого соединен с единичным входом первого триггера, единичный выход которого является выходом запроса устройства, вход ответа устройства соединен с нулевым входом первого триггера, нулевой выход которого соединён с первым сдвигающим входом регистра, с суммирующим входом счетчика позиций и через первый элемент задержки - с суммирующим входом счетчика литер и разрешающим входом дешифратора, вход выдачи устройства соединен с первыми входами первого и третьего элементов И и через второй элемент задержки с первым входом пятого элемента И, выход которого соединен с единичным входом второго триггера, единичный выход которого соединен с вторым входом третьего элемента И,'нулевой выход соединен с вторьм входом первого элемента И, выход третьего элемента И соединен с первым входом второго элемента ИЛИ и через третий . 18 элемент задержки - с первым входом третьего элемента ИЛИ и с вторым входом четвертого элемента И, выход· которого соединен с нулевым входом второго триггера, выход счетчика позиций соединен с информационным входом дешифратора, первый выход которого соединен с четвертым входом первого элемента ИЛИ и с первым разрешающим входом блока преобразования кода литер в код лексем, второй выход дешифратора соединен с первым входом четвертого элемента ИЛИ и с вторым разрешающим входом блока преобразования кода литер в код лексем, третий выход дешифратора соединен с пятым входом первого элемента ИЛИ и с третьим разрешающим входом блока преобразования кода литер в код лексем, четвертый выход дешифратора соединен ' с вторым входом второго элемента И и с четвертым разрешающим входом блока преобразования кода литер в код лексем, пятый разрешающий вход которого, второй вход четвертого элемента ИЛИ и вход одновибратора соединены с пятым выходом дешифратора, выход одновибратора через четвертый элемент задержки соединен с первым входом шестого элемента И, выход которого соединен с шестым входом первого элемента ИЛИ, выход четвертого элемента ИЛИ соединен с вторым входом пятого элемента И, выход первого элемента И соединен с первым входом седьмого элемента И, выход которого соединен с седьмым входом первого элемента ИЛИ и с первым входом пятого элемента ИЛИ, выход второго элемента И соединен с вторым входом пятого элемента ИЛИ, выход которого соединен с установочными входами счетчика литер и регистра, информационные выходы которого, начиная с пер10 вого, соединены соответственно с информационными входами блока преобразования кода литер в код лексем, выход первого признака которого соединен с третьим входом пятого элемента 15 ИЛИ, выход, второго признака соединен с четвертым входом пятого элемента ИЛИ и с восьмым входом первого элемента ИЛИ, выход третьего признака ' соединен с выходом готовности уст20 ройства и с вторым (инверсным) входом шестого элемента И, четвертый выход признака соединен с выходом расхождения типа устройства, с вычитающим вхрдом счетчика позиции и 25 с вторыми входами второго и третьего элементов ИЛИ, выход второго элемента ИЛИ соединен с вычитающим входом счетчика литер, выход пятого признака блока преобразования кода 3Q литер, в код лексем соединен с вторым (инверсным) входом седьмого элемента И и третьим входом пятого элемента И, выход третьего элемента ИЛИ соединен с вторым сдвигающим вхо,дом регистра, выходы элементов ИЛИ .группы являются информационным выходом устройства.
    1 rrtoxm
SU843808768A 1984-10-30 1984-10-30 Устройство дл лексического анализа программ SU1238103A1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SU843808768A SU1238103A1 (ru) 1984-10-30 1984-10-30 Устройство дл лексического анализа программ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SU843808768A SU1238103A1 (ru) 1984-10-30 1984-10-30 Устройство дл лексического анализа программ

Publications (1)

Publication Number Publication Date
SU1238103A1 true SU1238103A1 (ru) 1986-06-15

Family

ID=21145354

Family Applications (1)

Application Number Title Priority Date Filing Date
SU843808768A SU1238103A1 (ru) 1984-10-30 1984-10-30 Устройство дл лексического анализа программ

Country Status (1)

Country Link
SU (1) SU1238103A1 (ru)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
.Авторское свидетельство СССР №690497, кл. G 06 F 15/38, 1976. Авторское свидетельство СССР . № 1034043, кл. G 06 F 15/04, 1982. *

Similar Documents

Publication Publication Date Title
Rosenkrantz Programmed grammars--a new device for generating formal languages
SU1238103A1 (ru) Устройство дл лексического анализа программ
SU1034043A1 (ru) Устройство дл лексического анализа метамикроассемблера
SU1153329A1 (ru) Устройство дл лексического анализа метатрансл тора
SU1187173A1 (ru) Устройство дл лексического анализа символьного текста
SU1182537A1 (ru) Устройство для лексического анализа метамикроассемблера
Fernau Graph-controlled grammars as language acceptors
SU1355972A1 (ru) Устройство дл ввода информации
SU1115063A1 (ru) Устройство дл аппаратурной трансл ции
SU1352479A1 (ru) Устройство дл ввода информации
SU943729A1 (ru) Микропрограммное устройство дл анализа программ
SU1522237A1 (ru) Устройство дл преобразовани кодов с одного зыка на другой
SU1164736A1 (ru) Устройство дл аппаратурной трансл ции
SU830386A1 (ru) Микропрограммное устройствоупРАВлЕНи
SU1233155A1 (ru) Микропрограммное устройство управлени с контролем
Stout Computing machines for language translation.
SU1711202A1 (ru) Устройство дл считывани информации с перфоленты
SU1439621A1 (ru) Устройство дл параметрической автогенерации символьного текста
RU1789993C (ru) Устройство дл редактировани элементов таблиц
SU1645950A1 (ru) Устройство дл преобразовани информации
SU1238106A1 (ru) Устройство дл контрол трассировки и воспроизведени информации о прокладке кабельной трассы
SU1305771A1 (ru) Устройство управлени буферной пам тью
SU1386984A1 (ru) Устройство дл ввода информации
SU1159025A1 (ru) Устройство дл вывода информации
SU1439594A1 (ru) Синтаксический анализатор