Читайте также:
|
Перевод программ с алгоритмических языков на машинный осуществляется специальной программой-транслятором. Различают трансляторы интерпретирующего типа — интерпретаторы, и компилирующеготипа — компиляторы.
Интерпретатор программу переводит пооператорно. После перевода оператор реализуется компьютером, т.е. процесс трансляции совмещается с выполнением составляемойимвыходной программы.
Компилятор же, прежде чем реализовать программу, предварительно полностью переводит ее на машинный язык.
Для каждого языка программирования предназначен свой транслятор. Исходными данными для транслятора является текст программы на соответствующем языке программирования, а результатом его работы — текст программы на машинном языке. При этом исходная и результирующая программы эквивалентны в том смысле, что они реализуют один и тот же алгоритм.
Таким образом, транслятор ставит в соответствие виртуальной машине машину физическую. На самом деле все обстоит несколько сложнее. Полученная в результате трансляции программа исполняется на компьютере под управлением операционной системы, которая фактически и выделяет этой программе физические ресурсы компьютера. Поэтому на самом деле транслятор ставит в соответствие одной виртуальной машине другую виртуальную машину, а отображение последней на реальную физическую машину осуществляет операционная система.
Транслятор выполняет следующие основные функции.
Во-первых, производится синтаксический анализ исходного текста программы, т. е. выделяются все основные компоненты, из которых состоит программа. В процессе синтаксического анализа выявляются возможные ошибки в исходном тексте. Такие ошибки называют синтаксическими (связанными с неправильной записью программы на исходном языке программирования, например с использованием недопустимых операторов или недопустимых последовательностей символов, отсутствием необходимых описаний объектов языка и т. п.).
Во-вторых, производится генерация машинной программы — непосредственная трансляция исходной программы на машинный язык.
В-третьих, выдается на печать листинг — текст исходной программы вместе со списком всех обнаруженных синтаксических ошибок.
По указанию пользователя наряду с листингом исходной программы может быть также отпечатан листинг полученной в результате трансляции машинной программы. Кроме того, по указанию пользователя полученная программа может быть записана в архив операционной системы для дальнейшего использования или передана операционной системе для исполнения.
К трансляторам предъявляются различные требования. Например, если транслятор применяется для трансляции небольших (в том числе учебных) программ, то к нему предъявляется требование выдачи наиболее полных и подробных сообщений об обнаруженных ошибках. Кроме того, в этом случае сам транслятор должен работать достаточно быстро, а к качеству полученных машинных программ не предъявляется повышенных требований.
Если же транслятор используется для трансляции больших и сложных программ, предназначенных для многократного использования, то здесь, наоборот, не столь важна скорость трансляции, зато к качеству полученных машинных программ предъявляются повышенные требования. Поэтому такие трансляторы содержат специальные блоки оптимизации, предназначенные для получения эффективных машинных программ.
В связи с этим в операционной системе может быть несколько трансляторов для одного и того же языка программирования, и пользователь может выбирать нужный для его целей.
Дата добавления: 2014-12-20; просмотров: 196 | Поможем написать вашу работу | Нарушение авторских прав |