Я работаю над своим игрушечным языком программирования.Пока я интерпретирую исходный язык из AST, и мне интересно, какие преимущества может дать мне компиляция в байтовый код -и его последующая интерпретация.
Сейчас я имею в виду три вещи:
- Обход синтаксического дерева сотни раз может быть медленнее, чем выполнение инструкций в массиве, особенно если массив поддерживает O (1 )произвольный доступ (, т.е. переход на 10 инструкций вверх и вниз ).
- В типизированной среде выполнения у меня есть некоторые временные затраты на выполнение -, потому что мой AST типизирован, и я постоянно просматриваю его (, т.е. У меня есть 10 типов узлов, и мне нужно проверить, на каком типе я сейчас работаю, чтобы выполнить ). Возможно, компиляция в нетипизированный код байта -могла бы помочь улучшить это, поскольку после проверки и компиляции типа -у меня будут нетипизированные значения и код.
- Компиляция кода в байт -может обеспечить лучшую переносимость.
Верны ли мои пункты? Каковы другие мотивы компиляции в байт-код?
задан sinan 11 July 2012 в 13:27
поделиться