1
Изобретение относится к области вычислительной техники алгоритмических языков.
Известно устройство для схемной синтаксической проверки вводимых в машину программ, записанных на алгоритмическом языке, состоящее из входного регистра, схемы сравнения, выходного регистра, долговременной памяти, регистра адреса и стековой памяти.
Известное устройство не может осуществлять проверку правильности подготовки исходных данных, так как время его работы и время срабатывания схем реакции на обнаруженную синтаксическую ощибку, осуществляющих блокировку печати перфорации соответствующего знака, слищком велико, чтобы реализовать указанную .блокировку.
Целью изобретения является повышение быстродействия устройства.
Для достижения этого устройство дополнительно содержит триггерный и релейный регистры, вход триггерного регистра соединен с выходом выходного регистра, вы.ход каждого разряда триггерного регистра подключен к одному из концов обмотки соответствующего реле релейного регистра, вторые концы обмоток соединены с источником питания, нормально разомкнутые контакты реле включены между клавиатурой и исполнительными
электромагнитами печатающего механизма печатающей машинки.
Блок-схема предлагаемого устройства изображена на чертеже.
Оно состоит из входного регистра / текущего символа проверяемой программы, схемы сравения 2, выходного регистра 3, долговременной памяти (ДП) 4, регистра адреса 5, стековой памяти 6, триггерного регистра 7 и печатающей мащинки, содержащей клавиатуру 8 печатаемых знаков, механические рычаги 9, контакты 10, релейный регистр Л с контактами 12, электромагниты 13 с якорями 14 и литерные рычаги 15.
Грамматика языка записывается в долговременную память в виде одного R-массива. Весь массив условно разбит на некоторые подмассивы, в каждом из которых ра.сполагается несколько (некоторое число) элементов массива. Каждый элемент массива занимает одно слово ДП и состоит из семи частей: RI-R, в которых записаны следующие коды:
RI- код символа языка;
RZ- признак записи в стековую память; .Ra-признак чтения из стековой памяти; R.1- признак окончания некоторого подмассива;
RS- признак того, что символ в Ri этого массива может быть последним в программе, записанной на данном алгоритмическом языке;
Кб- адрес начала соответствующего данному элементу подмассива;
RT- адрес соответствуюш,его данному элементу массива Ri, у которого в R2 стоит признак записи в стековую память; R -пусто, если в Ra нет признака чтения из стековой памяти.
Работа устройства заключается в следующем.
В исходном состоянии стековая память свободна, триггерный регистр 7 сброшен, на регистре 5 записан код адреса начального подмассива грамматики языка в долговременной памяти устройства. Установка устройства в исходное состояние производится оператором перед началом работы на печатающей машинке. При этом по установленному на регистре 5 адресу производится выборка первого элемента грамматики и запись кода в Ri с выходного регистра 3 на соответствующий триггер регистра 7. В регистре 7 каждому символу языка (каждой клавише печатающей машинки) соответствует триггер. После этого, если в R4 на выходном регистре 3 нет признака конца некоторого подмассива (в данном случае первого), к коду адреса на регистре 5 прибавляется единица, считывается следующий элемент грамматики, по коду в Ri этого элемента взводится соответствующий триггер регистра 7 и т. д. до тех пор, пока в R4 текущего элемента грамматики будет стоять признак конца подмассива. В этом случае после взведения соответствующего триггера дальнейшие чтения элементов грамматики прекращаются, устройство готово к работе.
Таким образом, в начале, перед работой оператора на печатающей машинке, стековая память свободна, на регистре 5 записан адрес последнего элемента начального подмассива, на регистре 7 взведены те триггеры, которые соответствуют первым символам всех предложений данного языка. Каждому триггеру регистра 7 соответствует реле регистра 11. Взведенному триггеру регистра 7 соответствует замкнутый контакт 12 регистра 11. Следовательно, вначале замкнуты те контакты 12, которые соответствуют начальным символам языка.
В дальнейшем, при нажатии оператором на соответствующую клавишу 8, усилие нажатия через систему рычагов 9 передается на контакт 10, который, если замкнут контакт 12 (то есть если правильно нажата клавиша, соответствующая одному из первых символов языка) замыкает цепь электромагнита 13. В результате протекания тока по обмоткам электромагнита образуется электродвижущая сила, якорь 14 электромагнита приходит в движение, которое через систему усилительных рычагов передается на литерный рычаг 15, осуществляющий пропечатку соответствующего нажатой клавише знака на бумаге.
Если оператор ошибочно нажимает клавишу, не соответствующую одному из первых символов языка, то, очевидно, так как контакт 12 размокнут, то разомкнута электрическая
цепь соответствующего электромагнита и, следовательно, пропечатки соответствующего знака не будет. Оператор должен нажать другую клавишу, соответствующую одному из правильных символов языка.
После того, как оператор нажал «правильную клавишу, производится подготовка схем устройства для проверки следуюшего символа. Для этого на регистре / запоминается код текущего символа. По этому символу определяется адрес следующего подмассива грамматики. Для этого считывается текущий элемент подмассива, адрес которого указан на регистре 5. На регистре 5 стоит код адреса последнего элемента текущего (в начале первого)
подмассива грамматики. Код в Ri считанного элемента подмассива сравнивается с кодом на регистре /. Если коды не сравнились, то из адреса на регистре 5 вычитается единица, считывается следующий элемент грамматики,
его RI сравнивается с кодо.м на регистре / и т. д. до сравнения. Если коды сравнились, то код Re на выходном регистре 3 переписывается на регистр адреса 5 и тем самым на регистр 5 записывается адрес начального элемента подмассива, у которого в Ri записаны коды символов, могущие идти в проверяемой программе следом за текущим, проверенным. Указанные действия соответствуют элементам массива, у которых отсутствуют признаки R2, Rs.
В случае, если элемент на регистре 3, у которого RI совпадает с кодом на регистре I, имеет в R2 признак записи в стековую память, то записи кода Re на регистр 5 предшествует
запись текущего значения кода на регистре 5 в стековую память. В остальном действия не отличаются от выше описанных.
В случае, если элемент на регистре 5, у которого RI совпал с кодом на регистре 1, имеет в Ra признак записи в стековую память, то записи кода Re на регистр 5 предшествует сравнение кода на вершине стековой памяти с кодом R на выходном регистре 3. Если эти коды совпали, то содержимое верхней ячейки
стека удаляется и производятся описанные выше действия по переписи кода Re на регистр 5 и т. д. Если эти коды не совпали, то к содержимому регистра 5 прибавляется единиЦа, и Описанные выше действия производятся с новым, следующим элементом данного подмассива.
После этого производится установка релейного и триггерного регистра. Для этого вначале сбрасывается триггерный регистр 7. Затем по установленному на регистре 5 адресу производится выборка первого элемента текущего подмассива грамматики и запись кода RI с выходного регистра 3 на соответствующий триггер регистра 7. Аналогично производится перепись в регистр 7 всех кодов Rj текущего подмассива грамматики. На этом заканчивается подготовка схем устройства к проверке Следующего символа.
После нажатия оператором на «правильную клавишу, из текущего подмассива выбирается адрес следующего подмассива, из которого коды Ri устанавливаются на триггерный регистр 7 и т. д. при набивке всех символов Программы.
Предмет изобретения
Устройство для синтаксической проверки вводимых в машину программ и данных, содержащее входной и выходной регистры, выходы которых соединены со входами схемы сравнения, долговременную и стековую памяти, регистр адреса и печатающую машинку, отличающееся тем, что, с целью повышения быстродействия, оно дополнительно содержит триггерный и релейный регистры, вход триггерного регистра соединен с выходом выходного регистра, выход каждого разряда триггерного регистра подключен к одному из концов обмотки соответствующего реле релейного регистра, вторые концы обмоток соединены с источником питания, нормально разомкнутые контакты реле включены между клавиатурой и исполнительными электромагнитами
печатающего механизма печатающей машинки.
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО СИНТАКСИЧЕСКОГО КОНТРОЛЯ ПРОГРАМB^iBJii-IOTei-CA | 1972 |
|
SU328460A1 |
УСТРОЙСТВО для СИНТАКСИЧЕСКОГО КОНТРОЛЯПРОГРАММ | 1969 |
|
SU247628A1 |
Устройство для синтаксическогоКОНТРОля пРОгРАММ | 1978 |
|
SU807299A1 |
УСТРОЙСТВО СИНТАКСИЧЕСКОГО КОНТРОЛЯ ПРОГРАММ | 1969 |
|
SU236861A1 |
Устройство для синтаксического контроля программ | 1976 |
|
SU669356A1 |
Устройство для синтаксического контроля программ и данных | 1976 |
|
SU637818A1 |
Устройство для обработки выражений языков программирования | 1974 |
|
SU519715A1 |
Устройство управления цифровой вычислительной машины | 1971 |
|
SU437074A1 |
Устройство для синтаксического анализа программ | 1980 |
|
SU918950A1 |
Транслятор языков программирования | 1981 |
|
SU1387018A1 |
10
/J
ГТ1
Авторы
Даты
1973-01-01—Публикация