A virtual machine that uses bytecode. Bytecode VMs have several benefits compared to a language VM. First, lowering the source code into bytecode ahead of time saves parsing work that would otherwise need to be done at runtime. Second, having a bytecode representation allows various program analyses and optimizations to be performed ahead of time, which enables better performance without increasing runtime overheads. Finally, a bytecode VM is also more modular and retargetable allowing for easier support for multiple source languages.
Ottoni, Guilherme. “HHVM JIT: a profile-guided, region-based compiler for PHP and Hack.” Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, 2018.