Переводящая программа - Большая Энциклопедия Нефти и Газа, статья, страница 1
В мире все меньше того, что невозможно купить, и все больше того, что невозможно продать. Законы Мерфи (еще...)

Переводящая программа

Cтраница 1


Переводящая программа состоит из 17 блоков.  [1]

Первый способ работы переводящей программы заключается в том, что вся псевдопрограмма предварительно переводится на язык конкретной машины. Этот перевод осуществляется на базе использования стандартных подпрограмм и может быть реализован следующим образом.  [2]

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

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

Такую компилирующую программу называют переводящей программой, поскольку она переводит с символического языка на язык машины. Читатель должен иметь в виду, что в процессе всего дальнейшего изложения рассматриваются две программы: сама компилирующая программа и та программа, которую она обрабатывает.  [5]

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

На следующем уровне иерархии виртуальных машин работают программы переводчики-трансляторы, переводящие программы пользователя на язык виртуальной машины, которая моделируется ОС.  [7]

Пусть все стандартные подпрограммы, реализующие допустимые псевдооперации, во время работы переводящей программы хранятся во внешнем запоминающем устройстве. Можно, например, каждую стандартную подпрограмму записать па магнитную ленту в отдельную зону, номер которой легко определяется по номеру данной подпрограммы, причем длина каждой подпрограммы зафиксирована в некоторой таблице. Псевдопрограмма, вводимая в память машины, является исходной информацией для переводящей программы, которая в процессе своей работы будет поочередно переводить отдельные псевдокоманды на язык машины, получая каждый раз в результате этого перевода некоторую последовательность команд интересующей нас основной программы. С этой целью на каждом этапе своей работы переводящая программа выбирает очередную псевдокоманду и анализирует ее. Код операции 0 псевдокоманды определяет собой ту стандартную подпрограмму, которая реализует операцию, заданную в псевдокоманде. Если эта подпрограмма сравнительно невелика, то она просто вставляется в качестве очередной последовательности команд переведенной программы. Для этого данная подпрограмма вызывается из внешнего запоминающего устройства на очередное свободное место памяти, отведенное для хранения переведенной программы, и настраивается как по месту памяти, на которое она вставляется, так и по информации, содержащейся в псевдокоманде. Если же данная операция реализуется достаточно сложной подпрограммой, то в основную программу записываются команды обращения к этой подпрограмме с информацией, содержащемся в переводимой псевдокоманде. Тот или иной способ использования каждой стандартной программы может быть определен заранее. После того, как вся псевдопрограмма будет переведена на язык машины, полученная программа может быть либо непосредственно выполнена машиной, либо выведена из машины для последующего использования. Таким образом, здесь фазы перевода псевдопрограммы на язык машины и выполнения переведенной программы четко разграничены во времени.  [8]

При переводе автокодовой программы на язык машины используется операторный способ трансляции, когда каждому оператору соответствует отдельный блок переводящей программы. Этим достигается высокая скорость трансляции, но, к сожалению, за счет гибкости структуры языка.  [9]

Проблемно-ориентированные языки удобны для быстрой формулировки задачи специалистами, но для перевода их на внутренний язык ЭВМ необходимо иметь специальные переводящие программы - трансляторы. При этом сокращается время написания и отладки программы пользователем за счет не - которого уменьшения эффективности использования характеристик конкретной машины при решении такой транслируемой программы.  [10]

Конкретный вид такой записи здесь не рассматривается, поскольку он связан с необходимостью знать систему команд машины, для которой составлен транслятор ( переводящая программа) с АКИ.  [11]

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

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

Операторы обозначаются словами, составленными из букв русского алфавита. А так как переводящая программа различает только первые три буквы, то каждое слово в названии оператора можно сокращать до трех букв. Между словами ( полными или сокращенными) названия оператора и после него обязательно должны отмечаться пробелы.  [14]

При составлении вышеописанной программы было замечено, что она состоит из нескольких десятков типов обобщенных операторов, причем операторы каждого типа различаются значениями некоторого количества определенных параметров. Это позволило произвести описание переводящей программы в виде последовательности символов, каждый из которых обозначает тип оператора, указывая в скобках возле каждого символа значения параметров, придающих ему конкретный смысл.  [15]



Страницы:      1    2