Sin magia. Sin coste oculto.

Todo lo que puede escribirse en el propio lenguaje está escrito en él.

EmpezarAprender Vesta

Qué es Vesta

Vesta es un lenguaje de sistemas diseñado junto a su compilador, su máquina virtual y sus herramientas, para que buena parte de la infraestructura que normalmente queda oculta pueda escribirse en el propio lenguaje.

En términos prácticos: tipado estático con inferencia local y sintaxis de la familia de C. Multiparadigma (imperativo, orientado a objetos y funcional ligero), sin obligar a envolver nada en una clase. Un mismo fuente se ejecuta de tres formas: como bytecode sobre su máquina virtual, con JIT cuando el código se calienta, o compilado por adelantado a un ejecutable nativo autónomo. La memoria es determinista por defecto (RAII, punteros inteligentes y comprobador de préstamos); el recolector solo aparece si lo pides.

Por qué existe

En casi todos los lenguajes hay una frontera donde el lenguaje termina y empieza otra cosa: componentes escritos en C, primitivas especiales del compilador, scripts de enlazado con su propia sintaxis. Por debajo de esa línea ya no puedes leer, ni entender, ni cambiar nada.

Vesta intenta mover esa frontera. Los enteros de 512 bits, los tipos atómicos, las llamadas al sistema, la disposición de secciones o el propio script de enlace no son magia del compilador: son bibliotecas escritas en Vesta que puedes abrir.

Y eso tiene una consecuencia práctica. Si puedes leer cómo está implementado un atómico, también puedes adaptarlo a tu caso. El compilador deja de ser una caja negra y pasa a formar parte del mismo ecosistema que el resto de tu código.

Qué no intenta hacer

Vesta no nace para sustituir a C, C++ o Rust. Las tecnologías conviven durante décadas y cada una encuentra su ámbito, así que está diseñado para interoperar con lo que ya existe, no para pedirte que lo abandones.

El principio que lo guía es proporcionar mecanismos en lugar de políticas: el lenguaje da la herramienta y la decisión es de cada proyecto.

Hola mundo

El mismo fuente, sin cambiar una línea, corre en la máquina virtual, se compila con JIT o se convierte en un ejecutable nativo autónomo.

site/snippets/hello.vx
i32 main() {
    println("Hello from Vesta ${1 + 1}!");
    return 0;
}

Características

Comptime con JIT detrás

Funciones que se ejecutan durante la compilación con el lenguaje completo: ensamblador nativo, llamadas a la API del sistema y generación de código.

CTPE: el programa, precalculado

Si tu punto de entrada es puro, el compilador lo ejecuta al compilar e inyecta el resultado como constante. Activo por defecto.

Nativo, sin runtime

Ejecutables autónomos con memoria determinista. El recolector se enlaza solo si usas gc<T>, y queda dentro del binario.

Vistas tipadas sobre memoria

Describe una cabecera PE, un registro MMIO o un paquete de red una vez, y accede por nombre de campo en lugar de por desplazamiento.

Pensado para interoperar

Llama a bibliotecas de C, a DLL del sistema y a syscalls crudas sin salir del lenguaje ni pasar por libc.

Cómo se compila y se ejecuta

Del codigo fuente al programa en ejecucion El fuente .vx pasa por el frontend y se convierte en SSA IR. Desde ese mismo IR salen tres caminos: bytecode .velb que ejecuta la maquina virtual y compila el JIT en caliente, compilacion nativa AOT que produce un ejecutable PE o ELF autonomo, y una traduccion a C99 portable. .vx codigo fuente Frontend preprocesador, lexico,sintaxis, tipos SSA IR unos 15 pasesde optimizacion .velb bytecode VM interprete JIT nativo en caliente AOT nativo Enlazador propio, sin ld PE / ELF autonomo, sin runtime --port c C99 fuente portable comptime y CTPE se ejecutan aqui, durante la compilacion
Un mismo fuente, un mismo IR y tres salidas. El JIT y el compilador nativo comparten optimizador y asignador de registros.

Qué puede generar

Del mismo fuente, cambiando solo la orden de compilación:

Hecho desde cero

Documentación

Aprende está escrito para leerse en orden, desde la instalación hasta el primer programa de verdad. Documentación es la referencia del lenguaje, pensada para buscar. Arquitectura documenta el compilador: el SSA, el optimizador, el JIT, la compilación nativa, el enlazador y la caché incremental.

La Biblioteca estándar tiene sección propia, porque está escrita en Vesta y eso es un argumento sobre el lenguaje, no un catálogo de funciones.

Descargas

Vesta está en alfa: utilizable y con pruebas, y con partes en desarrollo activo. Esas partes se señalan como tales allí donde aparecen.

Descargar Vesta