Next: , Previous: , Up: Guile Implementation   [Contents][Index]

9.3 A Virtual Machine for Guile

Guile has both an interpreter and a compiler. To a user, the difference is transparent—interpreted and compiled procedures can call each other as they please.

The difference is that the compiler creates and interprets bytecode for a custom virtual machine, instead of interpreting the S-expressions directly. Loading and running compiled code is faster than loading and running source code.

The virtual machine that does the bytecode interpretation is a part of Guile itself. This section describes the nature of Guile’s virtual machine.