ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
369586 Топик полностью
Evgeny_CD, Архитектор (19.11.2012 23:34, просмотров: 232) ответил Evgeny_CD на ЯВУ -> байткод -> C код. Интересно, что за велосипед я сейчас изобрету. Навеяно ->
Поясню еще один кайф от байткода. Тонкая настройка. Везде есть битовые операции. Но на разных архитектурах их оптимальная реализация разная. На этапе трансляции ЯВУ -> байткод не нужно заморачиваться такими тонкостями. А вот при сборке итогового бинарника самое то. Аналогично управление памятью. Во первых, она бывает сильно разная – много банков на кристалле, у всех разные свойства, SDRAM внешняя и проч. Во вторых, способы менеджемента памятью – выделение, чистка и проч. На этапе байткода это не важно, а вот при формальной трансляции байткода в C можно проверить и баланс захвата| выделения памяти, и скрипты для линкера родить, и какие-то куски работы с объектами в памяти вставить. И все это будет совершенно параллельно отлаженному в байткоде алгоритму – т.е. тонкая настройка специфичных для платформы моментов не угробит основной код. Еще есть задача проверки. Проверить, что индекс массива не вышел за рамки и проч. Причем это должна быть настраиваемая опция – до какой степени включать паранойю, на какой части кода (а где просто включать защиту памяти и гасить задачу при вылете за пределы). Так что байткод рулит.