Lenguaje de programación interpretado con sintaxis completamente en español. Orientado a objetos, asíncrono, con tipado estático opcional. Basado en una VM de pila con 83 opcodes y compilación a WebAssembly.
- Sintaxis en español — keywords, errores y documentación en español
- Orientado a objetos — clases, herencia, métodos estáticos, getters/setters,
super - Async/await — ejecución concurrente con
ThreadPoolExecutor - Tipado opcional — anotaciones de tipo con verificación estática (
--no-check-typespara deshabilitar) - 83 opcodes — VM de pila con bytecode completo (aritmética, control de flujo, closures, excepciones, debug)
- 13 módulos stdlib —
matematicas,cadenas,colecciones,testing,json,csv,sistema,fecha,http,sqlite,aleatorio,expresiones_regulares,consola - Compilación WASM — genera binarios
.wasmcompatibles con wasmtime 45+ - LSP + DAP — language server con diagnósticos, completado, ir a definición, hover; debugger con breakpoints, paso a paso, inspección de variables
- Extension VS Code — disponible en el Marketplace como "Alvz en Español": resaltado semántico, 48 snippets, autocompletado, iconos
- Modo seguro —
--saferestringe FS, red, imports y recursos - CLI completa —
alvz archivo.alvz,alvz test,alvz fmt,alvz nuevo,alvz build,alvz fix,alvz bench,alvz debug,alvz install - Standalone —
alvz buildgenera ejecutables con PyInstaller o Nuitka - 626 tests — cobertura de VM, parser, lexer, WASM, LSP, DAP, tipos, formatter, fixer, benchmarks
Alvz está disponible en PyPI (Python Package Index), el repositorio oficial de paquetes Python. Esto permite instalarlo con un solo comando:
pip install alvz-lenguajeRequiere Python 3.10+.
Instalación con extras:
pip install alvz-lenguaje[wasm] # con soporte WebAssembly (wasmtime)
pip install alvz-lenguaje[web] # con servidor web (FastAPI)
pip install alvz-lenguaje[all] # todo incluidoPara desarrollo local:
git clone https://github.com/interpago/alvz.git
cd alvz
pip install -e .# Ejecutar archivo
alvz programa.alvz
# Ejecutar via WebAssembly (37+ opcodes nativos)
alvz --wasm programa.alvz
# REPL interactivo
alvz
# Ejecutar tests
alvz test tests/
# Formatear código
alvz fmt programa.alvz
# Verificar tipos estáticamente
alvz --no-check-types programa.alvz # deshabilita type checker
# Modo seguro (sin red, FS restringido)
alvz --safe programa.alvz
# Compilar a ejecutable o WASM
alvz build programa.alvz
alvz build programa.alvz --wasm
# Nuevo proyecto
alvz nuevo proyecto mi_app
# Analizar y corregir
alvz fix programa.alvz
# Benchmarks
alvz bench
# Depurar
alvz debugvariable nombre = "Mundo"
imprimir("Hola " + nombre)
si (edad >= 18) {
imprimir("Mayor de edad")
} sino {
imprimir("Menor de edad")
}
mientras (x > 0) {
imprimir(x)
x = x - 1
}
funcion factorial(n) {
si (n <= 1) {
retornar 1
}
retornar n * factorial(n - 1)
}
clase Persona {
variable nombre = ""
variable edad = 0
funcion inicializar(n, e) {
nombre = n
edad = e
}
funcion saludar() {
imprimir("Hola, soy " + nombre)
}
}
- GitHub: https://github.com/interpago/alvz
- Web: https://alvzes.web.app
- VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=alvz-project.alvz-language
- Licencia: GPL-3.0