La Virtual Machine (VM) de Vitte est le moteur d’exécution du bytecode VITBC.
Elle est conçue pour être portable, rapide et robuste, tout en restant simple à comprendre et à maintenir.
Son rôle est de transformer un fichier .vitbc
en exécution concrète, en gérant mémoire, registres et instructions.
.vitbc
ADD
, SUB
, MUL
, DIV
AND
, OR
, NOT
JUMP
, IF
, RETURN
LOAD
, STORE
, ALLOC
CALL
, RETURN
Exemple :
extern fn c_sqrt(x: float) -> float
fn add(x: int, y: int) -> int {
return x + y
}
print(add(2, 3))
FUNC add(x, y)
LOAD_ARG r1, x
LOAD_ARG r2, y
ADD r3, r1, r2
RETURN r3
END
MAIN
LOAD_CONST r0, 2
LOAD_CONST r1, 3
CALL add, r0, r1
PRINT r0
END
VM Start
> LOAD_CONST r0, 2
> LOAD_CONST r1, 3
> CALL add
> RETURN r3 (5)
> PRINT 5
VM End
flowchart TD
A[.vitbc File] --> B[Loader]
B --> C[Memory Manager]
B --> D[Execution Engine]
C --> D
D --> E[Runtime API]
D --> F[FFI / Interop]
D --> G[Results]
vitte exec program.vitbc
vitte exec program.vitbc --dump-vm --log trace
.vitbc
La Virtual Machine Vitte est le cœur de l’écosystème.
Elle combine simplicité et efficacité, et fournit les bases nécessaires pour exécuter le bytecode de manière sûre et portable.
Son design modulaire ouvre la voie vers des optimisations futures (JIT, WASM, FFI avancé) tout en restant fidèle à la philosophie de Vitte : clarté, robustesse, extensibilité.