hispano-lang
v1.1.7
Published
Un lenguaje de programación educativo en español para enseñar programación sin barreras de idioma
Downloads
47
Maintainers
Readme
HispanoLang
Un lenguaje de programación educativo en español para enseñar programación sin barreras de idioma
📖 Documentación • 🚀 Instalación • 💻 Uso • 📚 Ejemplos • 🤝 Contribuir
🎯 ¿Por qué HispanoLang?
La mayoría de los lenguajes de programación utilizan palabras clave en inglés, lo que puede dificultar el aprendizaje para principiantes hispanohablantes. HispanoLang propone una sintaxis sencilla en español, enfocada en aprender conceptos esenciales de programación.
✨ Características principales:
- ✅ Sintaxis 100% en español - Sin barreras de idioma
- ⚡ Intérprete completo - Implementado en JavaScript/Node.js
- 🎓 Minimalista - Pensado para aprender lógica sin distracciones
- 📚 Educativo - Enfoque en conceptos fundamentales
- 🔧 CLI Tool - Interfaz de línea de comandos intuitiva
- 🧪 Suite de tests - 170+ tests para garantizar calidad
- 📦 NPM Package - Fácil instalación y distribución
- 🔄 REPL Interactivo - Modo interactivo para experimentar
- 📝 TypeScript Support - Definiciones de tipos incluidas
- 🌍 Open Source - Libre para usar, modificar y contribuir
🚀 Instalación
Prerrequisitos
- Node.js >= 20.0.0
- npm o yarn
Instalación Global (Recomendada)
npm install -g hispano-langInstalación Local
npm install hispano-langInstalación desde Código Fuente
git clone https://github.com/nicvazquezdev/hispano-lang.git
cd hispano-lang
npm install
npm run build💻 Uso
CLI Tool
Una vez instalado globalmente, puedes usar HispanoLang desde cualquier lugar:
# Modo interactivo (REPL)
hispano
# Ejecutar archivo
hispano script.hl
# Ejecutar código directamente
hispano -e "mostrar 'Hola mundo'"
# Ver ayuda
hispano --help
# Ejecutar tests
hispano --testComo Módulo Node.js
const { interpret, run, getVariables } = require('hispano-lang');
// Interpretar código
const result = interpret(`
variable nombre = "Juan"
mostrar "Hola " + nombre
`);
console.log(result.output); // ['Hola Juan']
// Ejecutar y obtener salidas
const outputs = run(`
variable x = 10
mostrar x * 2
`);
console.log(outputs); // ['20']TypeScript
import { interpret, InterpretationResult } from 'hispano-lang';
const result: InterpretationResult = interpret(`
variable edad = 25
si edad >= 18 {
mostrar "Es mayor de edad"
}
`);📚 Sintaxis de HispanoLang
🎯 Ejemplo Rápido
// Saludo personalizado
variable nombre = "María"
mostrar "¡Hola " + nombre + "!"
// Calculadora simple
variable a = 10
variable b = 5
variable suma = a + b
mostrar "La suma es: " + suma
// Condicional
si suma > 10 {
mostrar "¡Es un número grande!"
} sino {
mostrar "Es un número pequeño"
}Variables
variable nombre = "Juan"
variable edad = 25
variable activo = verdadero
variable salario = 50000.50Entrada de datos
// Entrada básica
leer nombre
mostrar "Hola " + nombre
// Entrada con mensaje
leer edad "¿Cuál es tu edad?"
mostrar "Tienes " + edad + " años"Condicionales
si edad >= 18 {
mostrar "Es mayor de edad"
} sino {
mostrar "Es menor de edad"
}Bucles
// Bucle mientras
variable i = 0
mientras i < 5 {
mostrar i
i = i + 1
}
// Bucle para
para variable j = 0; j < 3; j = j + 1 {
mostrar j
}Funciones
funcion saludar(nombre) {
retornar "Hola " + nombre
}
mostrar saludar("Mundo")Arrays
variable frutas = ["manzana", "banana", "naranja"]
mostrar frutas.longitud() // 3
mostrar frutas.primero() // manzana
mostrar frutas.ultimo() // naranja
// Métodos de array
frutas.agregar("uva") // push
frutas.remover() // pop
frutas.contiene("banana") // includesObjetos
variable persona = {
nombre: "Juan",
edad: 30,
ciudad: "Madrid"
}
mostrar persona.nombre // Juan
persona.edad = 31 // Modificar propiedadStrings
variable texto = "hola mundo"
mostrar texto.longitud() // 10
mostrar texto.mayusculas() // HOLA MUNDO
mostrar texto.minusculas() // hola mundoManejo de errores
intentar {
variable x = 10 / 0
} capturar (error) {
mostrar "Error: " + error
}Valores especiales
variable valorNulo = nulo
variable valorIndefinido = indefinido🧪 Testing
El proyecto incluye una suite completa de tests con más de 170 casos:
npm test🏗️ Arquitectura
src/
├── tokenizer.js # Análisis léxico
├── parser.js # Análisis sintáctico
├── evaluator.js # Evaluación de expresiones
└── interpreter.js # Orquestador principal
bin/
└── hispano.js # CLI tool
test/
└── test.js # Suite completa de tests (170+ casos)🛠️ Desarrollo
Configuración del entorno
# Clonar el repositorio
git clone https://github.com/nicvazquezdev/hispano-lang.git
cd hispano-lang
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm run dev
# Ejecutar tests
npm test
# Linting y formato
npm run lint
npm run format
# Build para producción
npm run buildScripts disponibles
npm start- Ejecutar el intérpretenpm test- Ejecutar testsnpm run dev- Modo desarrollo con nodemonnpm run lint- Verificar código con ESLintnpm run format- Formatear código con Prettiernpm run build- Construir para producciónnpm run demo- Ejecutar demo
🤝 Contribuir
¡Las contribuciones son bienvenidas! Este proyecto está abierto a la comunidad.
Cómo contribuir
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Guías de contribución
- ✅ Sigue las convenciones de código existentes
- ✅ Añade tests para nuevas funcionalidades
- ✅ Actualiza la documentación si es necesario
- ✅ Asegúrate de que todos los tests pasen
- ✅ Usa
npm run lintynpm run formatantes de commitear
Áreas donde puedes contribuir
- 🐛 Bug fixes - Reporta y arregla bugs
- ✨ Nuevas funcionalidades - Propón mejoras
- 📚 Documentación - Mejora ejemplos y guías
- 🧪 Tests - Añade casos de prueba
- 🌍 Traducciones - Ayuda con documentación en otros idiomas
- 🎨 UI/UX - Mejora la experiencia del CLI
🐛 Reportar bugs
Si encuentras un bug, por favor:
- Verifica que no esté ya reportado en Issues
- Crea un nuevo issue con:
- Descripción clara del problema
- Código que reproduce el error
- Versión de Node.js
- Sistema operativo
- Pasos para reproducir
📄 Licencia
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
👨💻 Autor
Nicolas Vazquez
- 🌐 GitHub: @nicvazquezdev
- 📧 Email: [email protected]
🙏 Agradecimientos
- 🌍 Comunidad de desarrolladores hispanohablantes
- 🧪 Contribuidores y testers del proyecto
- 📚 Educadores que usan HispanoLang en sus clases
- 🎓 Estudiantes que aprenden programación con HispanoLang
📊 Estadísticas
- 🧪 170+ tests cubriendo todas las funcionalidades
- 📦 NPM package listo para instalación global
- 🔧 CLI tool con modo interactivo
- 📝 TypeScript support con definiciones incluidas
- 🌍 100% en español para educación sin barreras
⭐ Si te gusta este proyecto, ¡dale una estrella!
Hecho con ❤️ para la comunidad hispanohablante
