Научная статья на тему 'Универсальная интерпретирующая система (уис)'

Универсальная интерпретирующая система (уис) Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
52
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Универсальная интерпретирующая система (уис)»

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО

ИНСТИТУТА имени С. М. КИРОВА

Том 168

1969

УНИВЕРСАЛЬНАЯ ИНТЕРПРЕТИРУЮЩАЯ СИСТЕМА

(УИС)

Н. С. ГОЛОСОВ, О. к. ГОРДЕЕВ

(Представлена научным семинаром вычислительной лаборатории ТПИ)

Несмотря на сравнительно небольшую оперативную память (1777 ячеек), ЭВМ «Минск-1» благодаря устойчивой работе может решать довольно сложные инженерные задачи. По мере усложнения решаемых задач программист вынужден отказаться от программирования методом фиксированной запятой и перейти на программирование методом плавающей запятой. Однако это приводит к сильному увеличению объема оперативной памяти, занятого программой по отношению к количеству выполняемых операций, так как увеличивается количество служебных действий: посылок, обращений и др. Это обстоятельство приводит к необходимости расширения кодов машины до псевдокодов, т. е. действий, которые машина не может правильно выполнить без специальной программы, интерпретирующей псевдокоды в кодах машины. Это позволяет при некотором увеличении машинного времени значительно сократить объем программы в памяти и расширить класс задач, решаемых на ЭВЦ «Минск-1».

В печати было опубликовано несколько интерпретирующих систем [1, 2, 3], однако, несмотря на несомненный интерес, они обладают, на наш взгляд, рядом существенных недостатков. Во-первых, набор ПК явно ограничен и не решает полностью вопрос автоматизации программирования методом плавающей запятой. Во-вторых, например, PIC, предложенную в [1], включив в интерпретацию, нельзя программно отключить в том месте, где интерпретация совершенно бессмысленна (например, в некоторых СП), что приводит к неоправданной потере машинного времени. И, наконец, в-третьих: организация интерпретации ПК занимает больше команд, чем это нужно. Кроме того, наличие в подпрограмме сложения двух операций умножения приводит к увеличению времени ее работы примерно на одну треть, а в делении в два раза. При создании новой интерпретирующей системы были учтены и, по возможности, устранены эти недостатки.

Арифметические псевдокоманды, организация работы стандартных подпрограмм

Универсальная интерпретирующая система интерпретирует только набор псевдокодов, поэтому все коды машины, находящиеся среди ПК, исполняются так, как они исполняются в машине, и, кроме того, результат действия находится в ячейке 0023. Признаком ПК является

2. Заказ 2258.

индекс 2000, стоящий в любом адресе, если на этот псевдокод нет дополнительных оговорок.

Числа, с которыми работает УИС, представлены в двух следующих друг за другом ячейках Л и Л + 1, порядок и мантисса. УИС интерпретирует следующие арифметические действия:

+ 10 2000+^1 А2 Л2 + Ль

+ 11 2000 + Аг А2 А2 — Аи

+ 12 2000 +Л] А2 А2 : Аи

+ 13 2000 + Ах А2 А2ХА\.

По этим псевдокомандам происходит следующее. Содержимое /4Ь .4! +1 посылается в 0020, 0021; Л2, Л2+1 посылается в 0022, 0023, производится предписанное действие, результат действия получается в рабочих ячейках 0022, 0023, кроме того, результат посылается в ячейку А2 и А2 + 1. Так как результат действия получается всегда в ячейках 0022, 0023, назовем их псевдосумматором (ПС). Арифметические операции можно производить в виде модификаций действий с ПС. По индексу 4000 в Ах действие произойдет не с содержимым А2, 1а с содержимым ПС, и результат посылается в ячейку А2. По индексу 4000 в А2 результат действия остается на ПС. Возможны также индексы одновременно в обоих адресах.

Стандартные подпрограммы (СП) без интерпретации работают с автоматическим отключением и включением УИС. Это достигается составлением таблицы характеристик (ТХ) и выходом после окончания работы СП на определенную ячейку (0102) УИС. ТХ составляется следующим образом: ячейкам, начиная с 0325, присвоены номера ПК 16, 17 и т. д. до 77. Если в ячейку, например, 327, поставить команду безусловной передачи управления на начало СП, то тем самым мы вводим 'арифметический ПК 20 2000 +Л Иг. По этому ПК, встреченному в основной программе, произведутся все действия с адресами, предписанные для адресов арифметических ПК, а арифметическое действие заменится действием указанного СП. Составление строк ТХ может легко осуществлять несколько измененная РП-1 [1].

Псевдокоды 14, 15 означают перевод чисел соответственно из десятичной системы счисления в двоичную и из двоичной в десятичную с печатью по СП [3]. В УИС отведено место, на котором в начале работы размещается СП 10 = 2. При работе программы в случае отсутствия в наличии нужной (14 или 15) СП она считывается из МЗУ с указанной зоны (см. приложение 1). Обращение к СП или операторам, составленным в принятых ПК, может осуществляться также с помощью логического ПК+ 03 2000 + Л{А2 (см. ниже).

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

Логические псевдокоманды исполняют ряд стандартных действии, которые часто встречаются в программах и введены для-удобства программирования, сокращения объема памяти под основную программу и ускорения ее работы. Интерпретируются семь логических псевдокоманд и ПК пересылки числа.

+ 01 2000 + ЛИ2 — отключение УИС с подготовкой включения. По этому ПК УИС заканчивает работу, настраивается на включение с ячейки Л2 и передает управление в ячейку А\. Если после работы кодов последует передача управления в ячейку 0112 (начало работы УИС), УИС начнет выполнять команду из ячейки А2.

+ 02 2000 + А Из. Условный переход по содержимому псевдосумматора. Если знак числа ПС положительный, переход к выполнению команды в ячейке А\\ отрицательный — в Л2, число равно нулю —выполнять следующую за этой команду.

+ 04 2ООО + Л1Л2: аналогичный условный переход, но только по знаку ПС. Исполнение УИС этих двух ПК отличается от исполнения кодов 54 АхА2, 34 АгА2 по знаку тем, что исполнение ПК не ведет к отключению УИС, хотя оба типа переходов по ПС.

+ 03 2000+4 И2— безусловный переход к выполнению команды в с засылкой ПК возврата в ячейку Л2. УИС перед началом исполнения команды в ячейке Ах засылает в ячейку А2 псевдокод+!03 Ах + 1, 2000, где А — адрес выполняемой команды. Эта команда используется при обращении к операторам, составленным в ПК из разных мест программы.

Следующие три логические псевдокоманды служат для организации циклических программ. В УИС отведены две рабочие ячейки, одна из которых хранит шаг цикла (назовем ее Я/), другая счетчик цикла (назовем ее С).

+ 00 2000 + А\А2 — ПК занесения шага цикла, равного Ль и счетчика цикла, равного Л2.

+ 05 2ООО + Л1Л2 — ПК свертывания предыдущего шага и счетчика цикла в ПК + 00 2000 + Ш, С, посылка его в ячейку Л2, занесение нового шага, равного Ль и счетчика, равного нулю.

+ 06 2000 +Л1Л2 — ПК условного перехода по счетчику циклов осуществляет добавление шага к счетчику и переход к выполнению команды в ячейке Ль если С Л2, или к следующей за данной, если С>Л2.

С помощью этих псевдокодов легко организовать любые сложные циклические программы. Очевидно, для того, чтобы участок программы проработал п-раз, необходимо у ПК 06 сделать Л2 = (п— 1) Ш (схема организации простого цикла и цикла в 'цикле приведена в приложении 2).

Из схемы организации циклических программ видно, что каждый участок циклической программы выполняется с определенным значением Ш и С. Это обстоятельство позволяет ввести автоматическую переадресацию Я/С, т. е. формирование исполнительных адресов в зависимости от содержимого С. Признак минус у ПК интерпретируется как ПК с переадресацией, индекс 2000 у такого ПК указывает на адрес, подлежащий переадресации. Переадресация производится по правилу: к адресу с индексом перед исполнением в рабочей ячейке УИС прибавляется содержимое С. Таким образом, в первом цикле, когда С = 0, все ПК с переадресацией выполняются с теми адресами, которые записаны в программе. Во втором цикле содержимое С = Ш, поэтому все переадресуемые адреса сдвигаются на шаг цикла и т. д.

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

+ 07 2000 + Л]Л2 — ПК посылки содержимого А\ в ячейку Л2.

Подключение к УИС осуществляется при помощи двух команд:

Л 10 Л 0010,

Л + 1 24 0112 0112. '

Описанная УИС, на н'аш взгляд, позволяет значительно упростить и ускорить процесс программирования большинства задач.

Приложение 1

Шапка 2-10

нужной СП (14 Адрес 1 КОП А л.

При отсутствии

или 15) УИС считывает в МОЗУ со-

ответствующую шапку в ячейки 0020 44 0031 0001

с 20-37, которая, в свою очередь, вы- 1 44 0230 0271

зывает СП, суммирует ее и, при сов- 2 05 0000 0206

падении сумм, продолжает работу. 3 05 0037 0024

4 -00 0230 0206

5 01 ООП 0024

6 -31 0036 0000

П р и л о ж е н и е 2 7 54 0024 0024

0030 -11 0035 0206

1 54 0020 0020

А + 0 + 05 2002 0000 2 05 0324 0323

А + 1 -- 15 7500 4000 3 05 0316 0324

А + 2 + 06 2 + А- ■И оою 4 24 0134 0000

5 24 7220 4000

6 -00 0272 0206

Простой цикл с переадресацией ра- 7 -00 0230 0206

ботает пять раз с оператором перево- 73 7546 4435л: 1

да из 2-10. После выхода из цикла

С=0012 Д/—0002. Подпрограмма 2-10

0230 05 0000 0022

05 2004 Л3 1 05 0020 0024

Л0 ...... 2 54 0243 0233

3 31 0262 0000

05 2002 л2 4 54 0251 0237

Л, ...... 5 51 0266 0021

6 54 0251 0237

06 2 А[ 0014 7 03 0264 0021

А2 00 0000 0000 0240 01 0263 0024

1 00 0263 0022

2 34 0246 0246

00 2 -Мо 0010 3 03 0266 0021

4 00 0262 0024

Л3 00 0000 0000 01

5 0263 0022

Схема организации циклов в цикле 6 15 0021 0020

отличается тем, что каждый внутреи- 7 00 0024 0020

иии цикл запоминает Сия/ внешнего 0250

34 0231 0231

цикла в ячейке, стоящей после его 1

команды условного перехода по С. —07 0020 0021

Выходя из внутреннего цикла, УИС 2 15 0265 0023

восстанавливает содержимое С и Ш 3 03 0264 0021

внешнего цикла, выполнив команду, 4 26 0024 0020

заготовленную //д «ио».

5 —26 0023 0023

6 01 0020 0021

7 -07 1 0263 0024

Продолжение

Продолжение

Адрес + КОП А Л

0260 51 0263 0021

1 34 0253 0267

2 -00 0000 0003

3 -00 0000 0004

4 50 0000 0000

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

5 —74 0000 0000

6 63 1463 1463

7 —46 0000 0022

0270 —46 0000 0023

1 34 0102 0102

Шайка 10-2

0020 44 0021 0001

1 44 0230 0271

2 05 0000 0206

3 05 0037 0024

4 —00 0230 0206

5 01 ООП 0024

6 -31 0036 0000

7 54 0024 0024

0030 — 11 0035 0206

1 54 0020 0020

2 05 0323 0324

3 05 0316 0323

4 24 0134 0000

5 06 6114 3443

6 —00 0272 0206

7 -00 0230 0206

55 6431 4100/^

Подпрограмма 10-2

0230 15 0257 0022

1 05 0260 0264

2 16 0021 0264

3 32 0023 0000

4 20 0022 0022

5 03 0257 0023

6 —07 0261 0264

7 54 0001 0232

0240 15 0022 0022

1 05 0020 0000

2 54 0244 0250

3 34 0102 0102

Адрес

КОП

А,

А,

4 03

5 00

6 11

7 24

0250 03

1 01

2 10

3 —26

4 15

5 00

6 34

7 50

0260 —74

1 —00

2 —00

3 63

4 00

5 00

6 00

7 00

0270 00

1 34

0257 0261 0261 0254

0263 0261 0262 0000 0023

0264 0241 0000 0000 0000 0000 1463 0000 0000 0000 0000 0000 0102

0023 0020 0022 0264 0023 0020 0022 0264 0022 0022 0241 0000 0000 0004 0003 1463 0000 0000 0000 0000 0000 0102

Программа УИС и константы

0001 77 7777 7777

2 40 0000 0000

3 -00 0000 0000

4 20 0000 0000

5 00 7777 0000

6 00 0000 7777

7 77 0000 0000

0010 -02 7775 7672

1 00 0001 0000

2 00 0000 0001

3 00 0001 0001

4 00 0002 0000

5 00 0000 0002

6 00 0002 0002

7 14 0001 7761

0040 -01 0003 0021

1 16 0021 0023

2 54 0046 0046

3 51 0023 0000

4 54 0045 0067 6 00 0000 0000

5 24 0050 0022 7 24 Olli 0023

6 01 0022 0020 0120 71 ; 0226 0000

7 34 0050 0054 1 54 0124 0125

0050 00 0020 0022 2 11 0302 0116

1 05 0021 0107 3 24 0127 0116

2 05 0023 0021 4 Ol 0302 0116

3 05 0107 0023 5 -17 0145 0302

4 51 0070 0020 6 21 0116 0116

5 34 0067 0056 7 16 0007 0116

6 — 16 0003 0020 0130 21 0272 0110

7 21 0012 0020 1 54 0134 0150

0060 —07 0020 0021 2 -51 0273 0116

1 -17 0146 0023 3 24 0106 0107

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2 30 0021 0000 4 16 0005 0116

3 25 0000 0020 5 -26 0274 0137

4 24 0065 0023 6 20 0013 0140

5 10 0012 0022 7 00 0000 0000

6 20 0020 0022 0140 00 0000 0000

7 34 0102 0102 1 16 0223 0116

0070 00 0000 0036 2 54 0150 0000

1 II 0020 0022 3 -Ol 0223 0116

2 20 0012 0020 4 36 0006 0003

3 — 17 0146 0023 5 —37 0167 0014

4 32 0021 0000 6 -36 0301 0001

5 34 0100 0100 7 24 0136 0137

6 . 00 0022 0020 0150 — 17 0145 0110

7 13 0021 0023 1 20 0277 0152

0100 25 0000 0022 2 00 0000 0000

i 00 0020 0022 3 16 0006 0116

2 16 0222 0116 4 —37 0167 0000

о О 54 Olli 0000 5 —26 0300 0112

4 16 0006 0116 6 —51 0227 0116

5 —26 0224 0107 7 24 0116 0116

6 20 0013 0110 0160 - 17 0144 0110

7 00 0000 0000 1 -26 0221 0110

0110 00 0000 0000 2 -i6 0023 0000

1 00 ООП 0112 3 24 0110 0000

2 05 0000 0116 4 16 0006 0116

3 36 0225 0000 5 —26 0304 0170

4 54 0127 0120 6 16 0005 0112

5 — 16 0023 0000 7 30 0305 0014

0170 00 0000 0000 2 54 0244 0250

0167 3 34 0102 0102

1 —07 0116 4 03 0257 0023

2 1 6 0005 0116 5 00 0261 0020

3 —36 0300 0000 6 11 0261 0022

4 24

о 10

6 —21

7 16

0200 —37

1 31

2 34

3 16

4 —26

5 — 17

6 00

7 16

0210 24

1 16

2 —27

3 16

4 24

5 -01

6 44

7 44

0220 24

1 04

2 00

3 00

4 05

5 —00

6 00

7 35

0230 15

1 05

2 16

3 32

4 20

5 03

6 - 07

с 54

0240 15

1 05

0112 0112

0303 0302

0226 0302

0006 0116

0167 0000

0302 0000

0172 0111

0006 0116

0276 0206

0145 0302

0000 0000

0000 0302

0213 0302

0006 0116

0167 0302

0005 0116

0111 0303

0275 0216

0020 0001

0020 0037

0020 0000

0172 0171

0000 4000

4000 0000

0022 0000

2000 2000

2000 0000

0000 0000

0257 0022

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0260 0264

0021 0264

0023 . 0000

0022 0022

0257 0023

0261 0264

0001 0232

0022 0022

0020 0000

7 24

0250 03

1 01

2 10

3 -26

4 15

5 00

6 34

7 50

0260 —74

1 —00

2 —00

3 63

4 00

5 00

6 00

7 00

0270 00

1 34

2 07

3 02

4 05

5 00

6 —26

7 24

0300 05

1 05

2 00

3 00

4 24

5 03

6 54

7 24

0310 24

1 24

2 24

3 24

4 24

5 24

6 24

7 24

0320 24

1 24

2 24

3 24

4 24

0254 0264

0263 0023

0261 0020

0262 0022

0000 0264

0023 0022

0264 0022

0241 0241

0000 0000

0000 0000

0000 0004

0000 0003

1463 1463

0000 0000

0000 0000

0000 0000

0000 0000

0000 0000

0102 0102

0000 0000

0000 0000

0000 0 20

0010 0000

0303 0000

0316 0000

0000 0116

0000 0022

0000 0000

0000 0000

0172 0000

0001 2000

0134 0150

0211 0000

0153 0000

0160 0000

0164 0000

0160 0000

0203 0000

0175 0000

0230 0000

0041 0000

0040 0000

0071 0000

0076 0000

0230 0000

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

0215 0000

ЛИТЕРАТУРА

1. Н. И. Лозинский, А. Г. М а куш к и н, В. Я. Розенберг, В. Р. Эр г л и Справочник программиста. Т. 2, Л., 1964.

2. И. Илзиня. Программирование для двухадресных ЦВМ, Рига, 1962.

3. Библиотека стандартных программ для ЭВМ «Минск-1». ЭНИМС, М., 1963.

i Надоели баннеры? Вы всегда можете отключить рекламу.