История изменений
Исправление quasimoto, (текущая версия) :
Алгоритм тут слишком расплывчато, скорей абстрактная машина вкупе с алгоритмом.
Алгоритм тут это тотальный алгоритм, в смысле Кнута и т.п., http://en.wikipedia.org/wiki/Algorithm.
Проще говоря, переписывает текст. Это и есть компиляция.
http://en.wikipedia.org/wiki/Translator_(computing), компилятор это разговорный смысл для «высокий уровень» -> «низкий уровень», бывает ещё декомпилятор и т.п.
Какую семантику?
Чем отличается компилятор от интерпретатора? (комментарий), две последние ссылки.
Грубо говоря, если write(read() + read()) имеет вполне чёткую семантику, то и результат трансляции должен иметь её же — нельзя транслировать во что попало, и так для всех программ — иначе это не трансляция (произвольная функция между языками с известной семантикой это не трансляция).
Исходная версия quasimoto, :
Алгоритм тут слишком расплывчато, скорей абстрактная машина вкупе с алгоритмом.
Алгоритм тут это тотальный алгоритм, в смысле Кнута и т.п., http://en.wikipedia.org/wiki/Algorithm.
Проще говоря, переписывает текст. Это и есть компиляция.
http://en.wikipedia.org/wiki/Translator_(computing), компилятор это разговорный смысл для «высокий уровень» -> «низкий уровень», бывает ещё декомпилятор и т.п.
Какую семантику?
Чем отличается компилятор от интерпретатора? (комментарий), две последние ссылки.
Грубо говоря, если write(read() + read()) имеет вполне чёткую семантику, то и результат трансляции должен иметь её же — нельзя транслировать во что попало, и так для всех программ — иначе это не трансляция (произвольная функция между языками это не трансляция).