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

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

Cтраница 2


На самом деле, есть и третья альтернатива: ( 3) пользователь знает о встроенных в язык и в программу-переводчик отклонениях от правил, но их так много и они взаимодействуют таких сложным путем, что что он не может предсказать, как будут интерпретированы программы. Это может быть сказано о человеке, написавшем переводящую программу: он, разумеется, знает ее структуру как никто другой - и все же он не может предсказать того, как она будет реагировать на данный тип необычной конструкции.  [16]

При автоматическом методе запись алгоритма производится на алгоритмическом языке. Получение эквивалентной записи этого алгоритма в виде программы выполняет специальная переводящая программа - транслятор.  [17]

Кроме того, узнавание путем дедуктивного умозаключения может использовать синтаксический анализ. Например, простое арифметическое выражение, находящееся среди арифметических символов, можно выявить, применяя переводящую программу ( рис. 8.4 и 8.5) и синтаксические определения, приведенные в табл. 8.4. Для приведенного там синтаксиса необходимо только одно синтаксическое отношение - последовательное расположение объектов, которое задается последовательным написанием понятий, например ( буква) ( буква) для АВ.  [18]

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

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

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

Было решено составить возможно большее число программ на алгебраическом языке ФОРТРАН II, что позволило бы использовать их на других вычислительных машинах. Программу, написанную на таком языке, можно ввести в машину, автоматически преобразовать при помощи переводящей программы в код данной машины и получить на выходе программу, которая обеспечит решение поставленной задачи.  [22]

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

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

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

Назначение компилирующей программы состоит в том, чтобы уменьшить объем ручного труда, давая возможность программисту записывать в своей программе команды моделируемого языка. Эти команды интерпретируются с помощью компилирующей программы. Разница между интерпретирующей и компилирующей программами состоит в том, что компилирующую программу не нужно хранить в оперативной памяти после того, как она выполнила свою работу по составлению рабочей программы. Очевидно, что с помощью компилирующей программы могут объединяться математические подпрограммы, а также интерпретироваться и объединяться такие подпрограммы моделирования, которые были описаны в разд. Однако существуют другие более эффективные применения компилирующих программ. Этим вопросам посвящены эта и следующая части главы. Мы рассмотрим три случая: 1) переводящую программу; 2) программу присвоения адресов; 3) дешифратор алгебраических символов.  [26]

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



Страницы:      1    2