Система для трансляции с проблемноориентированного языка

 

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

СОциьлистииесиих ,."{ Республик

И АВТОРСКОМУ СВИД6ТИЛЬСХВУ (б!) Дополнительное к авт. свид-ву(5!) М. Кл

Я 06 Г 15/20 (22) Заявлеио29.1 1.76 (21) 2424859/18-24 с присоединением заявки № (23) ПриоритетГосударственный номнтвт

СССР пв делам изобретений н открытий (53) УДК 681,822 (088.8 ) Опубликовано 15.07 79. Бюллетень № 26

Дата опубликования описания 18.07.79 (72) Автор изобретения

В. М. Сентюрин

Институт электронных управляющих машин (71) Заявитель (54) СИСТЕМА ДЛЯ ТРАНСЛЯЦИИ С ПРОБЛЕМНООРИЕНТИРОВАННОГО ЯЗЫКА

1 .. 2

Изобретение относится к вычислитель- соединен с выходом :устройства управленой технике, ния (2).

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

Использование в этой системе стеко- ляции, как известно ухудшает один из оовой памяти уменьшает быстродействие вы- новных показателей ЭФМ - скорость транополняемых программ в 1,5-2 раза, так т0 ляций. как запись и чтение информации в ячейки Таким образом, в архитектуре и кон стека осуществляется последовательно, а струкции современных ЭВМ имеются элене прямым {координатным) способом. менты, разрешающие противоречие - либо

Наиболее близкой по технической суш- повышенная скорость трансляции, либо по ности к данному изобретению является си- т .вышенная скорость счета в сторону стема, содержашая вычислительное устрой- улучшения только одной характеристики. ство, соединенное двухсторонними связами . Поэтому задача состоит в том, чтобы с оперативным запоминающим устройством ввести в архитектуру ЭВМ такие элемени устройством управления, которое через ты, которые позволили бы устранить или устройство управления каналами соединено двусторонне уменьшить указанное протидвухсторонними связами, с внешним запо- воречие. минаюшим устройством, управляющий вход Белью изобретения является повышеоперативйого запоминающего устройства ние быстродействия системы.

» щ@ мйм»» ф »м»»»се@. »»,-..;=- ф»йайааай»»-» -.: м »»»»» .. ---.. ».„.ж»» - .-»-.. °, »

674028

Поставленная цель достигается тем, что в предлагаемую систему введены модификаторы адреса символов исходного текста, адреса макрокоманд, адреса полуМ объектных команд, адреса объектных команд, адреса меток, символьный анализатор, операторный анализатор, блоки перекодировки чисел и обработки ошибок, уп-р6вляюшие входы кбторь х подключены к выходу устройства управления,""выход вы- 10 числительного устройства соединен с пер . выми. входами символьного и операторного анализаторов и блока перекодировки чисел, первый выход и второй вход символьного .: анализатора соединены соответственно со 15 Ь т»офы»м" вх»одом»- и -пе» рвъ1м " выхбдо»м "оперативного анализатора-, второй выход котс» рого подключен к первому входу модифика» тора адреса макрокоманд, третий выход соединен с первыми входами модифйкато» 20 ров адреса полуобъектных команд и адреса объектных команд, четвертый выход подключен к первому входу модифика« тора адреса меток, первые выходы блока перекодировки чисел, модификаторов адре 5 са меток, адреса объектных команд, ад реса полуобъектных команд, "ад»реса сиМволов исходного текста, второй выход сим вольного анализатора и пятый выход" опера» торного анализатора соединены с первым входом блока обработки ошибок, второй выход блока перекодировки чисел, первые выходы бйока обработки ошибок и модификатора адреса макрокоманд, шестой выход, операторного анализатора и третий выход сймвольного анализатора соединены со вхо дом устройства управления, седьмой выход операторного аналйаатора подключен ко входу модификатора адреса символов исходного текста, вторые входы модифи

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

55 ратора, выходы которого подключены соот» ветственно к первому, второму и третьему выходам символьного аналйзатора, первый вход которого соединен со входами счет4 чиков, второй вход - co вторым управляюшим входом блока И, выход которого соединен с выходом символьного анализатора, операторный анализатор в системе содер жит переключатель, стековый регистр, первый выход которого подключены ко входу дешифратора, первый и второй выходы ко» торого соединены соответственно с первым входом переключателя и первым входом стекового регистра, второй вход переключателя соединен с управляюшим входом операторного анализатора, третий вход переключателя и второй вход стекового регистра соединены с первым входом операторного анализатора, второй вход которого соединен с четвертым входом переключателя, выходы которого с первого по четвертый подключены соответственно к выходам с первого по четвертый операторного анализатора, пятый, шестой и седьмой выходы которого соединены соответственно с третьим выходом дешифратора, вторым выходом стекового регистра и пятым выходом переключателя, четвертый выход дешифратора подключен ко второму выходу операторного анализатора, третий вход и третий выход стекового регистра соединены соответственно со входом и выходом операторного анализатора.

На фиг. 1 показана блок-схема предлагаемой системы, на фиг. 2 « логическая схема системы, на фиг. 3 - логическая схема модификатора agpeca; на фиг. 4логическая схема блока перекодировки чисел; на фиг. G - логическая схема блока обработки ошибок," на фиг. 6 логическая схема стекового регистра на фиг. 7логическая схема стека, на фиг. 8, 9схемы реализации символьного анализатора на фиг. 10 - операторного анализатора.

Система включает в себя оперативное эапоминаюшее устройство 1, вычислитель ное устройство 2, устройство управления

3, устройство управления каналами 4, внеш; нее запоминаюшее устройство 5, модификатор адреса символов исходного текста

6, символьный анализатор 7, операторный анализатор 8, модификатор адреса макрокоманд 9, модификатор адреса полуобъектных команд 10, модификатор адреса объектных команд 11, модификатор адреса ме ток 12, блок перекодировки чисел 13, блок обработки ошибок 1 4.

Более детально система представлена на фиг. 2, где дешифратор 15, блок чте ния 16, блок записи 17 являются элементами оперативного запоминаюшего устройI

674028

5 сгва (ОЗУ) 1; регистры операндов 18, 19 соединены с вычислительным устройством 2 блоками 20, 22 И, блоком 21

И - с ОЗУ 1, блоком 23 И вЂ” с операторным анализатором 8; модификатор симво- лов исходного текста 6 состоит иэ трех параллельно включенных счетчиков 24, 25, 26, причем выход счетчика 24 через блок 27 И соединен с дешифратором ОЗУ

15, выход счетчика 25 соединен с дешиф-1о ратором 28, нулевой выход которого сое динен с третьим разрядом счетчиков 24, 26, а выход счетчика 26 через дешифра« тор 29 соединен с блоком, обработки ошибок 14. 15

Символьный анализатор 7 выполнен (см. фиг. 2 и фиг. 8) из двух счетчиков

30, 31, причем выход счетчика 30 соеди» нен через блок 32 И с дешифратором ОЗУ

15, выходы счетчика 31 соединены через 2о дешифратор 33 с переключателем 34 анализатора 8 и с блоком обработки ошибок 14.

Операторный анализатор 8 выполнен с использованием переключателя 34, стеко вого регистра 35, дешифратора 36, сте ка 37, счетчика 38, дешифратора счетчика 39, причем выходы стекового регист ра 35 соединены с дешифратором 36, вы- ЗО ходы дешифратора 36 соединены с пере ключателем 34, со стековым регистром

35, счетчиком 38, через блок 40 И, ре гистр 35 - со стеком 37; стек 37 соединен через блоки И 41, 42 с регистрами

18, 19, выходы стека 37 соединены через блоки И 43, 44 с регистрами18, 16 а через блок И со стековым регистром

35, выход дешифратора 39 соединен с блоком обработки ошибки 14, Позицией

45 обозначен. стековый регистр. Дешифратор 36 соединен через блок 46 И с модификатором адреса макрокоманд 9, стеко вый регистр 35 соединен через блок 47

ИсОЗУ1, 45

Второй вариант стека операторного анализатора 8 (см. фиг. 2) может быть выполнен с использованием двух реверсивных параллельно включенных счетчиков

48, 49, причем выходы первого счетчика

48 соединены через блок 50 И с дешифратором 15, выходы дешифратора 36 сое динены с переключателем реверса счетчи ков 48, 49, выходы стекового регистра

35 соединены через блок 47 И с ОЗУ 1, выходы ОЗУ 1 соединены со стековым регистром 35. Выход дешифратора 51 соединен с блоком 14.

Модификатор адреса макрокоманд 9 выполнен в виде двух параллельно включенных счетчиков 52, 53, причем входы счет чика 52 соединены с регистром 54 через блок 55 И, входы младших разрядов счет- чика 52 соединены через блок линий задержки 56 с блоком 46 И, выходы счез чика 52 соединены через блок 57 И с дешифратором ОЗУ 15, входы счетчика

53 соединены через блок 58 И с выхода ми ОЗУ 1, выходы счетчика 53 соединены через дешифратор 59 с устройством управления 3, клеммы 60, 61 являются входами блока 58 И и дешифратора 59 соответственно, Модификатор адреса полуобъектных команд 10 выполнен из чезътрех параллельно включенных счетчиков 62, 63, 64, 65, причем выходы счетчика 62 соединены с дешифратором ОЗУ 15 через блок 66 И по первой ветви и через блок 67 И, ре1 истР 68, блок 69 И - p второй ветви, счетчики 63," 64 через дешифраторы 70, 71 соединены с блоком обработки ошибок 14, выход счетчика 65 соединен через блок 72 И с ОЗУ 1, выходы регист» ра 73 подсоединены параллельно выходам счетчика 63 ко входам дешифратора 70.

Модификатор адреса объектных команд

11 выполнен из двух параллельно включенных счетчиков 74, 75, причем выходы первого счетчика 74 соединены через блок

И 76, с дешифратором ОЗУ 15, выход счетчика 75 соединен через дешифратор

77 с блоком обработки ошибок 14, входы счетчиков 74, 75 соединены через блок

78 И параллельно входам счетчиков 62, 63, 64, 65.

Модификатор адреса меток 12 выполнен из трех параллельно включенных счетчиков

79, 80, 81, причем выходы счетчика 79 . соединены с дешифратором ОЗУ 15 через блок 82 И по первой ветви, а через блок

83 И, регистр 84, блок 85 И - по второй ветви, выходы счетчйков 80, 81 соединены через дешифраторы 86, 87 с блоком обработки ошибок 14. Позицией 88 обозначен блок И. Входы счетчика 81 соединены через блок 89 И с выходами ОЗУ

1, регистр 84 через блок 88 И соединен со счетчиком 79.

Второй вариант символьного анализатора (см. фиг. 2 и фиг. 9) выполнен из ре» гистра 18, блоков 90, 91 И и дешифратора 92, и отличие его or первого варианта состоит в том, что выходы дешифратора объединены в алфавитные группы букв, 674028 цифр, операторов, разделителей по кодам символов, а не по номеру в алфавите, как в первом варианте.

Более детально схема модификатора адреса 10 представлена на фиг. 3. Он вы- s полнен из триггера 93, регистров 94, 95, 96, соединенных через блоки 97, 98, 99 И со счетчиком 64, выходы триггера

93 соединены с шинами блоков И 100 и

101, блок И 102 включей на входе счет» 10 чиков 62, 63; выход триггера 103 сое» динен с шиной блока И 102, блок И 104 включен на входе регистра 73, выходы которого соединены параллельно вЫходам счетчика 63 на входах дешифратора 70.

Триггер 93 и блоки И 100, 101 представляют собой переключатель счетных имцу льсов.

Применение модификаторов адреса; со» стоящих из нескольких параллельно вклю ченных счетчиков, позволяет осушествлять несколько процессов одновременно, что приводит к увеличению скорости трансля ции.

Схема блока перекодировки чисел 13 представлена на фиг. 4, Этот блок выпол нен из упаковываюшего регистра 105, узла перекодировки упакованных десятичных чисел и двоичных- чисел в двойные

106, узла перекодировки двоичных чисел в двоичные числа с плавающей запятой

107, переключателя режимов 108, счетчика 10.9 и дешифратора 110 упаковываюшего регистра 105, счетчика 111 и де- . шифратора 112, причем"блок 105, 106, . З5

107 соединены йоследовательно через блоки И 113, 114, 115, на входах счетчи ков 109 и ill включены блоки И 116,.

li7, выходы блоков 105; 106, 107 соединены через блоки И 118, 119, и блок 4О

ИЛИ 120 с выходным блоком И 121;

Летальная схема блока обработкй ошибок представлена на фиг. 5. Этот блок выполнен в виде устройства, содержащего четыре параллельно включенных счетчика 45

122, 123, 124, 125, при этом на выхо де счетчиков 123, 125 включены дешиф раторы 126, 127. На выходе счетчика

122 включены блоки И128, 129, регистр:

130 адреса ключа зашиты и блок И 131; блок И 132 включен на входе счетчика

125; позицией 133 обозначен управляю-" . щий вход блока 14. Устройство перекоди» рования двоичных чисел в десятичные 134 соединено со входом регистра распаковки

135, блоки И 136, 137 включены на входе блока 134 и выходе блока 137, блок И 138 включен между регистром

139 и счетчиком 140, блоки И 141, 142, 143 включены на входе регистра 139, на входе и выходе счетчика 140 регистр 144 размера строки исходного текста включен ко входам блока И 132, блок И 145, блок задержки 146 включены последовательно на входе счетчика 147 адреса области названий ошйбок, регистр 148 адреса начала области названий ошибок включен через блок И 149 ко входам счетчика 147; позицией 150 обозначен переключатель.

Блоки И 151, 152 включены на входе регистра 148 и счетчика 147, дешифра» тор 153 включен ко входам блока И 145.

Стековый регистр (см. фиг. 6) выполнен из многобайтного основного регистра

153, блока управления импульсами сдвига 154, дешифратора 36, однобайтного блока И 155, многобайтного блока И 156, причем выходы старшего байта регистра

153 соединены через однобайтный блок

И 155 и многобайтный блок И 156 с младшими байтами регистра 153, выходы регистра 153 соединены с дешифратором

36, выходы дешифратора 36 соединены с первыми входами схем И, включенных на входе байтных шин блока 156, а выходы блока управления импульсами сдви» га 154 соединены со вторыми входами схем И, включенных на входе байтных шин блока 156, Схемы И, включенные на входе байтных шин блока И 156, на чертеже не пеказаны> считается, что они являются конструктивной частью блока И 156, .

Стек (см.. фиг. 7) выполнен из гене ратора импульсов 157, переключателя

158, счетчика 159, дешифратора 160, регистра 161, блока И 162, Н-1 блоков

И 163, 164, причем выход генератора

159 соединен через переключатель 158 со входом счетчика 159, один выход дешифратора соединен с переключателем

158, а остальные Н-1 выходов дешифра» тора 160 соединены с шинами блоков И

162, 164 в порядке возрастания их но» меров, выходы блоков И 163, 164 соединены со входами элементов памяти, а выходы Н-1 элементов памяти, начиная с первого, соединены со входами Н-1 блоков И 163, 164, позицией 165 обозначен блок И, выходы счетчика 159 через блоки И 166, 167 и регистр 161 включены к входам счетчика 159.

Йля простоты иэображения стек на фиг. 7, выполнен иэ четырех элементов памяти, но он может быть увеличен до заданного объема, при этом принципиаль «

674028

9 10 . ных изменений конструкция стека не цре в результат трансляции заносятся объектерпевает. тные команды, реализующие загрузку и

Нумерация элементов "на фиг. 8, 9, 10 выгрузку результатов вычислений в пасоответствует нумерации на фиг. 2.. мять ОЗУ йо стековому способу.

Описываемый транслятор предназначен 5 Предлагаемый способ является усовер для трансляции программ. с проблемно- шенствованием- известного способа трансориентированного языка АМАС-1 и с не ляции Мильнеса и ПОЛИЗа, основанного существенными дополнениями ой может на прямом просмотре формулы исходного быть использован для трансляции алгеб текста программы, вычислений промежураических выражений на фортран 1У и 10 точных результатов, загрузки формулы в стек в инверсном представлении ее с по Усовершенствование языка АМАС»1, следующей выгрузкой формулы из стекла состоит в том, что признак типа опера- . и вычислением результата. По этому меции, записанный в первом действии алгеб тоду в текст загружается вся формула раического выражения, автоматически pao. tS вместе с операциями.

npocrpaasercs на все последуюшие дейст» Последнее обстоятельство не позволявия этого выражения.. ет осуществлять анализ одновременно всех

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

Например, алгебраическое выражение В описанном выше методе для анализа

А =С+ К-N для вещественных чисел точ- формул используются два стека. Причем, но так же изобраэится на языке Фортран» стек уровня в виду койечного количества

1У АМАС и МАС-1. Лля и АМАС- . лля целых чисел состояний (не больше четырех операций) это выражение на Фортран-1У останется 5 может анализироваться с помощью аппабез изменения, на АМАС и АМАС-1 оно ратного устройства - дешифратора одно примет соответствующий вид. временно по всем ячейкам что увелич-!

i e у и и у 6 И

А = B С + В К - В М"и А = В С+ вает скорость трансляции.

+К-М. Кроме того, загрузка в стеки только

Суть способа трансляции алгебраичес»- З0 операции увеличивает скорость загрузки ких выражений, реализуемого описываемой и выгрузки в стек и увеличивает в целом системой, состоит в следующем: скорость трансляции, а загрузка в стек в операторы программы на исходном тек- процессе вычислений только промежуточсге заменяются на макрорасшйрения мак ных результатов не уменьшает скорость рокоманд в объектных кодах; вычислений. формула делится на уровни, При этом, под уровнем формулы принитрансляция алгебраических формул осу- . мается часть алгебраического выражения, ществляетм поэтапно - от уровня к уровню. заключенная между открывающей и закрыколичество этанов равно количеству - вающей скобками одной степени вложенуровней, 40 ности. Под степенью вложенности понимакаждый уровень делится на два подуров«ется число, указывающее номер открываюня: первый подуровень состоит из опера щей скобки и последовательности открываций сложить, вычесть, второй подуровень юших скобок в алгебраическом выражении, состоит иэ операций умножить, поделить, при условии равенства открывающих и затрансляция осуществляется с помощью, кряваюших скобок. При нулевой стегени

45 двух стеков стека уровня и стека невы- вложенности скобки отсутствуют. полнеиных операций; Трансляция очередного уровня может максимальное количество уровней, до» прерываться появлением старшего по степускаемых в формуле, определяется объе- пени вложенности уровня. При этом резульмом стека невыполненных операций и мо». таты трансляции очередного, то есть пре«

50 жет, например, равняться 32; . рванного и незакрытого уровня запоминав стек уровня, выполненный в виде сте- ются в стеке. По завершении трансляции кового регистра, загружается не более че- . высшего уровня осуществляется переход тырех операций: первая, последняя опера на трансляцию прерванного низшего уровция первого подуровня, последняя операция as u r.ä., пока не закончится трансляция

55 второго подуровня и очередная, в стек всего выражения. уровня эагружаетса также признак типа Макрорасширения в объектных кодах первой операции; делятся HB gBS типа, 674628

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

Трансляция осуществляется в две фазы.

На первой фазе исходный текст заменяется макрорасширениями, при этом непосредственно после записи микрорасширений второго типа заносит вторая адресная 10 часть этих команд из программы на про блемно-ориентированном языке в виде символьного адреса или литера. Результа том первой фазы является полуобъектная программа. !

На второй фазе символьные адреса и литералы заменяются их Относительными адресами в объектных кодах и на этом " трансляция кончается. Результатом транс- ляции является перемещаемый программный 20 модуль в объектных кодах.

Система работает следующим образом выполняя соответствующие режимы, . Режим (ЗТ) загрузки данных. В этом режиме массив макрокоманд заносится с. внешнего запоминающего устройства 5 в

ОЗУ 1 и адрес начала этого массива заносится в модификатор адреса макроко манд 9.

Режим (ЗП) загрузки исходного текста программы и параметров транслятора.

В этом режиме исходный текст программы на проблемно-ориентированном языке заносится в ОЗУ 1 и адрес начала и раз: мер этого текста, а также размер строк З5. этого текста заносится в модификатор адреса символов исходного текста 6. Кроме гого, в модификаторы адреса 10, 11, 12, заносятся соответственно адреса и размеры областей полуобъектной и объектной программы, номер регистра и ад рес и размер области таблицы меток. В блок обработки ошибок 14 также заносят- ся адрес и размер области таблицы названий ошибок и таблицы ошибок. Режим ЗП может выйолняться многократно поСле одCI нократного выполнения режима ЗТ.

Режимы ЗТ и ЗП выполняются йод упением операционной систе! ЭВМ. . "

Размеры зайисей объектных, полуобъект

rrrrx макрорасширений, а также меток, литералов и констант- мносятся в "ключ, расположенный в нулевом байте укаэанных записей.

Старший восьмой разряд ключа, равный 1", является признаком макрорасширения первого типа, а равный 0 - является признаком макрорасширения второго типа.

Седьмой разряд ключа, равный "l", является признаком литерала, а равный "0"является признаком символьного адреса в макрорасширении второго типа.

Из этого следует, что максимальная; длина макрорасширений первого типа может достигать 127 байт, а литераловдо 63 байт.

Ключи макрорасширений составляются и записываются в их записи перед загрузкой таблицы макрорасширений в ОЗУ

1. Остальные ключи формируются транслятором.

Режим работы фазы. 1 состоит в выполнении следующих операций..

Первая операция. Анализ символов. Эта операция выполняется символьным анали затором. Блоки 6 и 7 устанавливаются в исходное состояние. Это значит. в счетчике 24 находится адрес очередного символа исходного текста, в счетчике 25 - номер этого символа в строке текста, в счетчике 26 - размер неоттранслированной части "текста, В счетчик 30 заносится адрес алфавита исходного текста, записанный из per.acrpa 94 через блок И

97, в счетчик 31 - размер алфавита в символах, в регистр 139 содержимое счетчика 24, Очередной символ считывается по адресу в счетчике 24 и заносится в регистр

18 и в стековый регистр 35 через блок

И 91. Далее, первый (или очередной ) символ алфавита считывается по адресу в счетчике 30 в регистр 19. Qaaee, содержимое регистров 18 и 19 через блоки И

20, 22 заносится в вычислительйое ycr ройство 2, где осуществляется их сравнение. Если при этом символ оказался оператором (или частью оператора), то управление передается на выполнение второй операции, если символ оказался признаком символьно о адреса, то управление передается на выполнение третьей операции, если символ оказался литералом, то управление передается на выполнение четвертой операции; если .символ оказался признаком матки, то управление йередается на выполнение пятой операции.

После каждой операции сравнения к счетчику 30 прибавляется + 1, а из содержимого счетчика 31 вычитается + 1.

При появлении нуля в счетчике 31 дешифратор 33 подает сигнал об ошибке (появ» ления неалфавитного символа в тексте) в блок 14.

674028

13 14

По окончании обработки ошибки к со- . Далее, ключ макрорасширения считывадержимому счетчиков 24, 25 прибавляет». ется из ОЗУ 1 в счетчик 53 через блок ся + 1, а из содержимого счетчика 26 И 58. Далее осушествляется побайтное вычитается + 1. Если в счетчике 25 по-, считывание макрорасширения под счетчи явилось число 72 (сигнал окончания тек- ком 52 и запись макрорасширения под стовой части строки), то с выхода дешиф- счетчиком 62. При этом к счетчикам 52, ратора 28 поступает сигнал на четвертые 62, 65 прибавляется + 1, а из счетчиков входы счетчиков 24, 26, что эквивалент» 53, 63 вычитается + 1. но прибавлению числа 8 к счетчикам 24, При появлении в младших семи разря26, Это необходимо для того, чтобы íî- rî дах счетчика 53 нуля, дешифратор 59 вымер перфокарты, записанный в 73-80 ко- дает сигнал об окончании записи макрораолонку перфокарты, не анализировался как ширения, при этом содержимое счетчика текст программы. Далее счетчик 25 ус- 65 заносится в ОЗУ 1 по адресу в ретанавливается в.нуль и осушествляется гистре 68, то есть, записывается ключ с переход в начало первой операции на уо- 5 нулем в восьмом разряде, что является тановление в исходное состояние счетчи-, признаком того; что эта запись будет пе- ков 30, 31 и регистра адреса начала стро - ;реноситься в поле объектной программы ки 139 блока 14. без изменения.

Появление нуля в счетчике 26 означа- После этого содержимое счетчика 62 ет конец исходного текста, и соответству- О через блок И 67 заносится в регистр 68, юший сигнал с дешифратора 29 подается. к счетчику 62 прибавляется + 1, а из в устройство управления 3. " счетчика 63 вычитается + 1, При втором варианте анализа символов . Параллельно побайтному считыванию код сиМвола йз регистра 18 через блок; макрорасширения к содержимому счетчика

Й 90 постутщет в дешифратор 92, где 5" 74 размера объектной программы в модиосушествляется анализ сймволов за один — фикаторе11 прибавляется число,равноеразтакт. Второй вариант превосходит первый меру макрорасширения. Сложение этого чиспо быстродействию, но уступает первому iri осуьцествляется путем прибавления+1чепо.простоте йзготовлейия. :"рез схему И 78 к счетчику 74 при чтеВторая операция, Анализ операторов, ЗО нии или записывании каждого байта макАнациз состояния стекового регистра 35 рорасширения. осушествляется дешифратором 36, кото- В случае, если макрорасширение предрый йодает на схемы И, включенные на . ставляет собой часть объектной команды, входе байтных шин блока И 156, разре- . то есть в восьмом разряде находится «О", шаюшие сигналы.: 35 то к счетчику 74 прибавляется + 2, а из

По окончании первой операции на блок счетчика 75 вычитается + 2, или, что то управления имйульсами сдвига 154 пода- же самое, прибавляется и вычитается + 1 ется сигнал, последний подает в блок И из второго по старшинству разряда соот-

155 и на вторые входы схем И,включен- ветствуюших счетчиков 74 и 75. Это обных на входе байтных шин блока И 156, . 40 условлено тем, что размер относительноразрешаюшие сигналы и в регистре 35 го адреса вместе с номером регистра баосушествляется перемешение информации, . зы равен двум байтам. как описано в таблице. Кроме того, де- При егоM, в соответствии с состоянишифратор 36, в соответствии с состояни,ем стекового регистра 35, анализируемоем регистра 35, выдает на вторые выхо 45 го дешифратором 36, содержимое последды относительный адрес соответствующе- него либо не изменяется, либо заносится го макрорасширения в таблице макрорас в стек 37, через блок И 40, а затем обширений. Разрешаюший импульс, подава«нуляется, либо в обнуленный регистр 35 емый на шину блока И 46 от блока 154, через блок И 45 заносится информация о позволяет считать относительный адрес с 50 невыполненных операциях очередного уров.выхода дешифратора 36 и прибавить его ня выражения (см. таблицу ), к адресу начала таблицы макрорасширений В случаях, если размер объектной пров счетчике 55. Для этого постоянные вре граммы превышает установленное число, мени линий задержки в блоке 56 выбра то в счетчике 75 появляется нуль, а дены так, чтобы постоянная времени в стар- шифратор 77 BblgBeT сигнал об ошибке

55 шем разряде была больше времени пере» в блок 14. ходного процесса в младших предшеству- Сдвиги информации в стеке 37 осушест юших разрядах. вляются следуюшим образом. в счетчике

674028

15 16

159 ведется счет сдвигаемой информации фикатора 6 и записывается по адресу в элемейтов памяти влево или вправо при счетчике 62 модификатора 10 с помошью каждом обрашении к регистру 37, а в устройства 3 и блоков чтения 16 и зепи счетчике 35 ведется счет откры blx уров- си 17 в ОЗУ 1. При этом входной сигнал ней в формуле, Счет этот ведетси следую - 5 подается на входы трех счетчиков 24, шим образом . при появлении открываюшей 25, 26 или четырех счетчиков 62, 63, скобки формулы к содержимому счетчика 64,65 одновременно.

35 прибавляется + 1, при появлении за» При записи символов адреса к содеркрываюшей скобки иэ содержимого счетчи жимому счетчиков 24, 25, 62, 63, 65 ка 3 вычитается + 1. В случае, если со- о прибавляется + l, а из содержимого счетдержимое счетчика 35 превысило допусти чиков 26, 64 вычитается + 1. При появ мое число или оказалось меньше нуля, де-. ленни в счетчике 64 нуля дешифратор71 шифратор 39 подает сигнал o6 ошибке в . подает закрываюший сигнал на вход триг» блок 14. Сигнал об ошибке подается и в гера 93. Последний закрывает блок И том случае, если появился символ оконча- 100 и открывает блок И 101.

, ния формулы, ", а содержимое счетчика :. Если размер символьного адреса ока»

35 не равно нулю или индексный уровень: . зался равным 8, то ключ его, сформиро» оказался открытым. : .,., " . . ванный к этому моменту в счетчике 65, При органиэации стека на ОЗУ 1 соот -, заносится в ОЗУ 1 по адресу в регистре : ветствуюшие занесения ийформации из Ре 2 68, Затем содержимое счетчика 62 чегистра 35 осушествляются через блок.И . рез блок И 67 заносится в регистр 68, 47 по адресу в счетчике 48. При этоМ,: после этого к счетчикам 62, 63 прибавв параллельно включенном счетчике 49 ляется + 1 и модификатор заканчивает ведется счет свободной частй стека, а . работу. дешифратор 51 выдает сигнал об ошибке . " Если размер сиМвольного адреса ока

; 25 в случае переполнения Стека ." " .: " зался меньше 8, то переключатель 34

Если очередным символомокааался опе " закрывает триггер 93, и осушествляетphTop концййроь рйрав0 илив четчике — — у .ся перехОд на запись ключа символьного

1 тановился нуль, То осуществляется переход к: Bgpec8 шестой операпйи, в противном случае осу,, Если размер символьного адреса окашествляетси переход к первой операции 1.".;; . зался больше 8, то очередной импульс эаТретья операция. Запись символьного :: писи через блок Й 101 йоступает в блок айреса, Эта операция свадится к описанию обработки ошибок, а не на входы счетчиработы модификатора адреса, изображенно-: .. ков 62-65, так как блок И 100 закрыт. го на фиг, 2 и на фиг. 3. -,:.-.:.:: ..—, После обработки ошибки в блоке 14 оче33

К йсходиому моменту s счетчике 62 : редной импульс записи может вновь прой находитси адрес свободной части ОЗУ 1, ти через блок И 101, Этот процесс повувеличенный на + 1, в- данном случае - : - : -- : торяется до тех пор, пока не появится адрес полуобьектной программы. В счет :„, " операторнйй символ, после чего осушестчиках 63, 64, 65 находится «0, в ре - вляется переход на запись ключа символьгистре 68 находится. адрес полуобъектной :: ного адреса размером в 8 байт. йрограммы, в регистре 88 находйтся раз- .. При работе модификатора 10 в счетчи мер полуобъектной программЫ...:: .,. ке 63 ведется счет объема памяти, заСчетчики 62, 63, 65 установлены на " ня ой полуо6ъектной программой. При совсиожение + 1, счетчик 64 установлен на падении содержимого счетчика 63 с содервычитание + 1. Триггер 93 включен и жимым регистра 73 дешифратор70выдает нри этом на шину блока И 100 подается соответствуюший сигнал о заполнении или разрешаюший сигнал, а на шину блока И переполнении области полуобъектной про

101 подается эапрешаюший сигнал,На ши- ., граммы. По окончании третьей операции ну блока И 102 подается разрешаюший осушествляется переход к первой операсигнал с выхода триггера 103. Триггеры ции, 93, 103 включаются устройством 3.

На первом такте считывается содер Йля использования. только счетчиков жимое регистра 94 число 8 в счетчик64 64, 65 подается сигнал, закрываюший через блок И 97, а восьмой разряд сче ° триггер 103, который закрывает блок И чика 65 устанавливается в "1". 1 02.

Затем символьный адрес побайтно счи- Четвертая операция. Запись литерала.

1 дывается по адресу в счетчике 24 моди- В восьмой и седьмой разряды счетчика-674028

65 заносится 1, в остальные шесть разрядов заносится «О".

Проверяется признак типа литерала и соответственно типу литерала в счетчик

64 из какого-либо регистра 94, 95, 96 заносится соответствуюшее число 63, 16, 8, указывающее максимальный размер для данного типа литерала.

Если литерал буквенно-цифровой (максимальный размер его 63), то он эаписы- 1О вается в полуобъектную программу под счетчиком 63 аналогично символьному адресу до признака конца литерала.

Если литерал цифровой, то управление передается в блок перекодировки чисел

13, где литерал перекодировывается соот» ветственно типу операции, хранящемуся и стековом регистре 35. По окончании пере кодировки литерал заносится в ОЗУ 1 под счетчиком 62 аналогично символьному ад

20 ресу, но исходная информация берется из блока 13.

В случае появления ошибки в записи литерала дешифратор 71 и блок 13 выда25 ют сигнал ошибки и блок 14.

По окончании четвертой операции осушествляется переход к первой операции.

Пятая операция. Запись метки. При по явлении признака (оператора) метки в ио ходном тексте осуществляется чтение сле» дующих за признаком символов по адресу в в счетчике 24 модификатора 6 и запись его в восьмибайтный регистр 18, При этом размер метки подсчитывается счет35 чиками 64, 65, а входы счетчиков 62, 63 блокируются, Затем по адресу в счетчике 79 считътвается очередная метка иэ таблицы меток в регистр 19, Это считывание осушестля- 40 ется следующим образом. Адрес таблицы меток из регистра 84 заносится в счет» чик 79, а содержимое счетчиков 80 и 81 заносится в регистры 95, 96.

Счетный вход счетчика 80 устанавливается в положение вычитания .+ 1, в счет» чик 81 считывается ключ метки по адре су в счетчике 79. Затем осуществляется чтение метки в регистр 19 до появления в счетчике 81 0 . При появлении в счетчике 81 0" осуществляется сравнение содержимого регистров 18, 19 с помощью устройства 2. В случае несовпадения на вход счетчиков 79, 80, 81 подаются два имлульса (то-есть пропускается огносительный адрес в два байта) и считывается очередная метка иэ таблицы меток в регистр 19.

Появление в счетчике 80 "0 и соот ветствуюшего сигнала на выходе дешифратора 86 означает, что просмотр таблицы меток закончен. Если к этому моменту совпадения регистров 18, 19 не было, то содержимое регистра 18 заносится в таблицу меток. Осуществляется это следующим образом.

По адресу в регистре 84 заносится ключ метки иэ счетчика 65 и ОЗУ 1. Затем содержимое регистра 84 заносится в счетчик 79, к счетчику 79 прибавляется:+1, восстанавливается содержимое счетчиков- 80, 81 из регистров 95, 96, счет ный вход счетчика 80 устанавливается на сложение + 1 и осуществляется побайтное чтение - запись символов метки по адресу в счетчике 79. При этом счетчикй

79, 80 работают на сложение, счетчик 81 на вычитание + 1т в счетчике 79 указывается адрес очередного свободного байта, в счетчике 80 — размер таблицы меток, в счетчике 81 - размер свободной части

ОЗУ 1 области таблицы меток.

По окончании записи меток содержимое счетчика 74, то есть относительный адрес метки, заносится в ОЗУ 1 по,адресу в счетчике 79, после этого содержимое счетчика 79 заносится в регист 84. На этом юрмирование записи в таблице меток заканч ив ает ся.

Совпадение содержимого регистров 18, 19 означает наличие ошибки «двух одинаковых меток. Поэтому при совпадении подается сигнал в блок 14, ошибочная метка не записывается, содержимое счетчиков восстанавливается прежним.

По окончании пятой операции происхо» дит. переход к первой операции.

Шестая операция, Загрузка фазы 2. В счетчики 52 53 заносятся адрес и раз мер области объектной программы, в счет» чики 24, 25 модификатора 6 заносятся адрес и размер области полуобъектной программы, Занесение данных в счетчики модификатора 6 и 9 может осуществляться либо из ячеек ОЗУ 1, либо из регистров сверхоперативной памяти устройства 2 и пото му в описании шестой операции строго не оговаривается. Размер области таблицы меток заносится из счетчика 79 в регистр 95.

Размер области нолуобъекгной программы заносится из счетчика 63 в счетчик

25, Указание, через какой именно блок И проходит это занесение, не дается, так

674028

20 как считается, что необходимый для это- случае совпадения содержимого регистров го занесения блок И является составной 18, 1 9 осушествляется чтение относительчастью одного из указанных счетчиков, ного адреса метки, расположенного вслед эа

Это относится и к другим подобным слу- меткой, по адресу в счетчике 79 и запись чаям, так как указание всех блоков И 5 его в область объектной программы по адсильно загромождает .схемы и описание их. Ресу в счетчике 52 модификатора 9.

Затем выполняется вторая фаза, состо» При несовпадении содержимого регист» яшая в Реализации следуюших опеРаций. pos 18, 19 осушествляется аналогичное

Седьмая опеРация. Чтение ключа люн чтение и сравнение следуюшей метки. Этот очередной записи полуобъектной програм- 10 процесс йовторяет я до тех пор, пока не мы считываются по адресу в счетчике 24 будет найдена нужная метка или счетчик модификатора 6 в счетчик 26 модификато- 80 не установится в нуль, Последний слу» ра 6, затем к счетчику 24 прибавляется чай означает, что просмотр таблицы ме+1 и анализируются два старших разряда ток окончен, а метка не найдена. Для об- ключа. Если восьмой разряд ключа равен 15 работки этой ошибка с выхода дешифрато0", то осушествляется переход к восьмОЙ ра 87 поступает сигнал в блок 14. операции, если седьмой разряд равен "0", По окончании девятой операции управто осушествляется переход к девятой опе- ление. передается седьмой операции. рации, если седьмой разряд ключа равен Десятая операция. Запись относитель"1", то "осушествляется переход к десятой 0 ного адреса литерала, Содержимое двух операции. байт счетчика 74 модификатора 11, прейВосьмая операция. Запись макрзрасши- ставляюшее собой конкатенацию номера рений. Очередное макрорасширение считы- базового регистра в старшей тетраде и отвается по адресу в счетчике 24 и заносит- носительный адрес конца объектной пр ся в область объектной программы по ад 5 граммы в младших тетрадах (по этому адресу, в счетчике 52 модификатора 9. В мо- ресу будет зайисан ниже очередной лите дификаторе 6 ведется счет байтов макро- .Рал) заносится в поле объектной програм- расширения путем вычитания + 1 .иэ счет- мы по адресу в счетчике 52 модификаточика 26; появление "0" в счетчике 26 оз- ра 9. Затем литерал считывается из полуначает конец макрорасширения и соответ» объектной программы по адресу в счетчи30 ствуюший сигнал с дешифратора 29 ос- ке 24 модификатора 6 и записъ1вается в. танавливает запись; сигнализируя оконча- поле полуобъектной программы по адресу ние восьмой операции. Затем управление в счетчике 62 модификатора 10. передается седьмой операции. При этом содержимое счетчиков 4; ков 24

Девятая операция. Запись относитель 35 25, 52, 62, 63, 74 модификаторов 6, 9, ного адреса операнда (то есть символьно- 11 измейяется--на величину записываемого адреса). Регистры 18, 19 обнуляютМ, ro литерала. в счетчики 79, 80 из регистров 94, 95 По окончании десятой операции осушестзаносятся адрес области таблицы меток вляется переход к,седьмой операции.

40 и размер этой области. Счетчик 79 вклю- Выполнение второй фазы заканчивает-. .чен на сложение + 1, счетчики 80, 81: ся с просмотром полуобъектной програм включены на вычитание + 1, мы, r.е. при установлении содержимого

Операнд считывается по адресу в счет- счетчика 25 в ноль, о чем дешифратор чике 24 модификатора 6 в регистр 18 .. 28 выдает соответствуюший сигнал, до тех пор, пока в счетчике 53 не появит- Реализация описанных операций выпол45 ся 0 . При этом дешифратор 29 поааеТ няется под управлением устройства управ» сигнал об окончании загрузки регистра ления 3, в котором выполнены прошивки, 18. Далее, ключ первой или очередной соответствующие этим операциям. метки считывается в счетчик 81, а на При обнаружении синтаксических ошивходы счетчиков 79, 80 подается импульс бок в исходной программе на первой и

50. (+1). Затем первая или очередная метка второй фазах трансляции в блок обработки считывается в регистр 19 по адресу в ошибок 14 подается сигнал на передачу счетчике 79, go появления в счетчике 81 управления, По этому сигналу блок 14 нуля Появление нуля означает окончание записывает в область ошибок текст пер55

:загрузки метки в регистр 19, что сигна- фокарты, в которой обнаружена ошибка, лизируется сигналом с дешифратора 87. если идет первая фаза трансляции.

После этого осушествляется сравнение ре- Известно, что в заданных позициях пергистров 18, 19 с помошью устройства 2. B фокарты записан ее номер, который слу674028

22 жит первой частью адреса ошибок..Второй частью адреса ошибки является номер ошибочного символа в перфокарте, который записывается после текста перфокарты блоком 14. После этого блок 14 записывает название ошибки. На этом составление записи об ошибке на первой фазе за канчивается.

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

Работа блока ошибок 14 и всей системы при обнаружении ошибок осуществляется по принципу локализации и игнорирования 15 ошибки. Реализация этих принципов позво«4 ляет после занесения адреса ошибки в. таблицу ошибок запускать систему в работу дальше до тех пор, пока не встретится не» ошибочная ситуация, Это позволяет вы20 явить при одной трансляции максимальное количество ошибок. Стековый регистр 35 выполняет операции, составляющие суть поэтапной трансляции алгебраических выражений.

Для определенности положим, что для арифметики с плавающей точкой для пер» вого подуровня берется второй регистр, для второго подуровня берется четвертый

30 регистр.

В исходном состоянии во всех байтах регистра 35 — нули.

Заполнение регистра 35 сведено в таблицу.

Информация в первый байт региста 35 заносится для распознавания ошибки "огсутствие операнда между двумя операциями, а так же для распознавания индекс»ной круглой скобки (в Фортране 1У) or иерархической круглой скобки.

Заполнение стекового регистра 35 осуществляется в следующем порядке: первый символ заносится в первый байт регистра

35, затем дешифратор 36, в соответст45 вии с состоянием регистра 35, подает сигнал на перемещение (сдвиг вправо). данного символа в определенный байт регистра 35,при этом символ «С" во втором байте отирае т ся.

Если код первой операции начинался знаком кавычки (), то этот знак занс ситса в восьмой байт, знак операции равенство ("= ) или сравнение (: " ) заносится в пятый байт„символ типа ариф55 метики в седьмой байт регистра 35. Если код первой операции состоит из одного знака, в байтах 7 и 8 остаются пули. За крывающие кавычки кода первой операции в регистр 35 не заносятся. Знак кавычки в восьмом байте позволяет записать в пятый байт символ типа арифметики. Символ типа арифметики служит переключателем при выборке констант соответствующей арифметики из таблицы макрорасширений.

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

B таблице.- используются все четыре алгебраических знака "+", "-", х, "/"; хотя знаки одного подуровня взаимозаменяемы и могут ставиться в соответствующих позициях произвольно.

Символ " Ц означает наличие произвольного символа, символ «С" означает наличие символьного адреса, точнее, его последнего символа, так какпредьшушие символы зати- раются последним.

Знак-индексная открывающая скобка

" С" является операцией перехода на третий индексный подуровень, он заносится в третий байт регистра 35. При его появлении дешифратор 36 настраивается на выборку таких команд из таблицы макрорасширений, которые будут модифицировать адреса операндов с помощью индексов.

С появлением в первом байте регистра, 33 знака зарятая," заканчивается модификация адреса операнда с помощью индекса.

С появлением в первом байте регистра 33 знака закрывающая индексная скобка «3 заканчивается модификация адреса с помощью очередного индекса, осушесг— вляется выход с индексного подуровня> а значение операнда, выбранное по модифицированному адресу, заносится в соответ» ствуюший регистр, После этого содержимое первого, второго, третьего байтов ре» гистра 33 устанавливается в нуль.

Знак открывающая скоба (" является операцией перехода на очередной верхний уровень алгебраического выражения (см, 7.

674028

1 C 000 00 0000

Трансляция (=) загрузки первого операнда в обший регистр, сдвиг (=) Результат

Трансляция загрузки второго операнда, сдвиг (+) 00000=

2 +СООО=

Результат

Трансляция загрузки третьего операнда, сдвиг (/)

Результат

Трансляция (/), сдвиг (+ )

Результат

ОООО+=

3 /СОО+=

0003+=

4 м СО/+=

000й+=

5 -СОх+=

Трансляция (Ф ), (+) со слиянием результатов (Ф), сдвиг (-) 0000-=

Результат

Трансляция (-), сдвиг (+)

Реэульт*ат

6 +СОО»=

0000+= таблицу). Его появление в первом байте регистра 33 настраивает дешифратор 34 на выборку таких команд из таблицы макрорасширений, которые осушествляют запись промежуточных результатов иэ регистров 2 и 4 в оперативную память (в стек промежуточных результатов, адрес которого указан йрограммистом в обшем регистре 12), Затем дешифратор 36 подает сигнал на 10 запись пятого и четвертого байта иэ ре« гистра 35 в оперативную память (в стек операций) под счетчиками 48, 49 через блок схем И 47.

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

Знак закрываюшая скобка ")" являет» ся операцией перехода на очередной "нижний уровень алгебраического выражения.

Его появление в первом байте регистра

35 настраивает дешифратор 36 на выбор

25 ку команд из таблицы макрорасширений и запись их в полуобъектную программу.

Эти команды осушествляют запись ре» эультата текушего уровня в свободный регистр 6, восстановление результатов 30 предыдушего уровня с помошью стека про» межуточных результатов в регистр 2, 4, слияние результатов текушего уровня, т.е. содержимого регистра 5, с результатом

Состояния стекового регистра 3 восстановленного уровня с помошью соответствуюшего знака операции восстановленного уровня.

Запись в стек операций и в стек результатов осуществляется и при нулевом значении четвертого и пятого байта ре гистра 35 и регистров 2, 4. В случае нулевого значения байтов 5 и 4 регистра 35, запись результатов в стек резуль» татов не нужна С появлением знака точка с запятой ";" завершается трансляция выражения. При этом осушествляется слияние результатов второго подуровня (если они были) с результатами первого подуровня, иге нерйруется команда занесения результата по адресу первого операнда или сравнение результата с числом, адрес которого указан первым опе рандом.

Затем стековый регистр 35 устанавливается в нуль и он готов для трансляции следующего выражения, Оля использования круглых скобок

"()" в качестве индексных необходимо увеличить стековый регистр 35 до девяти байт, отвести под индексные скобки специально третий байт, соответственно сдвинуть расположенйе других знаков и внести соответствуюшие изменения в дешифратор 36, Ввиду тривиальности действий с индексными скобками соответствуюшие состояния регистра 36 в таблице не показаны.

5 (с 1 по 6 байт)

I ..

674028

Продолжение таблицы

Трансляция загрузки первого операнда, сдвиг (" )

Результат

Трансляция (4), сдвиг .(/) 7 м.СООО=

000 ÎÔ=

8 /СООТГ=

0000/=

Результат

Трансляция (/), сдвиг (+)

Результат

9 +СОО/=

O0OO+-=

10 (ОООО=

00000=

11 (000+= 00000=

12 (00/+=

00000=

1З )СООО=

ОООПП

1 4 ) СООО+=

0)ОПП=

Результат (см. пй. 2-9)

Трансляция (/), (+) со слиянием результатов f/), занесение результатов (+) в регистр 6, вьп.рузки нэ стека, результатов, .сдвиг «)"

Результаты (см. rm. 2-9) 15 )СО/+=

О) ОПП=

Трансляция (+) результатов регистров 2 н 6, обнуление третьего байта

: l 6 O) 04+-0000+=

Результат

Чтение очередного знака в регистр 35.17 О 00+=

П)ОО+=

Результат

Трансляция (+) к регистру 2 регистра 6, сдвиг (-) 18 -) 00+=

0000

19 /)00+=

0OO/+=

Результа r, Трансляция загрузки регистра 6 в регистр 4, сдвиг (/) Результат

Трансляция (+), обнуление 5 н 4 байт

Результа т

20 3 Соо+=

; оооо=. Загрузка пятого н четвертого; байтов регистра 35 в стек невыполненных операций, обнуление

Результат

Трансляция загрузки стека невыполненных ойераций и стека результатов нз регйстров 2 и 4, обнуление

Результат

Трансляцйя загрузкй стека невыполненных операпнй н стека результатов нз регистров 2 н 4, обнуление

Результат

Выгрузка двух байт нз стека невыйолненных операций, и занесение их s пятый и четвертый байт регистра 15

Результат (см. пп. 2-9 таблицы)

Трансляция (+), выгрузка двух байт из стека невыпол йенных операций, трансляция зайесения" результатов (+ ) в регистр 6, выгрузки из стека резуцьтатбв н загрузки их в регистрй 2 н 4, сдвиг ) 674028

28

Продолжение табл.

Трансляция (/) и (+) результатов регистра 4 к регистру

2, обнуление 5 и 4 байт

21; СО/+= 1 OOO=

Загрузка результата из регистра 2 по адресу первого операнда или сравнение, если в шестом байте знак обнуление

Результат -- - -"

22; СООО=

000000

Результаты

Работа блока перекодирования чисел 15 счетчик 123 заносится размер этой об.13 (см. фиг. 4) осуществляется следую- ласти, в счетчик 122 - адрес области щим образом. " таблицы ошибок, увеличенный на + 1, в

Признак кода первой операции арифме- регистр 148 адрес таблицы названий тического выражения с выхода дешифрато » ошибок. ра 36 постуйает на переключатель режи- 0 Регистр 139 предназначен для отслежи20 мов 108. Положим, что необходймо пере- ванин. адреса начала строки исходного теккодировать число иэ символьной ра»спЫо- " - " ста программы. По сигналу начала новой ванной формы в двоичный код с плаваю- :строки, подаваемому от дешифратора 28, щей точкой. в регистр 139 через блок И 141 заноситРазмер числа поступает в счетчик 109 ся содержимое счетчика 24 - адрес стро25 через блок И 116 а число эано сится в ре ки. гистр 105 через блок И 113. По оконча- - . При йоявлейии сигнала ошибки на вхонии занесений переключатель 108 запус I де переключателя 150, последний подает кает регистр 105, который упаковывает разрешавший сигнал на шины блоков И, число..По окончании работы регистр 105 127, 136,. 138; 149. При этом содержи30 подает сигнал в переключатель 108, аос-,мое счетчика 25 (номер ошибочного симледний-подает разрешающий сигнал на ши- вола в строке) заносится в устройство пе- ну блока И 114 и число зйносится"в узел рекодировки двойчного числа в десятичное перекодировки десятичных чисел в двоич-: 134, где оно перекодируется в десятичные 106, после чего переключатель 108 . ное упакованное число. Затем устройство

35 запускает узел-блок 106.. - 134 передает управление и результат в

По окончании работы узел 106 выдает распаковываюший регистр 135, где оно сигнал в переключатель 108, последний расйакойИвается и преобразуется s символьподает сигнал на шину блока И 115, со-. ный формат.

40 держимое узла 106 заносится в узел пе- - Параллельно с этим одержимое регист"реиодировки двоичнйх чисел в двоичные ра 139 заносйтся через блок И 138 в числа с плавающей запятой 107. К этому счетчик 140, и содержимое регистра 148 моменту в счетчик 111 через блок И 117 через блок И 149 заносится в счетчик заносится порядок исходного числа. Затем 147. После этого переключатель 150 по45 переключатель 108 запускает узел 107. дает разрешающий сигнал на шину блока

По окончании работы узел 107 выдает И 145 и относительный адрес названий сигйал в переключатель 108, а последний ошибки в таблице названий ошибок с выхо1 подает разрешающий сигнал на шину бло- дов дешифратора 153 через блок задержка И 121 и результат пройдя через блок ки 146 поступает на входы счетчика 147

/ 50

ИЛИ 120, снимается с выходов блока 121. и суммируется с его содержимым. Линии Промежуточные результаты, упакован задержки в блоке 146 подобраны так, что ные или двоичйые числа счит»ывают»с»я соот- - постояййЖ Мремени задержки в каждом ветственно через блоки 118, 120, 121 . разряде превосходит время переходного или через блоки 119, 120, 121.. процесса сложения в младших предшествуРабота блока обработки ошибок (фиг 5) ющих разрядах. состоит в следующем. Перед началом рабо- При появлении разрешающего сигнала ты в режиме загрузки в регистр 139 за на .шине блока И 132 содержимое регист носится адрес области таблицы ошибок, в ра 144 (число 80) заносится в счетчик

674028

30 мер метки в байтах, а вместо записи 80 байт перфокарты будет записана метка, последовательность микроопераций работы блока 14 при этом не изменится.

Работа стека; изображенного на фиг. 7, состоит в выполнении следующих операций: загрузки и выгрузки.

B исходном состоянии стека счетчик

159 и регистр 161 установлены в нуле.

В режиме загрузки переключатель 158 подает на шину блока И 166 разрешающий сигнал, и содержимое регистра 161 заносится в счетчик 159, к которому затем прибавляется +1. После этого переключатель 158 включает выход генератора 157 на отрицательный (r.е. на вычитание +1) счетный вход счетчика 159.

Выходы счетчика 159 анализируются дешифратором 160, с выходов которого разрешающие сигналы поступают на байтные шины блока И 163, в соответствии с частотой генератора 157. При этом содержимое элементов памяти блока 162 перезаписывается со сдвигом вправо на один элемент памяти. Период генератора 157 выбирается большим переходного процес са при перезаписи элементов в блоке 162.

При появлении в счетчике 159 числа О, дешифратор 160 подает сигнал в переклю чатель 158, последний отключает вход счетчика 159 от генератора 157 и перезапись прекращается.

После этого в освободившийся старший элемент памяти блока 162 (т.е. во входные байты) заносится информация через блок И 168, переключатель 158 подает разрешающий сигнал на шину блока

И 167 и содержимое счетчика 159 заносится в регистр 161 через блок И 167.

На этом загрузка стека кончается.

При выгрузке стека 162 на шину блока И 169 подается разрешающий сигнал и содержимое старшего элемента памяти блока 162 выгружается из стека. Далее, переключатель 158 подает сигнал в счетчик 159, устанавливая его в нуль, и включает на положительный вход (т.е. на сло» жение +1) счетчика 159 выход генератора 157, при этом дешифратор 160, анализирующий состояние счетчика 159, пода»

er разрешающие сигналы на байтные шины блока И 163, осуществляя перезапись эле- . ментов памяти св сдвигом влево на один элемент. При совпадении содержимого счетчика 159 и регистра 161 блок И165 вырабатывает сигнал окончания перезаписи, подавая его в переключатель 158. Последний переключает отрицательный вход

29

125.После этого переключатель 150 подает в устройство управления 3 сигнал на чтение перфокарты с ошибкой по адресу в счетчике 140 и запись ее в область таблицы ошибок по адресу в счетчике 122., 5

При этом счетчики 140, 122, 124 работают на сложение +1, а счетчики 123, 125 - на вычитание +l. Перезапись оканчивается, когда в счетчике 125 появится

"О" и дешифратор 127 подает при этом сигнал в переключатель 150, останавливающий перезапись.

Затем на входы счетчиков 122, 123, 124 подается импульс для записи одно-. байтного разделителя.

После этого содержимое регистра 135, через блок И 137 считывается в ОЗУ 1 по адресу в счетчике 122, дпя чего размер записи из регистра 135 заносится в счетчик 125. m

При появлении в счетчике 125 и нуле вого сигнала на выходе дешифратора 127 запись содержимого регистра 135 в ОЗУ

1 прекращается переключателем 150. После этого переключатель 150 подает сигнал на чтение ключа названия ошибки по адре су в счетчике 147 и запись его в счетчик

125. После чтения ключа к содержимому счетчика 147 прибавляется +1 и переключатель 150 подает сигнал в устройство управления 3 на чтение названия ошибки по адресу в счетчике 147 и запись его в строку таблицы ошибок по адресу в счетчике 122.

При появлении в счетчике 125 нуля дешифратор 127 выдает сигнал в переключатель 150, и последний подает сигнал в устройство 3 об окончании перезаписи.

После атого содержимое счетчика 124, т.е. ключ записи, через блок И 133 эано40 сится в ОЗУ 1 по адресу в регистре130, а затем содержимое счетчика 122 через блок И 129 заносится в регистр 130, На атом формирование записи в табли» це ошибок заканчивается и управление пе45 редается иа продолжение трансляции в блок, откуда пришла ошибка, с помощью устройства 3.

В случае появления нуля в счетчике

123 дешифратор 126 выдает сигнал о за

50 полнении области таблицы ошибок в устройство 3.

Работа блока ошибок 14 на второй фа зе имеет следующие отличия. Ключ метки заносится в счетчик 125 и в регистр

55.

135, адрес метки заносится в регистр

139. Таким образом, вместо номера ошибочного байта в записи будет стоять раз674028

31

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

1. Система для трансляции с проблем1 но-ориентированного языка, содержащая вычислительное устройство, соединенное двухсторонними, связями с оперативным запоминающим устройством и устройством

55 счетчика 159 на выход генератора 157 на один такт, т.е. для уменьшения содер жимого счетчика 159 íà +1.

После этого, переключатель 158 or ключает вход счетчйка 159 or выхода ге- 5 нератора 157 и подает. на шину блока И

167 разрешающий сигнал, при этом содер жимое счетчика 159 заносится в регистр

161 и выгрузка из стека заканчивается.

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

PeaynbraroM работы системы является перемещаемый программный Модуль, составленный в кодах машин. В тексте модуля находится программно организованный стек, йспользующий часть регист- ров и часть памяти оперативного запоминающего устройства, для хранения резуль татов промежуточных вычислений алгебраических выражений. для трансляции. алгебраических выражений с фортран-1У и Алгол-60 необхо

25 димо в строках таблицы меток, таблицы литералов ввести байт привяла чисел.

Этот прйзнак следует использовать при коррекции кода операции. Если число име« . ет признак вещественного, то в код one30 рации вводится коррекция, преобразующая данный код в код операции над числами с плавающей запятой, если число имеет признак целого, то данный код преобра зуется в кс д операции над целыми числами. Зля выполнения этой коррекции необхо . димо в устройство управления 3 ввести. дополнительные элементы, позволяющие

40 организовать цикл коррекции кода операции, повторяющийся столько раз, сколько опе раций имеется в алгебраическом выражении. Из этого следует, что время трансляции алгебраических выражений на языке АМАС1 меньше времени, трансляции на

45 языках Фортран-1У или Алгол-60 на интервал времени, затрачиваемый на Bblnon пение цикла коррекции кода операции.

50 управления, которое через устройство управления каналами соединено двухсторонними связями с внешним запоминающим устройством, управляющий вход оперативного запоминающего устройства соединен с выходом устройства управления, о т л и ч а ю ш а я с я тем, что, с целью повышения быстродействия, в нее введены модификаторы адреса символов исходного текста, адреса макрокоманд, адреса полуобъектных команд, адреса объектнь1х команд, адреса меток, символьный анализа тор, операторный анализатор, блоки перекодировки чисел и обработки ошибок, управляющие входы которых подключены к выходу устройства управления, выход вычислительного устройства соединен с первь|ми входами символьного и операторного анализаторов и блока перекодировки чисел, первый выход и второй вход символь. ° ного анализатора соединены соответственно со вторым входом и первым выходом операторного анализатора, Второй выход которого подключен к первому входу модификатора адреса макрокоманд, третий выход соединен с первыми входами модифи каторов адреса полуобъектных команд и адреса объектных команд, четвертый выход. подключен к первому входу модификатора адреса меток, первые выходы блока пе рекодировки чисел, модификаторов адреса меток,.адреса объектных команд, адреса полуобъектных команд, адреса символов исходного текста, второй выход символьного айализатбра и пятый выход операторного анализатора соединены с первым входом блока обработки ошибок, второй выход блока перекодировки чисел, .первые выходы блока обработки ошибок и модификатора адреса макрокоманд, шестой вь|ход операторного анализатора и третий выход символьного ан6лизатора соединены со входом устройства управления, седьмой выход опе- . раторного анализатора подключен ко входу модификатора адреса символов исходного текста, вторые входы модификатора адреса мащюкоманд. модификатора адреса меток и блока обработки ошибки соединены с выходом оперативного запоминающего устройства, входы которого соединены с соответствующими выходами введенных модификато ров, анализаторов, блока перекодировки чисел и блока обработки ошибок..

2. Система по и. 1, отличаюш а я с я тем, что символьный анализа« тор содержит два счетчика, выход первого из которых соединен со входом блока

И, первый управляющий вход которого под674028 ключен к уйравляющему входу символьного анализатора, выход второго счетчика соединен со входом дешифратора, выходы которого подключены соответственно к первому, второму и третьему выходам сим- 5 вольного анализатора, первый вход Koropoго соединен со входами счетчиков, второй вход -.со Broðûì управляющим входом блока И, выход которого соединен с выходом символьного анализатора.

3. Система, по п. 1, o r л и ч а ющ а я с я тем, что операторный анализатор содержит переключатель, creico вый регистр, первый выход которого под ключен zo вхоДу дешифратора, первый и второй выходы которого соединейы соответственно с первым входом переключателя и первым входом стекового регистра, второй вход переключателя соединен с уйравляющим входом ойераторного анализа тора, третий вход переключателя и второй вход стек08ого регистра соединен с первым входом операторного анализатора,второй вход которого соединен с четвертым входом переключателя, выходы которого с первого по четвертый подключены соо ветственно к выходам с первого по четвертый операторного анализатора, пятый, шестой и седьмой выходы которого соединены соответственно с третьим выходом дешифратора, вторым выходом стекового регистра и пятым выходом переключатеJIK, четвертый выход дешифратора подключен ко второму выходу операторного ана лизатора, третий вход и третий выход стекового регистра-соединены соответственно со входом и выходом операторного анализатора.

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

1. Патент США М 3593312, кл, 340-172.5, 1971.

2. Опубликованная заявка Великобритании № 1407761, кл. G-06 Р 15/20, 1 975, 674028

Фиг.д

Составитель А. Жеренов

Редактор Н. Каменская Техред 3. Фанта Корректор A. власенко

Заказ 4080/46 Тираж 779 Подписное

11НИИПИ Государственного комитета СССР по делам изобретений и открытий

113035, Москва, Ж 35, Раушская наб., д. 4/5

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

Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка Система для трансляции с проблемноориентированного языка 

 

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

Изобретение относится к компьютерной системе создания и перевода документов, к системе подготовки текста на языке ограничений и перевода на иностранный язык

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

Изобретение относится к обработке информационных естественно-языковых текстовых материалов

Изобретение относится к системам классификации текстовых сообщений

Изобретение относится к автоматизированному синтезу текстовых документов

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

Изобретение относится к распознаванию образов из графического изображения, и в частности к распознаванию текста на изображении документа в электронном виде

Изобретение относится к устройствам распознавания написанных знаков
Наверх