Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Отличие транслятора от компилятора

Автор: Барс 22.03.2012 18:07

Объясните на пальцах, пожалуйста. В чём отличия.

Из Википедии:

Цитата
Трансля́тор — программа или техническое средство, выполняющее трансляцию программы.

Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.

Цитата
Компиля́тор — программа или техническое средство, выполняющее компиляцию.

Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда на язык ассемблера). Входной информацией для компилятора (исходный код) является описание алгоритма или программа на проблемно-ориентированном языке, а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код).


М
Просьба использовать для цитат теги цитаты, а не кода.
Lapp


Автор: IUnknown 22.03.2012 19:21

Цитата
Отличие транслятора от компилятора
"Отличие фрукта от яблока". В чем разница?

Ни в чем, это несравнимые понятия. Компилятор - это один из вариантов реализации транслятора (другой вариант - http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80).

Автор: Lapp 23.03.2012 1:24

Цитата(IUnknown @ 22.03.2012 16:21) *
Компилятор - это [b]один из вариантов реализации транслятора

Володь, спасибо, навел порядок в моих мозгах тоже yes2.gif. Я грешным делом думал, что это просто синонимы, не особо вникая (хотя следовало бы)).
+1 (заодно - честь поставить 600-й плюсик!!)

У меня сестра - переводчик (высшего класса). Иногда она переводит тексты (компилирует), иногда синхронно переводит (интерпретирует). Кстати, по-английски синхронный переводчик так и зовется - interpreter. Мог бы и сопоставить.. ))

Автор: IUnknown 23.03.2012 3:54

Цитата
Я грешным делом думал, что это просто синонимы
Когда-то, "когда еще деревья были большими", я имел "счастье" работать с Бейсиком. Вернее с двумя его реализациями: GW (от MS) и Турбо (от Borland), вот с тех пор я точно знаю: хотя трансляторы они были оба, разница между ними была огромной, т.к. первый был интерпретатором, а второй - компилятором smile.gif

Эх, вот времена были...

Автор: Lapp 23.03.2012 7:31

Цитата(IUnknown @ 23.03.2012 0:54) *
Когда-то, "когда еще деревья были большими", я имел "счастье" работать с Бейсиком.

А зря ты "счастье" в кавычки взял, ей-Бо.. ))
Я писал на Фортране, когда нам поставили Электроники 85, копия (DEC Pro-350, CPU 8 bit, RAM 512KB, OS RT-11, 2 floppy 5", 180 KB). Там был Бейсик )). В общей комнате стояло пять машин, но работали в среднем 2-3.. Я до них дорвался, написал несколько игрушек (Life, Калах, Xonix...) Да уж, были времена!.. smile.gif


А мне вот интересно стало.. Если идти до конца, то как классифицировать (с этой точки зрения) транслятор с Java? Или, скажем, те же P-коды (давно забытые)), в которых работала система Pascal UCSD? То есть трансляцию в промежуточный код, который требует наличия на машине специального софта (как и Basic).

Автор: IUnknown 23.03.2012 8:42

Java - смесь компилятора с интерпретатором. Компилятор - эта та часть, которая компилирует из исходника в байткод (javac намекает), а интерпретатор - то, что эти самые байткоды выполняет. Насколько я понимаю, с UCSD Pascal было то же самое.

Цитата
А зря ты "счастье" в кавычки взял, ей-Бо.. ))
Мне в то время PL/I больше Бейсика нравился. До сих пор вспоминаю ЕС 1066, машинные залы, для которых летом в Ташкенте (!!!, на улице +40 и выше) брали с собой свитера, иначе простуда обеспечена... rolleyes.gif

Автор: Lapp 24.03.2012 9:34

Цитата(IUnknown @ 23.03.2012 5:42) *
Java - смесь компилятора с интерпретатором. Компилятор - эта та часть, которая компилирует из исходника в байткод (javac намекает), а интерпретатор - то, что эти самые байткоды выполняет. Насколько я понимаю, с UCSD Pascal было то же самое.
Это, конечно, все так, но я просто хотел сказать, что тут, imho, нельзя ограничиться таким формальным разделением на компоненты.. Во-первых, байт-код (или P-код) нечитабелен, что уже в достатчоной степени компрометирует изначальную идею интерпретируемого языка. Во-вторых, он все же исполняется граздо быстрее Бейсика. Обязательность же наличия JVM (или машины пи-кодов, как она называлась я не знаю) - это сильный аргумент, но не неубиваемый.. То, что такие вещи не включены в систему - это вопрос об авторских правах, и не более того.

Цитата
Мне в то время PL/I больше Бейсика нравился. До сих пор вспоминаю ЕС 1066, машинные залы, для которых летом в Ташкенте (!!!, на улице +40 и выше) брали с собой свитера, иначе простуда обеспечена... rolleyes.gif
Ну, PL/1 с васиком сравнивать как-то странно )). ЕС у тебя же не на столе стояла, да? )) На еэсовских терминалах-гробах разве что текстовые квесты делать )). А я, кстати, помню не только их, а еще и телетайпы (на БЭСМ)). Но все же, компактная машинка полностью в твоем распоряжении, пусть и с Бейсиком только - это меня прикололо тогда немеряно.. Real time интерактивность, графика (мдя, black&white без полутонов)) - это все было внове и в жилу.. Хотя - кондиционированный зал в среднеазиатской жаре - это забавно, да smile.gif.

Автор: Christian 19.06.2012 5:52

Thanks for being on point and on tgaert!

Автор: iri 28.10.2012 22:21

СПАСИБО ВАМ ОГРОМНОЕ!!!