Устройство для синтаксического контроля Советский патент 1991 года по МПК G06F17/27 

Описание патента на изобретение SU1686462A1

СО

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

название год авторы номер документа
Устройство синтаксического контроля 1988
  • Анисимов Владимир Юрьевич
  • Балабанов Виктор Артемьевич
  • Галимзянов Ильдар Хафизович
  • Денисович Павел Владимирович
  • Тихобаев Андрей Валентинович
  • Шевчик Александр Григорьевич
SU1587542A1
Устройство для синтаксически-управляемого перевода 1982
  • Степанов Алексей Николаевич
SU1062721A1
Устройство синтаксически управляемого перевода 1986
  • Фомичев Владимир Степанович
  • Разумовский Геннадий Васильевич
  • Познянский Андрей Измайлович
SU1399767A1
Устройство для синтаксического анализа программ 1980
  • Степанов Алексей Николаевич
SU918950A1
Генератор программ для управляемого синтаксического контроля 1989
  • Водопьянов Виталий Константинович
  • Одриковский Николай Иосифович
  • Плотникова Зоя Владимировна
SU1672467A1
Устройство для синтаксического анализа программ 1984
  • Мазаник Вячеслав Вячеславович
  • Бакров Николай Прокофьевич
  • Марченко Константин Александрович
  • Неффа Виктор Михайлович
SU1196899A1
Устройство для синтаксического контроля 1987
  • Ющенко Екатерина Логвиновна
  • Цейтлин Георгий Евсеевич
  • Иваськив Юрий Лукич
  • Харам Владимир Самуилович
SU1474679A1
Устройство для лексического анализа программ 1984
  • Соколов Сергей Алексеевич
  • Курносов Михаил Алексеевич
  • Савченко Сергей Валентинович
  • Гахов Роман Павеласович
  • Николаев Андрей Николаевич
SU1238103A1
Устройство синтаксически управляемого перевода 1989
  • Кузнецов Иван Анатольевич
  • Разумовский Геннадий Васильевич
  • Фомичев Владимир Степанович
SU1651298A1
Устройство для обработки выражений языков программирования 1981
  • Сергеев Борис Иванович
  • Плахтеев Анатолий Павлович
  • Курносов Михаил Алексеевич
SU1016790A1

Иллюстрации к изобретению SU 1 686 462 A1

Реферат патента 1991 года Устройство для синтаксического контроля

Изобретение относится к вычислительной технике и может быть использовано для синтаксического контроля соответствия входной последовательности символов формальной грамматике языка. Цель изобретения - расширение функциональных возможностей устройства за счет контроля контекстно-независимых языков. Для достижения указанной цели в устройство дополнительно введены элементы И 4-6, элементы 8 и 9 задержки, счетчик 14, элементы ИЛИ 16 и 17, элемент ИЛИ-НЕ 18, сумматор 19, группа 20 элементов ИЛИ, группы 21 и 22 элементов И. стек 23 и дешифратор 25. Введение данных элементов и порождаемых ими связей позволяет реализовать указанные преимущества. 2 ил.

Формула изобретения SU 1 686 462 A1

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

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

На фиг. 1 представлена структурная схема устройства; на фиг. 2 - структурная схема стека.

Устройство для синтаксического контроля (см. фиг. 1) содержит первый 1, второй 2, третий 3, четвертый 4, пятый 5, шестой 6 элементы И, первый 7, второй 8, третий 9 элементы задержки, триггер 10, блок памяти команд 11, блок сравнения 12. первый 13 и второй 14 счетчики, вычитающий счетчик 15, первый 16 и второй 17 элементы ИЛИ, элемент ИЛИ-НЕ 18, сумматор 19, группу элементов 20. первую 21 и вторую 22 группы

элементов И, стек 23, первый 24 и второй 25 дешифраторы, блок 26 памяти символов, блок 27 памяти номеров команд, блок 28 памяти количества символов. Стек (см. фиг. 2) содержит счетчик 29, элемент задержки 30, дешифратор 31, группу из N элементов И 32, группу из N регистров памяти 33, группу из N элементов И 34 и группу элементов ИЛИ 35. Устройство позволяет осуществлять синтаксический контроль последовательности символов (предложений языка), порожденной некоторой формальной грамматикой. Формальной грамматикой языка будем называть четверку символов VT, VN, Р. S , где VT - алфавит терминальных символов; Р - множество порождающих правил вывода; S - аксиома (). Под правилами вывода понимают преобразования а ft , где а и/3 - цепочки символов из VT VN-VIM - алфавит нетерминальных символов. Предлагаемое устройство позволяет осуществлять синтаксический контроль языков,

о

00

ON

-N о го

порождаемых контекстно-независимыми грамматиками, т.е. грамматиками, порождающие правила которых имеют вид А , где At VN; ft - строка символов из алфавита

VN WT )0

Синтаксис языковых конструкций описывается в виде набора ненумерованных команд, каждая из которых содержит три поля. В первом поле содержится терминальный символ языка х(-VT или специальный символ ytVs(Vs-алфавит специальных символов, VsfiVT 0) для обработки специальных команд, во втором поле - число Nc символов, которые могут следовать в предложениях языка вслед за символом данной команды, в третьем поле хранится номер NK, соответствующий номеру команды. Устройство отрабатывает четыре специальные команды: Безусловный переход, Запись в стек, Возврат по адресу. Выход. Контроль синтаксиса производится следующим образом. Первый поступающий символ сравнивается с символом xi, хранимым в первом поле команды. Если они совпадают, то осуществляется переход к команде с номером NK, хранящимся в третьем поле первой команды. При этом устанавливается значение счетчика возможных ветвей, равное Nc - содержимому второго поля первой команды, и вводится следующий символ, который сравнивается с содержимым первого поля NK-Й команды. Если вновь поступивший символ не совпал с символом хм первым полем NK-Й команды, то от счетчика возможных ветвей отнимается единица и происходит переход к команде, следующей заданной -{с номером ). При этом ввод нового символа не производится. Если число на счетчике возможных ветвей становится равным нулю, то вводимая последовательность символов с точки зрения формальной грамматики языка является ошибочной. Если в первом поле команды содержится символ yi специальной команды, то новый символ входной последовательности не вводится. Если yi - символ команды безусловного перехода, то в счетчик команд заносится значение N, хранящееся в третьем поле команды, в счетчик ветвей заносится значение М0 из второго поля команды, осуществляется переход на команду с номером N. Если yi - символ команды записи в стек, то в стек заносится номер команды, следующей за данной, в счетчик команд заносится значение NK из третьего поля команды, в счетчик ветвей заносится значение Nc из второго поля команды и осуществляется переход на команду с номером NK. Если yi -- символ команды

возврата по адресу, то в счетчик команд заносится номер команды из верхушки стека и осуществляется переход на команду с этим номером. Если стек пустой, то это означает ошибку при программировании набора команд. Если yi - символ команды выход, то на выходе устройства появляется сигнал об успешном окончании синтаксического анализа.

0 Устройство для синтаксического контроля работает следующим образом.

При включении устройства производится установка начального состояния устройства. При этом на счетчике 13 и вычитающем

5 счетчике 15 устанавливается значение единица, на счетчике 14 - ноль, триггер 10 устанавливается в единицу. В блоки памяти символов 26, номеров команд 27 и количества символов 28 записываются команды

0 (формализованное описание синтаксиса языка). В блок памяти команд 11 заносится последовательность символов, которая контролируется, причем в первые разряды регистров блока памяти команд информация

5 не заносится. Так как начальное значение счетчика 13 равно единице, то дешифратор 24 подает напряжение на первый выход. Этот сигнал поступает на управляющие входы блоков памяти символов, номеров ко0 манд и количества символов и на выходе этих блоков устанавливаются сигналы, соответствующие содержимому полей первой команды. Если в блоке памяти символов содержится терминальный символ, то на всех

5 выходах второго дешифратора 25 устанавливаются нули, на выходе элемента ИЛИ- НЕ - единица, которая поступает на третьи входы первого 1 и третьего 3 элементов И. Ноль с третьего выхода дешифратора 25 от0 крывает группу элементов И 21 и закрывает группу элементов И 22. а также закрывает элемент И 6. Значение номера команды из блока памяти номеров команд через группу элементов И 21 и через группу элементов

5 ИЛИ 20 поступает на информационный вход счетчика 13.

После приведения устройства в исходное состояние на тактирующий вход устройства поступает короткий тактовый импульс.

0 Интервал между импульсами выбирается большим, чем максимальное время срабатывания устройства при обработке очередного символа. Тактовый импульс открывает элемент И 1, так как на втором входе этого

5 элемента триггером 10 установлена единица, а на третьем входе - единица от элемента ИЛИ-НЕ 18. Сигнал с выхода элемента И 1 увеличивает на единицу значение счетчика 14 и позволяет считывание следующего символа входной последовательности символов, записанных в блоке памяти команд 11. Считанный символ сравнивается в блоке сравнения 12 с символом на выходе блока памяти символов 26. Если эти символы совпали, то на выходе совпадения блока срав- нения устанавливается единица, иначе единица устанавливается на выходе несовпадения. Если символы совпали, то тактовый импульс, пройдя через элемент задержки 7, открывает элемент И 2. Им- пульс с выхода элемента И 2 подается на вход установки триггера 10, через элемент ИЛИ 16 - на вход разрешения установки вычитающего счетчика 15, через элемент ИЛИ 17 - на вход разрешения установки счетчика 13. При этом в вычитающий счетчик 15 переписывается сигнал с выхода блока памяти количества команд 28, а в счетчик 13 - с выхода блока памяти номеров команд 27. Значение счетчика 13 поступает на ин- формационный вход дешифратора 24, с выхода которого сигнал поступает на соответствующие входы блоков памяти символов 26, номеров команд 27, количества символов 28. При этом на выходах блоков памяти 26-28 устанавливаются новые значения. Если блок сравнения 12 выработал напряжение на выходе несовпадения, то сигнал с выхода элемента задержки 7 открывает элемент И 3, сигнал на выходе ко- торого устанавливает триггер 10 в ноль, тем самым запрещая ввод следующего символа, увеличивает на единицу значение счетчика 13 и уменьшает на единицу значение вычитающего счетчика 15. Если при этом значе- ние вычитающего счетчика 15 оказывается равным нулю, то на выходе признака синтаксической ошибки появляется сигнал об ошибке. При этом на выходе номера ошибочного символа (выход счетчика 14) уста- навливается номер ошибочного символа. Если сигнал на выходе блока памяти символов 26, поступающий на вход блока сравнения 12 и на вход дешифратора 25, является символом специальной команды, то появля- ется сигнал на соответствующем выходе дешифратора 25. Если сигнал появляется на четвертом выходе (специальная команда выход) дешифратора 25, то это признак успешного завершения синтаксического контроля входной последовательности символов. В случае появления сигнала на любом из первых выходов дешифратора 25 элемент ИЛИ-НЕ 18 запирает элемент И 1, тем самым запрещая ввод следующего сим- вола входной последовательности, а также элемент И 3. В случае появления сигнала на первом выходе дешифратора 25 (команда Безусловный переход) этот сигнал идет на второй вход элемента И 4. Тактовый импульс после элемента задержки 7 открывает элемент И 4. С выхода элемента И 4 сигнал через элемент ИЛИ 16 поступает на вход разрешения установки вычитающего счетчика 15, а через элемент ИЛИ 17 - на вход разрешения установки счетчика 13. При этом в счетчик 13 и вычитающий счетчик 15 записываются значения, установленные на выходе блоков памяти номеров команд 27 и количества символов 28. Если символ, поступающий на вход дешифратора 25, является символом специальной команды Запись в стек, то сигнал появляется на втором выходе дешифратора 25. Этот сигнал поступает на первый вход элемента И 5. Тактовый импульс, поступающий на второй вход элемента И 5. открывает его. Сигнал с выхода элемента И 5 поступает на вход разрешения записи в стек 23, на информационный вход которого в это время поступает значение номера текущей команды из счетчика 13, сложенное с единицей в сумматоре 19, т.е. номер команды, следующей за текущей. Этот номер записывается в стек 23. Сигнал с выхода элемента И 5 через элемент задержки 8 поступает на третий вход элемента ИЛИ 16. с выхода которого поступает на вход разрешения установки вычитающего счетчика 15, а через элемент ИЛИ 17 - на вход разрешения установки счетчика 13. При этом в счетчик 13 и в вычитающий счетчик 15 записываются значения номеров команд и количества символов соответственно из блоков памяти номеров команд 27 и количества символов 28. Если символ, поступающий на вход дешифратора 25, является символом специальной команды Возврат по адресу, то сигнал появляется на третьем выходе дешифратора 25. Этот сигнал закрывает первую группу элементов И 21, открывает вторую группу элементов И 22 и поступает на первый вход элемента И 6. Значение номера команды из вершины стека через открытую группу элементов И 22 и через группу элементов ИЛИ 20 поступает на информационный вход счетчика 13. Тактовый импульс, поступающий на второй вход элемента И 6. открывает его и через элемент ИЛИ 17 поступает на вход разрешения установки счетчика 13, в который записывается значение номера команды из стека 23. Затем сигнал с выхода элемента И 6 через элемент задержки 9 поступает на вход выталкивания стека 23. После обработки команды значение номера очередной команды с выхода счетчика 13 поступает на вход дешифратора 24. Дешифратор 24 подает сигнал на соответствующий выход, с которого поступает на управляющие входы блоков памяти символов, номеров команд и

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

Стек (см. фиг. 2) работает следующим образом.

При поступлении на второй управляющий вход (вход разрешения записи) сигнала происходит добавление единицы к содержимому счетчика 29, срабатывание дешифратора 31 и открытие входным сигналом, задержанным в элементе задержки 30, соответствующего элемента группы элементов И 32, сигнал с выхода которого записывает сигнал на входе стека в соответствующий регистр 33 группы, а далее через открытую группу элементов И блока 34 и группу элементов ИЛИ 35 сигнал с входов стека проходит на его выход. Если стек пуст, т.е. счетчик 29 обнулен, то на управляющем выходе стека появляется сигнал. При поступлении сигнала на первый управляющий вход (вход выталкивания из стека) значение на счетчике 29 уменьшается на единицу, происходит как бы выбрасывание последнего записанного значения.

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

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

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

5 задержки, второй счетчик, первый и второй элементы ИЛИ, элемент ИЛИ-НЕ, сумматор, группу элементов ИЛИ, первую и вторую группы элементов И, стек и второй дешифратор, причем, выход первого эле0 мента И соединен со счетным входом второго счетчика, выход которого является выходом номера анализируемого символа устройства, выход блока памяти символов соединен с входом второго дешифратора,

5 первый выход которого является выходом Успешный контроль устройства, первый выход которого является выходом Успешный контроль устройства, первый,второй и третий входы первого элемента ИЛИ соеди0 нены с выходом второго элемента И, выходом четвертого элемента И и выходом второго элемента задержки соответственно, выход первого элемента ИЛИ соединен с первым входом второго элемента ИЛИ и

5 входом записи вычитающего счетчика, второй, третий и четвертый выходы второго дешифратора соединены с первым, вторым и третьим входами элемента ИЛИ-НЕ соответственно, выход элемента ИЛИ-НЕ соеди0 нен с третьим входом третьего элемента И, первый вход которого соединен с первым входом четвертого элемента И, второй и четвертый аыходы второго дешифратора соединены с вторым входом четвертого

5 элемента И и первым входом пятого элемента И соответственно, третий выход второго дешифратора соединен с первыми входами шестого элемента И. вход первого элемента задержки соединен с вторыми входами пя0 того и шестого элементов И, выход пятого элемента И соединен с входом второго элемента задержки и входом разрешения записи стека, информационный вход и выход которого соединены с выходом сумматора и

5 вторыми входами элементов И второй группы соответственно, выходы элементов И первой и второй групп соединены с первыми и вторыми входами элементов ИЛИ группы соответственно, выходы элементов ИЛИ группы соединены с информационным входом первого счетчика, вход разрешения записи которого соединен с выходом второго элемента ИЛИ, второй вход которого соединен с выходом шестого элемента И и входом третьего элемента задержки, выход которого соединен с входом считывания стека, выI

30

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

Документы, цитированные в отчете о поиске Патент 1991 года SU1686462A1

Устройство для преобразования кодов с одного языка на другой 1978
  • Бородаев Валерий Александрович
  • Трудов Юрий Васильевич
  • Чернаков Эдуард Павлович
SU780011A1
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1
Устройство синтаксического контроля 1988
  • Анисимов Владимир Юрьевич
  • Балабанов Виктор Артемьевич
  • Галимзянов Ильдар Хафизович
  • Денисович Павел Владимирович
  • Тихобаев Андрей Валентинович
  • Шевчик Александр Григорьевич
SU1587542A1
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1

SU 1 686 462 A1

Авторы

Балабанов Виктор Артемьевич

Денисович Павел Владимирович

Тихобаев Андрей Валентинович

Шевчик Александр Григорьевич

Даты

1991-10-23Публикация

1989-07-04Подача