УСТРОЙСТВО СИНТАКСИЧЕСКОГО КОНТРОЛЯ ПРОГРАММ Советский патент 1969 года по МПК G06F11/28 

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

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

Известно устройство, используюо1ее принцип синтаксических карт для схелгной синтаксической проверки вводимых в машину программ, записанных на алгоритмическом языке. Оно содержит входной регистр, дешифратор основных синтаксических понятий, регистр поля анализа, логическую схему o6 iaружеиия синтаксически неверной конструкции в проверяе МОЙ программе, логическую схему перехода на новое поле анализа, логическую схему формироваиия поля анализа, стековую память, блок счетчиков и блок виешней иидикации. Однако в этом устройстве схема обнаружения синтаксически невериой констр кции в проверяемой программе, схема перехода на повое поле анализа и схема формирования поля анализа для практически используемых алгоритмических языков весьма громоздки и составляют 90-95 /о оборудования всего устройства. Поэтому при переходе на новый алгоритмический язык, пмеюш;ий другие синтаксические карты, замена логических схем практически сводится к построению нового устройства. Затруднепо также виесепие

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

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

В предложенном устройстве эти недостатки устранены благодаря использованию схемы сравнения и долговременноГ памяти, выходной регистр которой связан с регистром адреса sToii памятп и схемой сравнения, связанной со входным регистром проверяемой ирогра.ммы и стековой памятью, которая связана с регистро м адреса долговременной памятп.

Па чертеже показано предлагаемое устройство.

Устройство состоит из входного регистра /, схемы сравиения 2, выходного регистра 3, долговременно памятп 4 (ДЗУ), регистра адреса 5 и стэковой памяти 6.

В 4 записывается грамматика языка в одного массива. Весь массив условно разбит на некоторые подуровни, в каждом из которых располагается несколько (определенное чпсло) члементов :массива. Каждый элеMCiiT .массива занимает одно слозо ДЗУ и состоит из селш следующих частей:

-код символа языка (занимает logon разрядов, где /(--число термов в языке);

R2-иризнак заиисн в стековую память (занимает 1 разряд);

Я . -ирнзнак чтения из стековой иамяти (занимает 1 разряд);

R4 - признак окончания некоторого подуровня массива (занимает 1 разряд);

jR-5 -признак того, что символ в R1 этого элемента массива может быть носледнпм в нрограмл1е, заипсаиио на данном алгоритмическом яз1)1ке (:,ainiMaет 1 разряд);

R6 - адрес начала соответствуюн1ето даипоул элементу подуровня .массива (занимает в общем случае Пойз - разрядов, где L-дл1П1а всего маееива);

ЯУ -адрес соответствующего данному элементу эле.меита массива, у которого в R2 стоит признак записи в стековую память;

R7 - пусто, если в R3 пет признака чтения пз стековой иамяти (в общем с.тучае так же занилшет log.L разрядов элемента ассива).

Таким образом, в общем случае элемент указанного массива грамматики языка занимает (logv; -i-4+2 log2L) разрядов.

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

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

Первый проверяемой протра: 1мы записывается на uxozuioii регистр /. После этого пз ДЗУ 4 считывается первый элемент начальиого подуровня массива ;а выходной регистр -Х и с иомоидью схемы 2 производится сравпеине кода R па выходном periiCTpe с кодом па ре1Ч1стре У.

Если указаииые коды не сравнились, то к коду адреса иа 5 ирибавляется

едшнпа и считывается следующий элемент на альио1Ч) подуровия массива. Э нродолжап действия

ются до элемеита, у которого в R4 стоит ирпзиак, либо д,о элемента, у которого код R1 на регистре . совпал с кодо иа регистре /. В первом елучае вырабатывается сигнал синтаксической ошибки (СОШ), так как ни один из элементов в R1 начального подуровня массива не сравннлся с первым сп.мво,:10м проверяелюй программы. Папомншг, что в R1 начального подуровия массива заппсаиы кодь символов, которые могут быть первыми в програм.ме данного алгоритмичееко1о языка. Если первый с 1мвол проверяемой программы не сравнился пп с одним пз символов данного нодуровия, то значит он ошибочио иаинсан нервым, т. е. написан синтакснчески неверно. Во втором случае, когда код R на регистре 3 совпал с кодом на регистре 1, иа регистр 5 переписывается код R6 с выходного регистра и тем самым записывается адрес начальпого эле.мепта подуровня массива, у которого в R} записаны коды символов, которые в проверяемой программе могут идти следов за

символом на j:ierneTpe 1.

После этого на регистр / вызывается следуютций символ нроверяемой программы, снова считываются на выходной регистр . элементы подуровня, отмечаемого адресом иа реJHCTpe 5, также пропзво.дптея сравненпе R1 счита 1иых кодов с па регистре / и т. д. аиа.югично оииса 1ио.му.

Эти дейс1вия соответствуют элементам масС1И5а ;J3i 4, у которых отсутстч;уют призпаки R2, R3.

В случае, если элемент па регистре 3. У которого R1 совпал с кодом иа регпстре /, имеет в R2 призиак заипеп в стековую намять, то записи кода R6 на регнетр 5 нредшествует

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

В случае, если элемент на региетре 3, у которого R1 совнал с КОДОЛ1 иа регпстре /, имеет

в R3 прпзпак, то заииеи кода R,6 на регистр 5 предшествует сравпепне кода па вершпие стековой с кодом R7 иа регистре 3.

Если последние коды совпали, то содержимое верхней ячейки стека удаляется и производятся оиисанные выше действия ио переппсп кода па регпстр 5 i-i т. д. Если эти коды пе совпали, то к содержимому регистра 5 прибавляется и действия производятся с (следуюпи1м) элементо.м данного иодуровия .массива.

В койне ироверки последний символ проверяемой програ.ммы обязательпо должен сравниться с так1ьм элемеито.м соответствующего подуровия MacciiBa, - которого в R5 иа входпом r;eiHCTj)e 3 стоит признак. В иротивном с.тхчае и|Х)веряе.мая iiporjiaMMa сч1 тается недоннсаиио , что также соответствует условп о выработки сигнал; сиитаксической ошибки.

11 |1 е д м е т и 3 о б р е т е и и я

ycTpoiiCTBo снитаксическото контроля програм.м, отличающееся тем, что, с нелью уирощення устройства, уменьшения eio габарнтов и повьппеиня надежности еинтакснческого контроля, оно содержггт ехему сравнения и долговремеииую память, В1з1ходиой регистр которой связан е peiHCTpoM адрееа этой долговременной на.мятн и схемой сравнения, евязанной с вход1-идм регистром проверяемой программы и стековой памятью, которая в свою очередь связана с регпстром адреса долговремеппой иа.мятн.

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

название год авторы номер документа
УСТРОЙСТВО для СИНТАКСИЧЕСКОГО КОНТРОЛЯПРОГРАММ 1969
SU247628A1
УСТРОЙСТВО СИНТАКСИЧЕСКОГО КОНТРОЛЯ ПРОГРАМB^iBJii-IOTei-CA 1972
  • И. В. Вельбицкий, В. Н. Медведева, Г. А. Михайлов Е. Л. Ющенко
  • Институт Кибернетики Украинской Сср
SU328460A1
УСТРОЙСТВО ДЛЯ СИНТАКСИЧЕСКОЙ ПРОВЕРКИ ВВОДИМЫХ В МАШИНУ ПРОГРАММ И ДАННЫХ 1973
  • И. В. Вельбицкий Институт Кибернетики Украинской Сср
SU362300A1
Устройство для синтаксическогоКОНТРОля пРОгРАММ 1978
  • Гужавин Александр Анатольевич
  • Кокаев Олег Григорьевич
SU807299A1
Устройство для синтаксически-управляемого перевода 1982
  • Степанов Алексей Николаевич
SU1062721A1
Процессор, структурно ориентированный на алгоритмический язык 1975
  • Боярченков Михаил Александрович
  • Зонис Владимир Семенович
  • Кабалевский Александр Николаевич
  • Кабанов Николай Дмитриевич
  • Родионов Владимир Владимирович
  • Тарасов Михаил Николаевич
  • Шумей Александр Сергеевич
SU556445A1
Устройство для синтаксического контроля программ 1976
  • Ющенко Екатерина Логвиновна
  • Цейтлин Георгий Евсеевич
  • Довгополая Людмила Ивановна
SU669356A1
УСТРОЙСТВО для СИНТАКСИЧЕСКОГО КОНТРОЛЯ ПРОГРАММ, ЗАПИСАННЫХ НА ЯЗЫКЕ АЛГОЛ 1967
SU191230A1
Устройство для синтаксического анализа программ 1980
  • Степанов Алексей Николаевич
SU918950A1
УСТРОЙСТВО ДЛЯ ТРАНСЛЯЦИИ ПРОГРАММ 1969
SU257151A1

Иллюстрации к изобретению SU 236 861 A1

Реферат патента 1969 года УСТРОЙСТВО СИНТАКСИЧЕСКОГО КОНТРОЛЯ ПРОГРАММ

Формула изобретения SU 236 861 A1

SU 236 861 A1

Даты

1969-01-01Публикация