Каковы мотивы компиляции кода в байт -?

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

Сейчас я имею в виду три вещи:

  • Обход синтаксического дерева сотни раз может быть медленнее, чем выполнение инструкций в массиве, особенно если массив поддерживает O (1 )произвольный доступ (, т.е. переход на 10 инструкций вверх и вниз ).
  • В типизированной среде выполнения у меня есть некоторые временные затраты на выполнение -, потому что мой AST типизирован, и я постоянно просматриваю его (, т.е. У меня есть 10 типов узлов, и мне нужно проверить, на каком типе я сейчас работаю, чтобы выполнить ). Возможно, компиляция в нетипизированный код байта -могла бы помочь улучшить это, поскольку после проверки и компиляции типа -у меня будут нетипизированные значения и код.
  • Компиляция кода в байт -может обеспечить лучшую переносимость.

Верны ли мои пункты? Каковы другие мотивы компиляции в байт-код?

12
задан sinan 11 July 2012 в 13:27
поделиться