Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)

Модели (hardware):






Награды сайта
Награды сайта

Разработать язык программирования для ЭВМ, это значит:

  1. описать язык;

  2. создать транслятор с этого языка для данной ЭВМ.

Язык Автокод описан выше. Транслятор с этого языка разработан профессиональным системным программистом. Будем считать, что УК "НЕЙМАН" имеет постоянную память - ПЗУ, где хранится транслятор вместе со всеми другими компонентами системы программирования на Автокоде.

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

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

Если синтаксических ошибок не обнаружено, то начинается второй этап работы транслятора - перекодировка программы в машинные команды. Результатом этой работы является машинный код (программа на ЯМК).

Сказанное выше о работе транслятора и синтаксической отладке программы на Автокоде отражено схемой (рис.3).

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

  • Распределение памяти под программу. Поскольку каждая команда Автокода переводится в одну команду машинного языка и программа располагается, начиная с нулевой ячейки, то легко определить размер программы (адрес ее последней команды).
  • Распределение памяти под данные. Сразу вслед за последней командой программы помещаются переменные и константы в той последовательности, в которой они встречаются в программе на Автокоде.
  • Перекодировка команд. Каждая команда на Автокоде переводится в соответствующую команду на машинном языке. При этом мнемонический код заменяется на код операции, а переменные и константы - на их машинные адреса. Константы переводятся в двоичную систему и записываются в отведенные для них ячейки.

Посмотрите на результат трансляции программы из задачи 1, приведенный в табл.6. Напротив каждой команды Автокода написан результат ее перевода в команду ЯМК.

Обратите внимание на то, как транслируются команды ввода и вывода. По-прежнему это пересылка через буферную ячейку FC. Исполнение программы, полученной в результате трансляции, будет происходить так же, как и раньше при работе на ЯМК. Ввод исходных данных и вывод результатов происходит в шестнадцатеричной форме.

Для того чтобы при работе на Автокоде числа вводились и выводились в десятичной системе счисления, нужно иначе организовать трансляцию команд INPUT, OUTPUT. Команда INPUT должна транслироваться в процедуру перевода введенного числа из десятичной системы в двоичную; команда OUTPUT - в процедуру перевода из двоичной системы в десятичную и вывода результата. В принципе, это сделать можно. С целью упрощения материала такая возможность на УК "НЕЙМАН" не реализована. Не надо забывать, что наш компьютер учебный и он не предназначен для широкого применения.

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

В правом столбце табл.8 показан результат трансляции программы на автокоде для 3-й задачи. Память под переменные распределена следующим образом:

2С - переменная M,
30 - переменная N,
34 - переменная X.


© И.Г.Семакин, 2001
Полный текст статьи в виде документа MS Word можно загрузить здесь.
© Оформление Web-страницы Е.А.Еремин, 2001


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com