La spécification du langage Vitte définit la syntaxe, la sémantique et le comportement attendu du compilateur, du runtime et de la VM.
Elle sert de référence officielle pour les développeurs, les contributeurs et les implémenteurs tiers.
Un fichier .vit
est une unité de compilation.
Il peut contenir :
let
, const
, fn
)import
, from ... import
)fn main() {
print("Hello, world!")
}
_
_
Exemple : x
, myVar
, _hidden
fn let const return if else while for break continue
import from as extern true false null
42
, 0xFF
, 0b1010
3.14
, 2e10
true
, false
"texte"
, 'texte'
null
int
float
bool
string
array<T>
map<K,V>
(prévu)struct
(future extension)let x: int = 42
Déclare une variable mutable.
let x = 10
x = 20
Déclare une constante immuable.
const PI = 3.14159
fn add(x: int, y: int) -> int {
return x + y
}
let z = add(2, 3)
fn fact(n: int) -> int {
if n <= 1 { return 1 }
return n * fact(n - 1)
}
if x > 0 {
println("positif")
} else {
println("négatif ou nul")
}
let i = 0
while i < 5 {
println(i)
i = i + 1
}
for let i = 0; i < 5; i = i + 1 {
println(i)
}
while true {
if condition { break }
if skip { continue }
}
import math
let x = math.sqrt(16)
from math import sqrt, pow
import system as sys
Interrompt l’exécution immédiatement.
panic("Erreur fatale")
Vérifie une condition.
assert(x > 0)
try {
let x = risky()
} catch e {
println("Erreur: " + e)
}
INT
: entiersFLOAT
: flottantsSTR
: chaînesDATA
: données binairesCODE
: instructionsLOAD_CONST r1, 2
LOAD_CONST r2, 3
ADD r3, r1, r2
PRINT r3
Permet d’appeler du code natif.
extern fn c_sqrt(x: float) -> float
let r = c_sqrt(9.0)
La spécification Vitte définit les fondations solides du langage :
un cœur simple, extensible et pensé pour évoluer vers un écosystème moderne.
Elle constitue la référence officielle de tout développement Vitte.