2016-06-21 2 views
0

Некоторые языки, такие как Java, C или C++, являются очень портативными/многоплатформенными. Но почему? каковы стратегии, которые могут использоваться в интерпретаторе, которые улучшат общую производительность интерпретации? Я думал о JIT (как раз вовремя компиляции). Так как он переводит одну команду один раз, а затем повторно использует ее, когда она появляется снова. Но JIT можно использовать для оправдания многоплатформенности? Каковы другие стратегии?Стратегии повышения производительности интерпретатора

ответ

1

Некоторые языки, такие как Java, C или C++, являются очень портативными/многоплатформенными. Но почему?

Они переносные, но по-разному. Java является двоичной переносной в том смысле, что одни и те же исполняемые двоичные файлы могут работать на многих архитектурах. Это достигается с помощью интерпретации или компиляции JIT. C/C++ является исходным переносом в том смысле, что на многих платформах есть компиляторы, поэтому вы можете скомпилировать один и тот же исходный код для создания разных двоичных файлов для разных платформ.

Каковы стратегии, которые могут использоваться в интерпретаторе, который будет улучшить общую эффективность интерпретации?

Было проведено значительное количество исследований по улучшению характеристик интерпретации, и можно написать очень толстую книгу об этом. Я рекомендую прочитать страницу Wikipedia об интерпретаторах в качестве введения.

Поскольку он переводит одну инструкцию один раз, а затем повторно использует ее, когда появляется снова.

Компилятор JIT переводит несколько инструкций вместе, а не только один. Например, компилятор JIT может компилировать одну функцию за раз.

Смежные вопросы