Устройство для аппаратурной трансляции

 

УСТРОЙСТВО ШШ АППАРАТУРНОЙ ТРАНСЛЯЦИИ, содержащее семь элементов И, первый элемент ИЛИ, регистры символа, регистр выдачи, схему сравнения, два регистра адреса , дешифратор кода пробела, три , генератор прямоугольных импульсов, четыре элемента задержки, дешифратор и первый блок памяти, вход записи, информационные входы и информационные выходы которого подключены соответственно к первому входу синхроимпульсов устройства, к первой группе информационных входов устройства и к первой группе информационных входов регистра вьщачи, вторая группа информационных входов которого соединена с выходами разрядов регистров символа, информационные входы которьк подключены к второй группе информационных входов устройства, входы и выходы дешифратора соединены соответственно с выходами разрядов первого регистра адреса и с управляющими входами записи регистров символа, выходы разрядов которых подключены к первой группе информационных входов схемы сравнения, вторая группа информационных входов которой соединена с информационными выходами первого блока памяти, информационные входы первого -и второго регистров адреса подключены к информационным выходам первого .блока памяти, адресные входы которого соединены с выходами разрядов второго регистра адреса, вторая группа информационных входов устройстваподключена к входам дешифратора кода пробела, выход которого соединен с установочным входом первого триггера и с управляюпщм входом запуска генератора прямоугольных импульсов , выход которого подключен к управляющему входу считывания первого блока памяти и через первый элемент задержки - к входу второго элемента задержки и к первым входам первого и второго элементов И, выход первого элеменУ1 та И соединен с первыми управляющими входами приема первого регистра 9 адреса и регистра вьщачи, выход вто&э рого элемента И подключен к управляющему входу схеьал сравнения, первый выход которой соединен с вторым управляющим входом приема первого регистра адреса и с первым счетным входом второго регистра адреса, вход установки исходного состояния устройства подключен к установочным входам исходного состояния первого и второго триггеров и к первому входу первого элемента ШШ, второй вход синхроимпульсов устройства соединен с единичным входом первого

СОЮЗ СОВЕТСКИХ

СОЦИАЛИСТИ4ЕСНИХ

РЕСПУБЛИН (19) (11) 3(5D G 06 F 15 38

ОПИСАНИЕ ИЗОБРЕТЕНИЯ, Н ABTOPGHO1VIY СВИДЕТЕЛЬСТВУ

ПЗСУДАРСТВЕННЬ)Й КОМИТЕТ СССР

Il0 ДЕЛАМ ИЗОБРЕТЕНИЙ И ОТКРЫТИЙ

J (21) 3586495/18-24 . (22) 05.05.83 (46) 23.09.84. Бюп. Ф 35 (72) В.И. Потапов, В.Ф. Нестерук и С.С. Ефимов (71) Омский политехнический институт (53) 681.325(088.8) (56) 1. Авторское свидетельство СССР

Ф 993272, кл. G 06 F 15/38, 1981.

2. Авторское свидетельство СССР по заявке 9 3500457/18-24, кл. G 06 F 15/38, 1982 (прототип). (54) (57) УСТРОЙСТВО ДЛЯ АППАРАТУРНОЙ ТРАНСЛЯЦИИ, содержащее семь элементов И, первый элемент ИЛИ, регистры символа, регистр выдачи, схему сравнения, два регистра адреса, дешифратор кода пробела, три триггера, генератор прямоугольных импульсов, четыре элемента задержки, дешифратор и первый блок памяти, вход записи, информационные входы и информационные выходы которого подключены соответственно к первому входу синхроимпульсов устройства, к первой группе информационных входов устройства и к первой группе информационных входов регистра выдачи, вторая группа информационных входов которого соединена с выходами разрядов регистров символа, информационные входы которых подключены к второй группе информационных входов устройства, входы и выходы дешифратора соединены соответственно с выходами разрядов первого регистра адреса и с управляющими входами записи регистров символа, выходы разрядов которых подключены к первой группе информационных входов схемы сравнения, вторая группа информационных входов которой соединена с информационными выходами первого блока памяти, информационные входы первого и второго регистров адреса подключены к .информационным выходам первого блока памяти, адресные входы которого сое-. динены с выходами разрядов второго регистра адреса, вторая группа информационных вхопов устройства. подключена к входам дешифратора кода пробела, выход которого соединен с установочным входом первого триггера и с управляющим входом . запуска генератора прямоугольных импульсов, выход которого подключен к управляющему входу считывания первого блока памяти и через первый элемент задержки — к входу второго элемента задержки и к первым входам первого и второго элементов И, выход первого элемента И соединен с первыми управляющими входами приема первого регйстра адреса и регистра выдачи, выход второго элемента И подключен к управляющему входу схемы сравнения, первый выход которой соединен с вторым управляющим входом приема первого регистра адреса и с первым счетным входом второго регистра адреса, вход установки исходного состояния устройства подключен к установочным входам исходного состояния первого и второго триггеров и к первому входу первого элемента ИЛИ, второй вход синхроимпульсов устройства соединен с единичным входом первого

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

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

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

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

1 11

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

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

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

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

35

IS

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

И соединен с первыми управляющими входами приема первого регистра адреса .и регистра выдачи, выход второго элемента И подключен к управляющему входу схемы сравнения, первый выход которой соединен с вторым управляющим входом приема первого регистра адреса и с первым счетным входом второго регистра адреса, второй выход схемы сравнения соединен с управляющим входом приема второго регистра адреса, вход установки исходного состояния устройства подключен к установочным входам первого и второго триггеров и к первому входу первого элемента ИЛИ, второй вход синхроимпульсов устройства соединен с вторым входом,первого триггера и с первыми входами третьего и четвертого элементов И, первый и второй выходы условий блока памяти подключены к первому входу второго триггера и к первому входу пятого элемента И, первый вход синхроимпульсов устройства соединен через третий элемент задержки с первым счетным входом второго ре-гистра адреса, инверсный выход первого триггера подключен к второму входу четвертого элемента И, прямой выход — к.второму входу третьего элемента И и к входу выбора приема-выдачи регистров символа, 115063

55 з 1 второй вход триггера и вход управления выдачей регистра выдач 1 соединен с выходом шестого элемента

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

ИЛИ, выход которого соединен с установочными входами третьего триггера, первого и второго регистров адреса, выход пятого элемента И подключен к второму управляющему входу приема регистра выдачи, входы и выход седьмого элемента И соединены соответственно с выходами второго регистра адреса и с информа— цчонным входом третьего триггера, прямой выход которorо подключен к выходу индикации ошибки 123. б

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

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

Поставленная цель достигается тем, что в устройство, содержащее семь элементов И, первый элемент

ИЛИ, регистры символа, регистр вы5

- 20

35 дачи, схему сравнения, два регистра адреса, дешифратор кода пробела, три триггера, генератор прямоугольных импульсов, четыре элемента задержки, дешифратор и первый блок памяти, управляющий вход записи, информационные входы и информационные выходы которого подключены соответственно к первому входу синхроимпульсов устройства, к первой группе информационных входов устройства и к первой группе информационных входов регистра выдачи, вторая группа информационных входов которого соединена с выходами разрядов регистров символа, информационные входы которых подключены к второй группе информационных входов устройства, входы и выходы дешифратсра соединены соответственно с выходами разрядов первого регистра адреса и с управляющими входами записи регистров символа, выходы разрядов которых подключены к первой группе информационных входов схемы сравнения, вторая группа информационных входов которой соединена с информационными выходами первого .блока памяти, информационные входы первого и вто— рого регистров адреса подключены к информационным выходам первого блока памяти, адресные входы кото.рого соединены с выходами разрядов второго регистра адреса, вторая группа информационных входов устройства подключена к входам дешифратора кода пробела, выход которого соединен с установочным входом первого триггера и с управляющим входом запуска генератора прямоугольных импульсов, выход которого подключен к управляющему входу считывания первого блока памяти и через первый элемент задержки— к входу второго элемента задержки и к первым входам первого и второго элементов И, выход первого элемента И соединен с первыми управляющими входами приема первого регистра адреса и регистра вь1цачи, выход второго элемента И подключен к управляющему входу разрешения сравнения схемы сравнения, первый выход которой соединен с вторым управляющим входом приема первого регистра адреса и с первьпк счетным входом второго регистра адреса, 1115(163 вход установки исходного состоя- ° ния устройства подключен к установочным входам исходного состояния

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

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

l5

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

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

На чертеже изображена схема предлагаемого устройства.

Устройство содержит блоки 1 и 2 памяти, регистры 3-5 адреса, схему

7 11

6 сравнения. дешифратор 7, регистры 8 символов, регистр 9 выдачи, переключатель,10, генератор 11 прямоугольных импульсов, дешифратор

12 кода пробела, триггеры 13-15, два элемента ИЛИ 16 и 17, элементы

И 18-26, элементы 27-34 задержки.

На.схеме также обозначены вход 35 установки исходного состояния устройства, группы информационных входов 36-38 устройства, входы 39-41 синхроимпульсов устройства, группа выходов 42 устройства, выход 43 индикации ошибки.

Входы 36 и 37, 39 и 40 могут, например, подключаться к стандартному интерфейсу вычислительной машины типа 2К, к наборной клавиатуре на пульте улравления устройства или к пишущей машинке типа "Консул", вход 35 и выход 43 — соответственно к кнопке начальной установки и к световому индикатору на пульте управления устройства, выходы 42— к информационным входам внешнего для устройства блока памяти, хранящего двоичную программу на выходном языке.

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

В конечных "узлах графа (листьях) помещается двоичный код выходного языка, соответствующий одной из конструкций входного языка. Узел, имеющий исходящие ветви, является порождающим, более одной исходящей ветви — ветвящимся. По графу составляются карты заполнения блоков 1 и 2 памяти.

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

1. Если построение графа для выбранного языка программирования не проводилось, то идти к 2. Иначе

15063 8 (требуется достройка графа дополнительно введенными конструкциями) идти к 2.9.

2. Строится граф для выбранного

5 языка программирования следующим образом.

2.1. Строится начальный узел графа — корень.

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

2.3. Выбирается первый символ конструкции.

2.4. Граф достраивается узлом, 15 который соединяется ветвью с последним из построенных узлов и имеет на единицу больший ранг. Идти к 2.6.

2.5. Производится достройка графа узлом, который соединяется ветвью

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

2.6 ° Если построенный узел не является листом (листом узел являет.ся в том случае, если соответствующий ему символ является пробелом), то он помечается выбранным символом и выбирается следующий символ. Ид30 ти к 2.4. Иначе идти к 2.7..

2.7. В лист записывается группа двоичных кодов (в частном случае— один) конструкций выходного языка, являющихся двоичными эквивалентными рассмотренной конструкции входного языка.

2.8. Если рассмотрены все конструкции входного языка, то идти к 3.

Иначе идти к 2.9.

4О 2.9. Выбирается следующая конструкция входного языка.

2. 10. Выбирается первый символ конструкции.

2.11. Выбирается узел нулевого ранга, если таких узлов несколько — то крайний левый.

2.12. Если символ конструкции совпадает с символом выбранного узла, идти к 2.13. Иначе идти к

2.15.

2.13. Выбирается следующий сим— вол конструкции.

2.14. Выбирается крайний левый узел из порожденных рассмотренным узлом, являющийся листом. Идти к

2.12. Иначе идти к 2.5, 2.15, Если рассмотренный узел имеет справа узлы, порожденные

1О!! 5063

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

2. 1 2. Иначе идти к 2. 5.

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

Для предварительной оценки объема требуемой памяти и времени трансляции по графу можно воспользоваться формулами, приведенными в конце методики. 15

4. Если основная численная разметка графа не проводилась, идти к 5.

В противном случае (проводилась достройка графа) идти к 4.1.

4.1 ° Выбирается узел из имеющих 20 порожденные неразмеченные узлы, значение Нl основной разметки которого наименьшее.

4.2. Переменной И присваивается значение основной разметки листа, находящегося в конце маршрута, начинающегося узлом, порожденным узлом Нl и являющимся соседним с крайним левым из неразмеченных, порожденных тем же узлом. 30

4.3. Уничтожается основная разметка всех узлов, величины Нl которых больше M.

4.4. Идти к 5.7.

5. Проводится основная разметка графа.

5.1. Узел нулевого ранга (если их несколько, то крайний левый) помечается числом Нl-1 (корень дерева — нулем) .

5.2. Крайний певый узел из порожденных последним помеченным узлом помечается числом Н l = Нl + 1 °

5.3. Если помеченный узел не является листом, идти к 5.2. Иначе 4 запоминается значение Нl (Н = Нl) .

Идти к 5.4

5.4. Выбирается узел, помеченный числом Нl = Нl-l.

5.5 Если выбранный узел является ветвящимся и имеет порожденные узлы, расположейные правее -узла

Нl + 1, то идти к 5.7. Иначе идти к 5.6.

5.7. Выбирается крайний левый узел из неразмеченных, порожденных узлом Н1.

5.8. Выбранный узел помечается числом Н! = Нl + 1. Идти к 5.3.

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

6.1. Номера А и Al строки карты памяти (т.е. адрес соответствующей ячейки памяти) основного и дополнительного блоков памяти соответственно принимаются равными нулю (А=О Аl =0).

6. 2. Выбирается узел, помеченный номером Нl = 1.

6.3. Если символ выбранного узла имеет. несколько двоичных эквивалентов, то выбирается строка

А = А-1 и значение третьего поляее увеличивается на единицу. Идти к 6.8. Иначе идти к 6.4.

6.4. В первое поле строки А заносится код символа узла Нl, например, в коде КОИ-7 (выбор кода определяется устройством ввода символических конструкций), если выбранный узел является листом — то код пробела.

6.5. Если узел Н! порожден ветвящимся узлом и не является крайним правым среди порожденных этим узлом, то во второе поле заносится двоичный код величины

An + (Hln H1n) +

+ К„ (1)

" " n, Í Ьъ-1 где л, п — индексы, обозначающие принадлежность переменных соответственно узлу Нl (левому) и соседнему справа от него, КА — число узлов от Н1 до

Н!. Н „, H включительно, являющихся листьями.

В противном случае во второе поле заносится код 1...1 °

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

5.6. Если выбранный узел помечен,цислом Нl = О, то идти к 6. Иначе идти к 5.7.

6.7. В четвертое поле записывается признак типа формата заполненной строки — "нуль".

1115063

6.8. Если узел Н1 не лист, то выбирается узел Н1 = Н1 + 1 и строка А = А + 1. Идти к 6.3. Иначе идти к 6.9.

6.9. В случае, если записанный в листе код является единственным, идти к 6.15. Иначе идти к 6.10.

6.10. В крайний правый разряд первого поля строки А основного блока памяти заносится единица, в оставшиеся разряды — код числа А1.

6,11. Выбирается первый код макрорасширения, записанного в листе.

6.12. Если двоичный код макрорасширения является последним, то в крайний правый разряд строки А1 дополнительной карты памяти записывается единица, иначе — нуль. В остальные разряды заносится выбранный код макрорасширения.

6.13. Выбирается строка А = А +1.

6.14. Если выбранный код макрорасширения не является последним, следующий код считается выбранным. Идти к 6. 12. Иначе идти к 6.16.

6.15. В первое поле строки А =

= А + 1 заносится выбранный двоичный код конструкции выходного языка.

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

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

6.18. В четвертое поле записывается признак формата заполненной строки — "единица".

6 ° 19. Если при составлении карты использованы не все узлы .графа (Н1 = Н1мд„ ), выбирается узел Н1

= Í1 + 1 и строка А = А+1. Идти . к 6.3. Иначе идти к 10.

7. Если вспомогательная численная разметка графа не проводилась, то идти к 8. Иначе (проводилась достройка графа) идти к 7.1.

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

7.2. Уничтожается вспомогательная численная разметка всех узлов от Н2 + 1 до Н2 включительно.

7.3. В первом случае (a также если ветвящийся узел относится одновременно к узлам двух типов) идти к 8.5. Иначе выбрать узел Н2 и идти к 8.2.

t5 8. Выполняется вспомогательная численная разметка графа.

8.1. Узел нулевого ранга (если их несколько, то крайний левый) помечается числом Н1 = 1 (корень дерева — нулем).

8.2. Выбирается крайний левый узел из порожденных выбранным ранее.

25 8.3. Если узел, породивший выбранный, является ветвящимся, выбранный узел помечается числом

Н2=Н2+1 °

8.4. Если выбранный узел не яв30 ляется листом, то идти к 8.2. Иначе идти .к 8.5.

8.5. Выбирается узел Н2. Запоминается значение его разметки (Ц = Н2).

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

40 помечается номером Н2 = Н + 1. Идти к 8.4. Иначе. идти к 8.7.

8.7. Выбирается узел Н2 = Н2-1.

8.8. Если Н2 О, идти к 8.6. Иначе идти к 9.

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

9.1. Номер строки основной и дополнительной карт памяти принимается равным нулю (А = О, А1 = О).

9.2. Выбирается узел, помеченный номером Н2 = 1.

9.3. В первое поле строки А записывается код символа узла Н2, если узел Н2 является листом — то код пробела.

1115063!

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

Ап=A„+ 1+ (H2> H2„) +

Л Н2л, Н2 и- где л, п — индексы, обозначающие принадлежность переменных соответственно левому и правому узлу из рассматриваемой пары узлов, К вЂ” количество листьев, рас"2л 2п-1 положенных в конце всех маршрутов, проходящих через узлы от Н2л до

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

9.5. Заполнение третьего поля произвольно, если ранг узла Н2+1 не превышает ранга узла Н 2, иначе в него записывается двоичный код ранга узла Н2 + 1.

9.6. Четвертое поле предназначено для записи признака типа формата заполнения строки — "0".

9.7. Если ранг узла Н2 + 1 больше ранга узла Н2, выбирается узел

Н2 = Н2 + 1 и строка А = А + 1. Идти к 8.3. Иначе идти к 9.8.

9.8. В случае, если записанный в листе код является единственным, идти к 9.14. Иначе идти к 9.9.

9.9. В крайний правый разряд первого поля строки А основного блока памяти заносится единица, в оставшиеся разряды — код числа А1.

9. 10. Выбирается первый код макрорасширения, записанный в листе.

9.11. Если двоичный код макро- расширения является последним, в крайний правый разряд строки А1 дополнительной карты памяти записывается единица, иначе — нуль. В остальные разряды заносится выбранный код макрорасширения.

9.12. Выбирается строка Ai = А1+1

9.13. Если выбранный код макрорасширения не является последним, выбирается следующий код макрорасширения. Идти к 9.11. Иначе идти к 9.15.

Н

Ксис(кс (H„ awe Кк кс + »вЂ” K><)"

"кС

Т.ст (5) к„ (6) к, Тксс М Т ст + (— К /

1=1

1) ° м. Т, (7) (ЕЛэ ) — объем необходимой памяти в ячейках основного (дополнительного) блока памяти, Н „ — максимальное значение разметки графа, К Л вЂ” количество листьев графа, К вЂ” количество кодов

1 макрорасширения, записанных в 1-м листе, Т вЂ” время трансляции конструкции,"

Т вЂ” длительность такта устройства генер атор а им пул ь со в.

Ткс

Т ксс кргр

40 где ЕО у

50

9.14. В первое поле строки А

= А+ 1 заносится выбранный двоичный код конструкции выходного языка.

9.15. Второе поле предназначено

5 для признака вставки: если в код конструкции выходного языка не треI буется вставлять код какого-либо символа конструкции входного языка, то в поле эаписываегся нулевой код, иначе — единичный.

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

9.17. В четвертое поле записывается пРизнак формата заполненной строки — "единица".

20 9.18. Если при составлении карты использованы не все узлы графа (Н2 Ф Н2мд„,), выбирается узел Н2

= Н2 + 1 и строка А = A+1. Идти к 9.3. Иначе идти к 10.

25 10. Конец.

Оценка объема занимаемой памяти и времени трансляции по графу производится следующим образом:

Юзз = Никс + Кл (3) м

ЕЛ ч =, Кк „ (4) )6

1115063

l5 <"экю

Н Н значение разметки узлов графа, в которых записаны символы рассматриваемой конструк- 5 ции (максимальное значение), количество кодов макрорасширения в листе конструкции, количество узлов, расположенных левее узлов, имеющих разметку HKC u имеющих тот же по- 15 рождающий узел, среднее время трансляции конструкции при разных частотах исполь- 20

К

«вкс зования отдельных конструкций; время трансляции программы, количество конструкций в программе, длительность такта ввода символа в устройство, количество символов в коде 1-й коь: конструкции входного языка.

25

Приведенные формулы имеют одинаковый вид для обоих вариантов составления карты памяти. При выборе конкретного варианта переменная Н заменяется на соответствующую переменную Н1 или Н2.

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

В случае же несовпадения номер регистра символа остается без изменений, а адрес перехода совпадает со значением второго поля ячейки памяти. Это позволяет после перебора всех допустимых значений содержимого анализируемого регистра символа выполнить переход на некоторый фиксированный адрес, появление кода которого на выходе регистра 4 адреса свидетельствует о наличии запрещенной комбинации в группе регистров 8 символа. В устройстве в качестве такого адреса выбран адрес последней ячейки памяти, распознаваемый элементом И 20 (код адреса 1... 1).

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

При включении устройства на вход 35 подается сигнал, устанавливающий триггеры 14 и 15 и регистр

5 адреса в нулевое состояние и поступающий через элемент ИЛИ 16 для установки в нуль регистра 4 адреса. Затем производится запись информации в блок 1 памяти. На информационные входы 37 устройства поступает первое слово для записи в нулевую ячейку памяти, адрес которой установлен в регистре 4 адреса. Сопровождающий данное слово синхроимпульс по входу 40 поступает на вход элемента 34 задержки и на вход управления записью в блок 1 памяти, в результате чего происходит прием слова в соответствующую ячейку памяти. После этого на счетном входе регистра 4 адреса появляется сигнал, прошедший через элемент 34 задержки, и значение адреса увеличивается на единицу. В следующем такте поступает очередное слово по входам 37 и сопровождающий его синхроимпульс по входу 40. Запись данного слова в блок 1 памяти и увеличение значения адреса в регистре 4 адреса выполняется также, как и в предыдущем такте.

Аналогичным образом выполняется заполнение блока 2 памяти кодами макрорасширений макрокоманд с входов 36, сопровождающий каждый код синхросигнал поступает по входу 39 на вход управления записью блока 2 памяти и через элемент 27 задержки на счетный вход регистра 5 адреса.

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

Если блок 1 памяти выполнен не в виде программируемого, а в виде постоянного запоминающего устройства, подготовка устройства к рабо18

1115063

17 те заключается в установке двух пг,ат из некоторого набора плат, каждая пара из которых ориентирована на определенную пару входного и выход— ного языков, и в подаче сигнала начальной установки на вход 35 для установки в нуль триггеров 14 и 15 и регистра 4 адреса аналогично описанному.

В режиме записи конструкции входного языка в регистры 8 символа с входов 38 последовательно друг за другом поступают символы конструкции входного языка, а по входу 41 сопровождающие их синхроимпульсы.

По первому синхроимпульсу происходит запись символа в первый регистр

8 символа следующим образом. Так как на инверсном выходе триггера 15 .единица, то первый синхроимпульс через элемент И 25 и элемент ИЛИ 16 проходит для установки в нуль регистров 3 и 4 адреса и регистра 15.

Этот же синхроимпульс поступает на единичный вход триггера 15. К моменту появления импульса на выходе .дешифратора 4 триггер 15 переключается в единичное состояние и на входах выбора приема-выдачи регистров 8 символа с выхода триггера

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

Втброй синхроимпульс с входа 41 проходит уже через эпемент И 26, так как триггер 15 находится в единичном состоянии, и поступает на счетный вход регистра 3 адреса. В результате этого (появляется сигнал на управляющем входе одного из регистров 8 символа с соответствующего выхода дешифратора 4) производится запись кода очередного символа в следующий регистр 8 символа.

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

По коду пробела на выходе дешифратора 12 появляется сигнал, переводящий триггер 15 в инверсное состояние, что меняет уровень напряжения на входах выбора приема-выдачи регистров 8 символа, и производящий запуск генератора 11 прямоугольных импульсов. Синхроимпульс с входа 41, поступивший с символом "Пробел", проходит через элемент И 25!

О

S5

2S

55 и элемент И1П! 16 и устанавливает в нуль регистр 3 адреса. На этом режим приема конструкции входного языка заканчивается.

В режиме трансляции по сигналу с генератора 11 прямоугольных импульсов считывается информация из блока 1 памяти. Кроме того, через эле<мент 31 задержки и элемент И 24 (так как триггер 14 в единичном состоянии на инверсном выходе) он поступает на управляющий вход схемы 6 сравнения, в результате чего сравниваются коды с выходов блока 1 памяти и с выходов регистра 8 символа, адрес которого установлен в регистре 3 адреса. При их совпадении появляется сигнал на выходе схемы

6 сравнения, что приводит к увеличению адреса блока 1 памяти в регистре 4 адреса на единицу и к приему в регистр 3 с выходов блока 1 памяти адреса следующего символа.

По следующему синхроимпульсу с выхода генератора 11, если коды на входах схемы 6 сравнения совпадают, в устройстве выполняются те же действия. В случае несовпадения кодов символов на схеме 6 сравнения сигнал появляется не на прямом выходе, а на инверсном. Поэтому значение регистра 3 адреса не меняется, а в регистр 4 адреса принимается адрес перехода в блоке 1 памяти.

Режим трансляции продолжается до тех пор, пока при считывании информации из блока 1 памяти на выходе условий, соединенном с входом триггера 14 (четвертое поле ячейки — см. методику) не появится единица, переводящая триггер в единичное состояние на прямом выходе, Высокий уровень напряжения с прямого выхода триггера 14 открывает стробирующие входы элементов И 21-23.

В результате этого сигнал с выхода элемента 31 задержки пройдет через элемент И 23 и на вход управления приемом с первой группы входов регистра 9 выдачи, и двоичный код конструкции выходного языка (либо начальный адрес макрорасширения в .блоке 2 памяти) принимается в регистр выдачи. Этот же сигнал приведет к приему в регистр 3 адреса номера вставляемого символа, код которого выдается с соответствующего регистра 8 символа на вторую группу входов регистра 9 выдачи. Ес19 11 ли на выходе условий блока 1 памяти, соединенном с входом элемента И 22 (признак вставки — второе поле ячейки памяти), — единица, сигнал с выхода элемента 32 задержки проходит на вход управления приемом с второй группы входов регистра 9 выдачи, и код вставляемого символа принимается в регистр выдачи. Затем сигнал с выхода элемента 26 задержки проходит через элемент И ?1, на другом входе которого присутствует единица с прямого выхода триггера 14, на вход управления выдачей регистра 9 выдачи.

Двоичный код (кроме младшего разряда), записанный в регистре 9 выдачи и выданный из него по сигналу с выхода элемента И 22, поступает на входы переключателя 10 и регистра 5 адреса.

Если в крайнем правом разряде регистра 9 выдачи записан нуль, то высокий уровень напряжения с инверсного выхода разряда поступает на вход элемента И 18 и на управляющий вход переключателя 10, в результате чего на выходы 42 устройства с выходов регистра 9 выдается двоичный код конструкции выходного языка.

К моменту поступления сигнала с инверсного выхода младшего разряда регистра 9 выдачи на один из входов элемента И 18 на его другой вход: через элемент 30 задержки поступает сигнал с выхода элемента И 21, по которому бып выдан код из регистра 9 выдачи. В результате этого с выхода элемента И 18 через элемент

ИЛИ 17 на вход генератора 11 прямоугольных импульсов поступает логическая единица, приводящая к его остановке. Эта же единица поступает на вход триггера 14, переводит его в единичное состояние на инверсном выходе и тем самым подготавливает устройство к обработке следующей конструкции входного языка.

На этом режим выдачи заканчивается.

Если же в младшем разряде регистра 9 выдачи записана единица, то с прямого выхода данного разряда она поступает на вход элемента 28 задержки и элемента И 19, на другом входе которого еще сохраняется высокий уровень напряжения с выхода элемента 29 задержки. Появление

15063

5 !

О

5S единицы на выходе элемента И 19 приводит к приему в регистр 5 адреса с выходов регистра 9 выдачи начального адреса макрорасширения транслируемой макрокоманды. После этого с выхода элемента 28 задержки поступает сигнал на вход управления считыванием блока 2 памяти, и с его выходов двоичный код первой конструк ции макрорасширения выдается через переключатель 10 на выходы 42 устройства, так как на управляющем входе переключателя нуль с инверсного выхода младшего разряда регистра 9 выдачи.

Следующий импульс с выхода генератора 11 прямоугольных импульсов аналогично ранее описанному приводит к выдаче кода из той же ячейки блока 1 памяти и записи его в регистр 9. Значение младшего разряда кода также поступает на счетный вход регистра 5 адреса, вход элемента 28 задержки и вход элемента

И 19. Поскольку на другом входе элемента И 19 к этому времени низкий уровень напряжения, поступающего с выхода элемента 29 задержки (из-за переключения триггера 14 в нуль на инверсном выходе), на вход управления приемом регистра адреса сигнал не поступает. Содержимое регистра 5 адреса увеличивается сигналом, поступившим на его счетный вход. Затем с выхода элемента 28 задержки на вход управления считыванием поступает сигнал, по которому очередная двоичная конструкция выходного языка выдается на выходы 42 через переключатель 10.

Описанные действия повторяются до тех пор, пока из младшего разряда блока 2 памяти не выдается единица, что соответствует последнему коду макрорасширения, Данная единица, пройдя чере= элемент HJIH

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

Если в процессе трансляции с выхода регистра 4 адреса появляется код 1...1, элемент И 20 переключает2>

1115063

10

ВНИИПИ 6772/36 Т аж 698 По свое ся в единичное состояние, и на выхо- де 43 индикации ошибки появляется сигнал, говорящий о том, что введенная в регистры 8 символа конструкция является недопустимой и резуль- З тат трансляции ошибочный.

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

Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции Устройство для аппаратурной трансляции 

 

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

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

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

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

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

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

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

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

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