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

Иллюстрации

Показать все

Реферат

 

ОПИСАНИЕ

ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. санд-ну— (22) Заявлено 300376 (21) 2339850/18-24 с присоединением заявки М— (23) Приоритет—

Опубликовано 051 079 Бюллетень М 37

Дата опубликования описания 08.1 07 9

Союз Советских

Социалистических

Республик >690497 (51)м. Кл.

G 06 F 15/38

Государственный комитет

СССР по делам изобретений и открытий (5З) УДК 681. 325 (088 .8 ) (72) . Автор изобретения

В .А . Платонов (71) Заявитель таганрогский радиотехнический институт им. B.ä. калмыкова (54) УСТРОЙСТВО ДЛЯ ЛЕКСИЧЕСКОГО АНАЛИЗА

Устройство относится к области вычислительной техники и может быть использовано в устройствах ввода циф- ровых вычислительных машин.

Известно устройство для транслирования программ, содержащее блок Управления, блок подсветки, блок хранения символов языка, блок выделения команды, блок хранения адресов, блок хранения описаний, формирователи, блок вывода (1) .

Однако данное устройство имеет большой объем оборудования.

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

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

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

Выполнение программы транслятора уменьшает быстродействие вычислительной машины.

Пелью изобретения является увеличение быстродействия.

Постанленная цель достигается тем, что устройство содержит четыре элемента И, первый и второй триггеры, едини .ными выходами соединенные с перными входами соответственно первого и третьего элементов И, а нулевыми выходами — c первыми входами соответственно второго и четвертого элементов И, первый ныход дешифратора входных символов соединен с вто690497 рым входом первого элемента ИЛИ-И, выход которого соединен. с нулевым входом первого триггера, второй выход дешифратора входных символов соединен с единичным входом первого триггера, третий выход дешифратора входных символов соединен с вторыми входами первого и второго элементов

И, выходы которых соединены с третьим и вторым входами соответственно первого и второго элементов ИЛИ-И, четвертый выход дешифратора входных символов соединен с единичным входом второго триггера и третьим входом второго элемента ИЛИ-И, четвертый вход которого соединен с выходом

15 третьего элемента И и нулевым входом второго триггера, пятый выход дешифратора входных символов соединен с вторыми входами третьего и четвертого элементов И, выход четвертого элемента И соединен с вторым входом третьего элемента ИЛИ-И.

На чертеже представлена блок-схема устройства. устройство содержит элементы 25

ИЛИ-И 1-3, элементы И 4-7, триггеры

8 и 9, дешифратор 10 входных символов, блок 11 оперативной памяти.

Элементы И 4-7 и ИЛИ-И 1-3 служат.для обеспечения выполнения логи- Я ческих условий при передаче управляющих сигналов.

Триггеры 8 и 9 служат для запоминания состояния устройства лексического анализа. Триггер 8 фиксирует 3$ состояние, когда формируется буквенный функциональный символ (kiri, tg, sgrt и т.п.), триггер 9 когда формируется переменная (a15, у10 и т.д.), Дешифратор 10 служит для анализа,щ поступающих на его вход с входа 12 устройства литер и выдачи управляющих сигналов на формирование в блоке

11 слов из этих литер и на передачу этих слов (функциональных символов, разделителей, переменных и чисел) на соответствующие выходы 13-15., Блок 11 оперативной памяти используется для накопления, хранения и выдачи, слов текста задачи. Своим входом и выходом он соединен с дешифратором 10 входных символов, другой выход соединен с соответствующими входами элементов ИЛИ-И 1-3.

Решаемая задача, записанная на алгоритмическом языке в виде кодов Я литер, из которых составлены слова, поступает последовательно литера за литерой в дешифратор 10, где каждая поступающая литера сравнивается с предыдущей литерой, записанной в бло- @ ке 11 оперативной памяти. В зависимости от сочетания литер в блоке 10,,элементах И 4-7 и ИЛИ-И 1 — 3 вырабатываются следующие управляющие сигналы.

Если поступающая литера буква, а в блоке 11 оперативной памяти были также записаны буквы, то поступающая буква записывается в блок 11 памяти и триггер 8 устанавливается в единичное состояние. Если же в блоке 11 памяти был записан знак арифметической операции или разделитель, то подается управляющий сигнал на элемент ИЛИ-И 1 и слово из блока 11 папамяти выдается на выход 13 функциональных символов„ а триггер 8 устанавливается в нулевое состояние.

Если поступающая литера цифра, а в блоке 11 памяти была буква, то подается управляющий сигнал на элемент

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

Если поступающая литера — знак арифметической операции, а в блоке

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

9 подается управляющий сигнал на элементы ИЛИ-И 2 или ИЛИ-И 3 и слово из блока 11 памяти выдается либо на выход 14 переменных, как индекс переменной, либо на выход 15 числа. Если триггер 9 находится в единичном состоянии, то одновременно с выдачей слова на выход 14 переменных, он устанавливается в нулевое состояние.

Если в блоке 11 памяти был записан разделитель, то подается управляющий сигнал на элемент ИЛИ-И 1 и слово из блока 11 памяти выдается на выход

13 функциональных символов, а триггер 8 устанавливается в нулевое состояние.

Если поступающая литера была разделителем, а в блоке 11 памяти была записана буква, то в зависимости от состояния триггера 8 подается управляющий сигнал на элемент ИЛИ-И 1 или

ИЛИ-И 2 и слово из блока 11 памяти выдается либо на.выход 13 функциональных символов, либо на выход 14 переменных.

Если в блоке 11 памяти была записана цифра, то в зависимости от состояния триггера 9 подается управляющий сигнал на элемент ИЛИ-И 2 и

690497

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

11 памяти выдается на выход 13 функциональных символов, а триггер 8 ус- 1р танавливается в нулевое состояние, Таким образом, устройство позволяет исключить из процесса трансляции задачи этап лексического анализа, которыЯ является одним из наиболее трудоемких и при выполнении которого обычно используют арифметическо-логический блок цифровой вычислительной машины. Это позволяет значительно сократить время решения задачи и тем самым повысить быстродействие машины, Устройство для лехсического ана- ü6 лиза, содержащее первый, второй и третий элементы ИЛИ-И, выходы которых являются соответственно выходами функциональных символов, переменных, чисел устройства, блок оперативной 30 памяти, выход которого соединен с первыми входами первого, второго и третьего элементов ИЛИ-И, дешифратор входных символов, соединенный двусторонними связями с блоком опера- 3$ тивной памяти, вход дешифратора входных .символов является входом устройства, о т л и чающее с я тем, что, с целью повышения быстродействия, оно содержит четыре элемента И, первый и второй триггеры, единичными выходами соединенные с первыми входами соответственно первого и третьего элементов И, а нулевыми выходами — с первыми входами соответственно второго и четвертого элементов И, первый выход дешифратора входных символов соединен с вторым входом первого элемента ИЛИ-И, выход когорого соединен с нулевым входом первого триггера, второй выход дешифрагора входных символов соединен с единичным входом первого триггера, третий выход дешифратора входных символов соединен с вторыми входами первого и второго элементов И, выходы которых соединены с третьим и вторым входами соответственно первого и второго элементов ИЛИ-И, четвертый выход дешифратора входных символов соединен с единичным входом второго триггера и третьим входом второго элемента ИЛИ-И, четвертый вход кото" рого соединен с выходом третьего элемента И и Нулевым входом второго триггера, пятый выход дешифратора входных символов соединен с вторыми входами третьего и четвертого элементов И, выход четвертого элемента

И соединен с вторым входом третьего элемента ИЛИ-И.

Источники информации, принятые во внимание при экспертизе

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

М 436356, кл. G 06 F 15/20, 1974.

2. ЕС-1020. Селекторный канал.

Техническое описание,Е 13.055.001.Т03, 1971 (прототип).

ЦНИИПИ Заказ 5968/47

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

Филиал ППП Патент, r. Ужгород, ул. Проектная, 4