Модераторы: Се ля ви
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компиляторы, интерпретаторы и тд. Эволюция, + и - 
V
    Опции темы
Gunslinger
Дата 25.1.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Чем отличаются интерпретируемые языки от языков виртуальных машин (историю про байт-код можно не рассказывать)? У обоих кросплатформенность, программы обоих не запустятся, если не будет предварительно установлен либо интерпретатор, либо виртуальная машина (в отличие от компиленой программы). Виртуальные машины ставятся на смартфоны и прочее умное мобильное железо... А тут вижу, питон также ставится под эти девайсы. Так в чем разница? Конкуренты ли эти виды?
PM MAIL   Вверх
Void
Дата 25.1.2007, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 9
Всего: 173



Для начала надо определиться с понятием виртуальной машины.
Байт-код, кстати, применяется во многих языках, считаемых интерпретируемыми, в том же Питоне, например. И интерпретатор Питона с полным правом может считаться стековой виртуальной машиной.
Может быть, имелся в виду JIT?


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Sartorius
Дата 25.1.2007, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



 ИМХО VM - тот же интерпретатор. Ну и что, что блоками в native переводит. Суть одна и та же - native получаем по ходу выполнения.
PM MAIL ICQ   Вверх
DrDred
Дата 26.1.2007, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 14.9.2006
Где: Земля

Репутация: нет
Всего: 2



За VM-based языки
- возможность JIT-оптимизации -> большая скорость выполнения
- большая часть работы интепретатора уже сделана -> значит скорость больше, памяти меньше
- скрипт, предварительно скомпиленный в байт-код уже как минимум не содержит синтаксических ошибок
- если язык статически типизированный, то получили проверки типов при компиляции.
PM MAIL WWW ICQ   Вверх
Gunslinger
Дата 26.1.2007, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



Цитата(Sartorius @ 25.1.2007,  22:07)
ИМХО VM - тот же интерпретатор. Ну и что, что блоками в native переводит. Суть одна и та же - native получаем по ходу выполнения.

Что же, получается вирт.машина и интерпретатор одно и тоже? 

Под вирт.машиной имел ввиду сановскую яву... Хотя дот нет - это тоже вирт.машина (мелкософтовское детище-конкурент сановской vm, насколько я понимаю).

PM MAIL   Вверх
Gunslinger
Дата 28.1.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 30.12.2006
Где: Астрахань

Репутация: нет
Всего: 3



посмотрел в википедии, вроде разобрался. У интерпретаторов и виртуальных машин все больше общего.
PM MAIL   Вверх
regis
Дата 1.2.2007, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 12.12.2005
Где: Москва, Россия

Репутация: нет
Всего: 7



На самом деле, такой уж четкой грани -- просто нет.
Дело в том, что практически все интерпретируемые языки осуществляют псевдокомпиляцию того, что они выполняют, в некоторую внутреннюю форму. Это, конечно, значительно повышает эффективность выполнения. Более того, большинство интерпретируемых языков умеет эту промежуточную форму программы сохранять, чтобы не выполнять эту работу при каждом запуске. Python сохряняет компилированные модули в файлы ".pyc", Ruby, кажется, тоже умеет, и Perl 6, скорее всего, будет делать нечто подобное.
Так что все отличие современных скрипт-языков от Java/.Net -- в том, что компилятор и VM технически одно приложение, а процесс компиляции выполняется автоматически и незаметно для пользователя.

--------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой.
PM MAIL WWW   Вверх
Зверек
Дата 1.2.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 27.12.2006

Репутация: нет
Всего: нет



Руби не умеет покуда.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.1139 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.