Транслятор ТА-1М
Транслятор ТА-1М создан коллективом исполнителей под руководством члена-корр. АН СССР С. С. Лаврова и канд. техн. наук В. А. Степанова; этот транслятор представляет собой модернизированный вариант разработанного в 1963 г. транслятора ТА-1. Транслятор может быть использован на машинах М-20, М-220, М-220М, БЭСМ-4. При переходе от одной машины к другой из-за различия устройств вывода приходится изменять некоторые блоки.
Входной язык транслятора ТА-1М является конкретным представлением языка АЛГОЛ-60.
Трансляция выполняется при последовательной одноразовой работе 18 блоков, составляющих транслятор, общим объемом около 17000 кодов. Скорость трансляции 120–200 команд в минуту.
При трансляции используется МОЗУ объемом 4096 ячеек (один куб) и один магнитофон. Транслятор выдает сведения о результатах работы в терминах входного языка. Это позволяет автору задачи обходиться без специальных консультантов, помогающих расшифровывать выдачи транслятора.
Текст АЛГОЛ-программы для придания ему большей выразительности и обозримости может быть отпечатан в отредактированном виде. Имеется возможность отпечатать текст также и в исходном виде.
Транслятор прост в эксплуатации и не требует от операторов высокой квалификации. В трансляторе имеется блок синтаксического контроля и контроля семантических ошибок. Блок осуществляет выдачу на печать, позволяющую легко определить место и характер ошибки.
Программа, полученная при помощи ТА-1М, приблизительно в 1,5–2,5 раза длиннее такой же программы, составленной в кодах машины программистом среднего уровня, и выполняется примерно в 1,5–2,5 раза дольше.
TA-1M позволяет отлаживать программы в ходе их выполнения: для этого используется специальный режим трансляции, при котором в рабочую программу вставляются группы команд, обеспечивающих проверку в ходе вычислений правильности работы программы. При возникновении в процессе работы программы аварийных ситуаций производится анализ ошибки с выдачей сведений о месте и причинах ошибки. Выдаются на печать значения величин и их идентификаторы из зоны программы, содержащей ошибку. Это позволяет анализировать программу, написанную на АЛГОЛе, без анализа программы в коде машины.
Входной язык транслятора позволяет использовать любую СП библиотеки ИС-2 и после трансляции формирует на магнитном барабане библиотеку СП, к которым имеются обращения в программе. Таким образом исключаются обращения к ленте за СП и уменьшается время выполнения программы.
ТА-1М оформляет процедуры, как СП в системе ИС-2. Это позволяет получать достаточно большие программы. Предусмотрен режим автономной трансляции процедур, что позволяет организовать большую библиотеку СП.
К недостаткам следует отнести то, что полученные после трансляции программы используют только один куб оперативной памяти. Большие программы с отладочными вставками часто не помещаются в МОЗУ.
ТА-1М накладывает ряд количественных ограничений на запись алгоритма задачи.
Так, исходная информация не должна превышать 6000 (восьмеричных) кодов. Готовая программа не должна превышать 3700 (десятичных) кодов (команд и чисел). Это ограничение можно обойти, оформляя некоторые части алгоритма как процедуры, так как процедуры программируются как СП, хранятся на МБ и вызываются на рабочее поле ИС-2.
Идентификатор не может иметь больше 50 символов, а количество различных идентификаторов во вложенных блоках ограничено тем, что таблица идентификаторов должна занимать не более чем 350 ячеек (каждые 4 символа в идентификаторе требуют отдельной ячейки).
Число формальных параметров процедуры должно быть меньше 46, а число описаний процедур не должно превышать 24. Количество различных чисел, входящих в синтаксические конструкции, не должно превышать 120. Количество идентификаторов массивов должно быть меньше 64, а массивы не могут иметь размерность, большую шести.
При трансляции из-за ограниченности рабочих полей, используемых для хранения информации, могут возникать ограничения числа меток, числа операторов цикла, числа условных операторов, длины выражений и др. При переполнении рабочих полей происходит выдача на печать указания, как преобразовать АЛГОЛ-программу, чтобы этого переполнения не было.
Из книги: Ляшенко Ф. В., "Программирование для ЦВМ с системой команд типа М-20", изд. 2, М., "Сов. радио", 1974 г., стр. 353.