Транслятор: различия между версиями

3913 байт добавлено ,  4 года назад
м
откат правок 212.33.246.119 (обс) к версии Oguretsi
м (откат правок 212.33.246.119 (обс) к версии Oguretsi)
{{другой термин|Трансляция|Трансляция}}
 
'''Трансля́тор''' —Саша+Серж=любовники [[компьютерная программа|программа]] или техническое средство, выполняющее ''трансляцию программы''<ref name="gost-19781-83">ГОСТ 19781-83 // {{книга
| заглавие = Вычислительная техника. Терминология: Справочное пособие. Выпуск 1
| ответственный = Рецензент канд. техн. наук Ю. П. Селиванов
Язык, на котором представлена входная программа, называется ''исходным языком'', а сама программа — ''[[исходный код|исходным кодом]]''. Выходной язык называется ''целевым языком, а выходная (результирующая) программа — '' ''[[Объектный код|объектным кодом]]''.
 
В общем случае, понятие трансляции относится не только к языкам программирования, но и к другим языкам — как формальным [[компьютерный язык|компьютерным]] (вроде [[язык разметки|языков разметки]] типа [[HTML]]), так и [[Естественный язык|естественным]] ([[русский язык|русскому]], [[английский язык|английскому]] и т. п.)<ref>СТ ИСО 2382/7-77 // {{книга
| заглавие = Вычислительная техника. Терминология. Указ. соч
}}</ref><ref>{{книга
| заглавие = Толковый словарь по вычислительным системам
| оригинал = Dictionary of Computing
| ответственный = Под ред. В. Иллингуорта и др.: Пер. с англ. А. К. Белоцкого и др.; Под ред. Е. К. Масловского
| место = М.
| издательство = Машиностроение
| год = 1990
| страниц = 560
| isbn = 5-217-00617-X (СССР), ISBN 0-19-853913-4 (Великобритания)
| тираж = {{formatnum:70000}} (доп.)
}}</ref>.
 
== Виды трансляторов ==
 
Существует несколько видов трансляторов<ref name="Першиков"/>.
* ''Диалоговый'' транслятор — транслятор, обеспечивающий использование языка программирования в {{translation|:en:Time-sharing|режим разделения времени|режиме разделения времени}}.
* ''Синтаксически-ориентированный'' (''[[Синтаксически управляемая трансляция|синтаксически-управляемый]])'' транслятор — транслятор, получающий на вход описание [[синтаксис (программирование)|синтаксиса]] и [[семантика (программирование)|семантики]] языка, текст на описанном языке и выполняющий трансляцию в соответствии с заданным описанием.
* ''Однопроходной'' транслятор — транслятор, создающий [[объектный модуль]] при однократном последовательном чтении [[Исходный код|исходного кода]] (за один проход).
* ''Многопроходной'' транслятор — транслятор, создающий [[объектный модуль]] после нескольких чтений [[Исходный код|исходного кода]] (за несколько проходов).
* ''Оптимизирующий'' транслятор — транслятор, выполняющий [[Оптимизация (информатика)|оптимизацию]] создаваемого кода перед записью в [[объектный модуль|объектный файл]]. См. [[оптимизирующий компилятор]].
* ''Тестовый'' транслятор — транслятор, получающий на вход [[исходный код]] и выдающий на выходе изменённый [[исходный код]]. Запускается перед основным транслятором для добавления в [[исходный код]] [[отладка программы|отладочных]] [[подпрограмма|процедур]]. Например, транслятор с [[Язык программирования|языка]] [[язык ассемблера|ассемблера]] может выполнять замену [[макрокоманда|макрокоманд]] на код.
* ''Обратный'' транслятор — транслятор, выполняющий преобразование [[Машинный код|машинного кода]] в текст на каком-либо [[Язык программирования|языке программирования]]. См. [[дизассемблер]], [[декомпилятор]].
 
== Реализации ==
 
Цель трансляции — преобразование текста с одного языка на язык, понятный адресату. При трансляции [[Компьютерная программа|компьютерной программы]] адресатом может быть: