Cтраница 2
Транслирующая система представляет набор языковых средств автоматизации программирования. Транслирующие системы могут быть разбиты условно на следующие три части, в зависимости от области их применения: трансляторы с языков общего назначения, с языков, ориентированных на решение технико-экономических задач и языков, ориентированных на решение научно-технических задач. [16]
Очевидно, что эти предложенные меры не вполне согласуются друг с другом: они определяют очень разные упорядочения формул языка и различных языков. В случае транслирующих систем мы можем рассматривать меры сложности эквивалентных формул в различных языках; мы могли бы, например, задаться вопросом, сохраняет ли заданный алгоритм трансляции упорядочение сложностей, определяемое заданной мерой. [17]
К этому времени имелся опыт создания трансляторов для таких языков высокого уровня, как кобол, фортран, алгол. Большую долю в этих транслирующих системах занимает процесс перевода исходных арифметических выражений в обратную польскую запись. [18]
Этот набор можно пополнять, не меняя синтаксиса языка, поскольку операции над объектами записываются в очень закодированном виде. Пополнение сводится к написанию дополнительных модулей и включению их в транслирующую систему. Затрудняет его использование также ориентация синтаксического управления не на грамматики, а на автомат, с явным программированием занесения символов в магазин анализа. Программа на этом языке представлена только в виде правил автомата, все прочие действия включаются с помощью трансдукторов, что не всегда естественно. Язык СЕМОЛ делает обязательными некоторые транс-дукторы, используемые для создания транслятора. [19]
Реже употребляют термины безадресная память безадресная ( или нуль-адресная) система обращений к памяти. Значение использования магазинного принципа доступа к памяти в вычислительных машинах и при создании транслирующих систем трудно переоценить. С помощью магазина достаточно просто решаются проблемы распределения памяти для результатов промежуточных вычислений, проблемы организации рекурсивного обращения к про - цедурам, динамического распределения памяти. [20]
Решение поставленных проблем возможно на основе изучения множества заданных структур алгоритмов изучаемого класса задач при наличии соответствующего программного обеспечения сбора, обработки и анализа данных. Множество структур алгоритмов получено нами путем накопления статистической информации по решаемым задачам в результате подключения к транслирующей системе МЭСИ [15] специального алгоритма сбора информации. Изучение алгоритмов производилось путем выборки наиболее характерных задач из генеральной совокупности ( см. разд. В соответствии с принятой схемой исследования была принята 10 % - ная выборка. [21]
Его отличительной особенностью является не только большой набор агрегатированных устройств, но и развитое математическое обеспечение, поставляемое вместе с комплексом. В состав математического обеспечения входят две операционные системы, обеспечивающие работу в мультипрограммном и однопрограммном режимах, транслирующая система ( трансляторы с - проблемно-ориентированных языков ALMO, ALGOL, FORTRAN, COBOL и др.), проблемно-ориентированные библиотеки программ, написанных на ALMO и мнемокоде АСВТ. [22]
Его отличительной особенностью является не только большой набор агрегатироваиных устройств, но и развитое математическое обеспечение, поставляемое вместе с комплексом. В состав математического обеспечения входят две операционные системы, обеспечивающие работу в мультипрограммном и однопрограммном режимах, транслирующая система ( трансляторы с проблемно-ориентированных языков ALMO, ALGOL, FORTRAN, COBOL и др.), проблемно-ориентированные библиотеки программ, написанных на ALMO и мнемокоде АСВТ. [23]
Иногда машины Барроуз называют алгольно-ориен-тированными машинами. Жесткие и достаточно универсальные схемы аппаратной реализации конструкций языка, рассчитанные на наиболее сложные ситуации, в случае применения этих универсальных механизмов в простейших ситуациях приводят потере относительной эффективности при выполнении программ. Интересно отметить, что анализ эффективности транслирующих систем с языка алгол, проведенный для машин разных фирм и для разных трансляторов с этого языка, дал в какой-то степени неожиданный результат. Система команд этой машины типично традиционная и даже не имеет средств косвенной адресации. [24]
Приблизительно в то же время, в которое велась разработка систем ТА-1 и ТА-2, под руководством А. П. Ершова началось создание альфа-системы. Основу системы составляет алголоподобный язык альфа. Он отличается от алгола-60, с одной стороны, рядом ограничений на использование рекурсий и, с другой стороны, некоторыми расширениями за счет: введения матричной арифметики. Создатели транслирующей системы альфа затратили много усилий, добиваясь того, чтобы полученные после трансляции программы работали максимально эффективно. Альфа-транслятор - первый в нашей стране оптимизирующий транслятор. [25]
Транслятор может быть компилятором, или ассемблером, или интерпретатором. Компилятор представляет собой программу, обеспечивающую перевод с алгоритмического языка на машинный без одновременного выполнения получаемой программы. Ассемблер представляет собой транслирующую систему с языка Ассемблер. Если одному оператору входного языка соответствует одна машинная команда, то такой ассемблер называется абсолютным или автокодом. Если существуют макрокоманды, которые переводятся в группу машинных команд, то транслирующая система называется макроассемблером. Интерпретатор - транслирующая система, в которой трансляция исходной программы на входном языке совмещается с выполнением данной программы. [26]
Дополнительные функциональные возможности, рассчитанные на различные сферы, применения, на различные конфигурации машин, оформляются как необязательные и включаются в операционную систему по требованию пользователя во время генерации системы. Это вызвано прежде всего тем, что каждая дополнительная возможность увеличивает объем основной памяти, занимаемой операционной системой. Наиболее важными из дополнительных управляющих программ являются: программы распределения основной памяти, ее защиты, выполнения заданий в соответствии с их приоритетами. Этот принцип нашел отражение и в том, что с каждого входного языка, включаемого в состав программного обеспечения, имеется несколько транслирующих систем. [27]
Всякое прерывание программы, связанное с запросом к операционной системе или возникшее в результате появления внешних событий, интерпретируется в машинах Барроуз как обращение к некой подпрограмме, чаще всего работающей от имени прерванной программы. Соответственно в оперативной памяти всегда присутствует стек управляющей программы и словарь ее программных сегментов. Очень важной функцией механизма стека является хранение истории переходов от выполнения одних процедур к другим, точнее, хранение истории вложенности одних процедур или блоков в другие. Блочная структура алгола предполагает, что внутренний блок может пользоваться переменными, описанными во внешних блоках, и может передавать управление на метку, локализованную во внешнем блоке, причем эти переменные или метки могут находиться в блоках, отстоящих по уровню вложенности на несколько ступеней. В транслирующих системах традиционных машин функции управления доступом к данным и меткам блоков внешних уровней возлагаются на административные системы. В машинах Барроуз эти функции административных систем переложены, главным образом, на аппаратуру. [28]
Транслятор может быть компилятором, или ассемблером, или интерпретатором. Компилятор представляет собой программу, обеспечивающую перевод с алгоритмического языка на машинный без одновременного выполнения получаемой программы. Ассемблер представляет собой транслирующую систему с языка Ассемблер. Если одному оператору входного языка соответствует одна машинная команда, то такой ассемблер называется абсолютным или автокодом. Если существуют макрокоманды, которые переводятся в группу машинных команд, то транслирующая система называется макроассемблером. Интерпретатор - транслирующая система, в которой трансляция исходной программы на входном языке совмещается с выполнением данной программы. [29]
Транслятор может быть компилятором, или ассемблером, или интерпретатором. Компилятор представляет собой программу, обеспечивающую перевод с алгоритмического языка на машинный без одновременного выполнения получаемой программы. Ассемблер представляет собой транслирующую систему с языка Ассемблер. Если одному оператору входного языка соответствует одна машинная команда, то такой ассемблер называется абсолютным или автокодом. Если существуют макрокоманды, которые переводятся в группу машинных команд, то транслирующая система называется макроассемблером. Интерпретатор - транслирующая система, в которой трансляция исходной программы на входном языке совмещается с выполнением данной программы. [30]