Версия для печати темы
Форум «Всё о Паскале» _ Теоретические вопросы _ Отличие транслятора от компилятора
Автор: Барс 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]один из вариантов реализации транслятора
Володь, спасибо, навел порядок в моих мозгах тоже
. Я грешным делом думал, что это просто синонимы, не особо вникая (хотя следовало бы)).
+1 (заодно - честь поставить 600-й плюсик!!)
У меня сестра - переводчик (высшего класса). Иногда она переводит тексты (компилирует), иногда синхронно переводит (интерпретирует). Кстати, по-английски синхронный переводчик так и зовется - interpreter. Мог бы и сопоставить.. ))
Автор: IUnknown 23.03.2012 3:54
Цитата
Я грешным делом думал, что это просто синонимы
Когда-то, "когда еще деревья были большими", я имел "счастье" работать с Бейсиком. Вернее с двумя его реализациями: GW (от MS) и Турбо (от Borland), вот с тех пор я точно знаю: хотя трансляторы они были оба, разница между ними была огромной, т.к. первый был интерпретатором, а второй - компилятором
Эх, вот времена были...
Автор: 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...) Да уж, были времена!.. А мне вот интересно стало.. Если идти до конца, то как классифицировать (с этой точки зрения) транслятор с Java? Или, скажем, те же P-коды (давно забытые)), в которых работала система Pascal UCSD? То есть трансляцию в промежуточный код, который требует наличия на машине специального софта (как и Basic).
Автор: IUnknown 23.03.2012 8:42
Java - смесь компилятора с интерпретатором. Компилятор - эта та часть, которая компилирует из исходника в байткод (javac намекает), а интерпретатор - то, что эти самые байткоды выполняет. Насколько я понимаю, с UCSD Pascal было то же самое.
Цитата
А зря ты "счастье" в кавычки взял, ей-Бо.. ))
Мне в то время PL/I больше Бейсика нравился. До сих пор вспоминаю ЕС 1066, машинные залы, для которых летом в Ташкенте (!!!, на улице +40 и выше) брали с собой свитера, иначе простуда обеспечена...
Автор: Lapp 24.03.2012 9:34
Цитата(IUnknown @ 23.03.2012 5:42)
Java - смесь компилятора с интерпретатором. Компилятор - эта та часть, которая компилирует из исходника в байткод (javac намекает), а интерпретатор - то, что эти самые байткоды выполняет. Насколько я понимаю, с UCSD Pascal было то же самое.
Это, конечно, все так, но я просто хотел сказать, что тут, imho, нельзя ограничиться таким формальным разделением на компоненты.. Во-первых, байт-код (или P-код) нечитабелен, что уже в достатчоной степени компрометирует изначальную идею интерпретируемого языка. Во-вторых, он все же исполняется граздо быстрее Бейсика. Обязательность же наличия JVM (или машины пи-кодов, как она называлась я не знаю) - это сильный аргумент, но не неубиваемый.. То, что такие вещи не включены в систему - это вопрос об авторских правах, и не более того.
Цитата
Мне в то время PL/I больше Бейсика нравился. До сих пор вспоминаю ЕС 1066, машинные залы, для которых летом в Ташкенте (!!!, на улице +40 и выше) брали с собой свитера, иначе простуда обеспечена... Ну, PL/1 с васиком сравнивать как-то странно )). ЕС у тебя же не на столе стояла, да? )) На еэсовских терминалах-гробах разве что текстовые квесты делать )). А я, кстати, помню не только их, а еще и телетайпы (на БЭСМ)). Но все же, компактная машинка полностью в твоем распоряжении, пусть и с Бейсиком только - это меня прикололо тогда немеряно.. Real time интерактивность, графика (мдя, black&white без полутонов)) - это все было внове и в жилу.. Хотя - кондиционированный зал в среднеазиатской жаре - это забавно, да .
Автор: Christian 19.06.2012 5:52
Thanks for being on point and on tgaert!
Автор: iri 28.10.2012 22:21
СПАСИБО ВАМ ОГРОМНОЕ!!!