Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Транслятор, интерпертатор, компилятор
 
 автор: demonow   (12.12.2011 в 22:59)   письмо автору
 
 

При изучении данных терминов возникли вопросы:
1.Транслятор переобразует программу из одного языка программирования в другой - Зачем понадобилось переводить код одного языка в другой?
Про интерпретатор и компилятор из википедии ничего не понял, какая суть этих понятий.Зачем компилятор переводит в низкоуревневый код программу?

  Ответить  
 
 автор: Valick   (12.12.2011 в 23:07)   письмо автору
 
   для: demonow   (12.12.2011 в 22:59)
 

Зачем понадобилось переводить код одного языка в другой?
из языка более высокого уровня в язык более низкого уровня
что бы "бездушная железка" понимала что вы от неё хотите
транслятор и компилятор это одно и то же
интерпретатор выполняет трансляцию кода построчно

  Ответить  
 
 автор: cheops   (12.12.2011 в 23:17)   письмо автору
 
   для: demonow   (12.12.2011 в 22:59)
 

>Зачем понадобилось переводить код одного языка в другой?
Ну хотя бы для того, что один язык хорошо понимает человек, а другой машина (она из того, кода, который "понимает" делает более быстрые программы).

>Про интерпретатор и компилятор из википедии ничего не понял, какая суть этих понятий.Зачем
>компилятор переводит в низкоуревневый код программу?
Если кратко и упрощенно, то все началось с процессора, который просто читает данные в виде нулей и единиц, один набор - это содержимое для регистров процессора (ячеек памяти), другие наборы нулей и единиц зашифрованные номера команд, которые процессор должен выполнить над ячейками. Запоминать числовые коды команд довольно трудно, хотя раньше так и делали, программы писать долго, много ошибок (попробуйте пару сотен тысяч нулей и единиц без ошибки написать, да еще и понять потом, что делает программа). Поэтому нулики и единички для команд стали обозначать мнемониками - буквенными сообщениями - их запоминать проще, тут и потребовался транслятор, который бы переводил понятные и быстро-запоминаемые мнемоники в бинарный код. Транслятор стали называть ассемблер. Вы вероятно в курсе, что регулярно происходит смена поколений процессоров (ну и команд тоже), кроме того их несколько разных несовместимых видов и ассемблеры для них разные. Несколько утомительно для каждого процессора переписывать одно и то же, особенно, если это операционная система. Так появились языки программирования и компиляторы. Язык программирования вообще не зависит ни от чего, на нем можно составить одну программу, которая будет работать для любого процессора или операционной системы. Компилятор переведет её в характерный для данной системы ассемблер-код, а ассемблер разжует для данного процессора, переведя ассемблер-код в бинарный код. Дальше больше. Программисты вдруг выяснили, что они все-равно в программах учитывают архитектуру компьютера, оперируют какими-то файлами, переменными, циклами, операторами ветвлением... в то время как им нужно моделировать пользователей, документы, окна и вообще вещи, для которых в компьютерном языке нет понятий. Так появились абстрактные типы и объектно-ориентированное программирование (сейчас не будем вдаваться в альтернативные течения).

PS Возможно вам будет также интересна тема по ссылке http://softtime.ru/forum/read.php?id_forum=2&id_theme=81919.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования