Documentación del Lenguaje EVA

Índice

  1. Introducción
  2. Sintaxis Básica
  3. Variables
  4. Entrada y Salida
  5. Estructuras de Control
  6. Comandos Especiales
  7. Operadores
  8. Ejemplos Completos
  9. Mejores Prácticas

Introducción

EVA es un lenguaje de programación diseñado para ser simple, expresivo y natural. Está inspirado en el español y creado con amor 💝.

Características principales:


Sintaxis Básica

Comentarios

Los comentarios comienzan con # y son ignorados por el intérprete:

# Esto es un comentario
eva nombre  # Comentario en la misma línea

Estructura de un programa

Todo programa EVA consiste en una serie de instrucciones ejecutadas de arriba hacia abajo:

# Programa simple
eva mensaje = "Hola mundo"
decir mensaje

Variables

Declaración de variables

Las variables se declaran usando la palabra clave eva:

eva nombre           # Variable inicializada en 0
eva edad = 25        # Variable con valor inicial
eva mensaje = "Hola" # Variable con texto

Reglas para nombres de variables:

Tipos de datos:

EVA maneja automáticamente dos tipos de datos: - Números: Enteros y decimales (5, 3.14, -10) - Texto: Cadenas de caracteres entre comillas (“Hola”, “Eva 2024”)

Asignación de valores:

eva contador = 0
contador = 10        # Reasignar valor
contador = contador + 1  # Incrementar

Entrada y Salida

decir - Mostrar texto con concatenación automática

Muestra texto o valores concatenando automáticamente múltiples argumentos:

# Sintaxis simple
decir "Hola mundo"
decir variable
decir 42

#  Concatenación automática
eva nombre = "Ana"
eva edad = 25
decir "Hola " nombre ", tienes " edad " años"
# Imprime: Hola Ana, tienes 25 años

# Con expresiones
decir "2 + 2 = " (2 + 2)
# Imprime: 2 + 2 = 4

Ventajas: - ✨ Código más limpio - una línea en lugar de múltiples - 🔢 Convierte números automáticamente a texto - 💡 Sintaxis natural y expresiva

Nota importante: decir NO añade salto de línea automáticamente. Usa siguiente para los saltos de línea.

siguiente - Salto de línea

Añade un salto de línea en la salida:

decir "Primera línea"
siguiente
decir "Segunda línea"
siguiente

preguntar - Solicitar entrada

Lee input del usuario y lo guarda en una variable:

eva nombre
preguntar nombre = "¿Cómo te llamas?"
decir "Hola " nombre

Conversión automática: Si el usuario ingresa un número, se convierte automáticamente a tipo numérico.

leer - Atajo para declarar y preguntar

Combina declaración y pregunta en una sola línea:

# Forma larga:
eva edad
preguntar edad = "¿Tu edad?"

# Forma corta:
eva edad = leer "¿Tu edad?"

También funciona en asignaciones:

eva respuesta
respuesta = leer "¿Continuar? (si/no)"

unir - Concatenación de strings

Concatena múltiples valores en una sola variable:

eva nombre = "Ana"
eva edad = 25
eva ciudad = "Madrid"

eva mensaje = unir "Hola " nombre ", tienes " edad " años y vives en " ciudad
decir mensaje
# Imprime: Hola Ana, tienes 25 años y vives en Madrid

Diferencia con decir: - unir guarda el resultado en una variable - decir muestra directamente en pantalla


Estructuras de Control

Condicionales: si / osi / sino / fin

si condicion entonces
    # código si la condición es verdadera
osi otra_condicion entonces
    # código si la segunda condición es verdadera
sino
    # código si ninguna condición es verdadera
fin

osi (elif) - Para múltiples condiciones sin anidar:

eva nota = 85

si nota >= 90 entonces
    decir "🌟 A - ¡Excelente!"
osi nota >= 80 entonces
    decir "😊 B - Muy bien"
osi nota >= 70 entonces
    decir "👍 C - Bien"
osi nota >= 60 entonces
    decir "😐 D - Suficiente"
sino
    decir "😢 F - Reprobado"
fin

Condicionales simples:

eva edad = 18

si edad >= 18 entonces
    decir "Eres mayor de edad"
sino
    decir "Eres menor de edad"
fin

Bucles: mientras / fin

mientras condicion entonces
    # código que se repite mientras la condición sea verdadera
fin

Ejemplo:

eva contador = 1

mientras contador <= 5 entonces
    decir "Número: " contador
    siguiente
    contador = contador + 1
fin

Bucle infinito (con condición de salida):

eva jugando = 1

mientras jugando == 1 entonces
    eva opcion = leer "¿Continuar? (1=sí, 0=no)"
    
    si opcion == 0 entonces
        jugando = 0
    fin
fin

Bucles simplificados: repetir / veces / fin

Para repetir un bloque un número fijo de veces:

repetir 5 veces
    decir "❤️"
fin

Con variables:

eva veces = 10

repetir veces veces
    decir "Hola"
    siguiente
fin

Anidamiento:

repetir 3 veces
    decir "Línea externa"
    siguiente
    
    repetir 2 veces
        decir "  Línea interna"
        siguiente
    fin
fin

salir - Break para bucles

Sale del bucle actual inmediatamente:

eva i = 1
repetir 10 veces
    decir "Número: " i
    siguiente
    
    si i == 5 entonces
        decir "¡Encontré el 5!"
        siguiente
        salir  # Sale del bucle
    fin
    
    i = i + 1
fin
# Continúa aquí después del salir

Funciona con: - ✅ repetir X veces - ✅ mientras condicion entonces - ✅ Bucles anidados (sale del más interno)


Comandos Especiales

esperar - Pausar ejecución

Pausa la ejecución por X segundos:

decir "Cargando"
esperar 1
decir "."
esperar 1
decir "."
esperar 1
decir " Listo!"
siguiente

Con variables:

eva tiempo = 3
decir "Esperando..."
esperar tiempo
decir "¡Tiempo cumplido!"

Usos decimales:

esperar 0.5  # Medio segundo
esperar 2.5  # Dos segundos y medio

aleatorio - Números aleatorios

Genera un número aleatorio entre min y max (inclusivo):

eva dado
aleatorio dado 1 6
decir "Sacaste un: " dado

Sintaxis:

aleatorio variable min max

Ejemplo con rango variable:

eva min = 1
eva max = 100
eva numero

aleatorio numero min max
decir "Número aleatorio entre " min " y " max ": " numero

limpiar - Limpiar pantalla

Borra todo el contenido de la pantalla de salida:

decir "Este texto se borrará..."
siguiente
esperar 2
limpiar
decir "¡Pantalla limpia!"

Operadores

Operadores aritméticos

Operador Descripción Ejemplo
+ Suma resultado = 5 + 3 → 8
- Resta resultado = 10 - 4 → 6
* Multiplicación resultado = 6 * 7 → 42
/ División resultado = 20 / 4 → 5
( ) Paréntesis para orden (5 + 3) * 2 → 16

Orden de operaciones con paréntesis:

eva a = 5
eva b = 3

# Sin paréntesis: 5 + 3 * 2 = 11
eva resultado1 = a + b * 2

# Con paréntesis: (5 + 3) * 2 = 16
eva resultado2 = (a + b) * 2

# Complejo: (5 + 3) * (5 - 3) = 16
eva resultado3 = (a + b) * (a - b)

# Promedio
eva promedio = (a + b) / 2

Ejemplo:

eva a = 10
eva b = 3
eva suma = a + b
eva resta = a - b
eva producto = a * b
eva division = a / b

decir "Suma: " suma
siguiente

Operadores de comparación

Operador Forma alternativa Descripción Ejemplo
== es Igual a si edad == 18
!= no es Diferente de si nombre no es "Eva"
> mayor que Mayor que si puntos > 100
< menor que Menor que si edad menor que 18
>= mayor o igual que Mayor o igual si nota >= 70
<= menor o igual que Menor o igual si intentos <= 3

Ejemplos:

# Usando símbolos
si edad >= 18 entonces
    decir "Adulto"
fin

# Usando palabras (más natural)
si edad mayor o igual que 18 entonces
    decir "Adulto"
fin

si nombre es "Eva" entonces
    decir "¡Hola Eva!"
fin

Operadores lógicos

Operador Forma alternativa Descripción Ejemplo
&& y AND lógico si edad >= 18 y tiene_permiso == 1
|| o OR lógico si dia es "sabado" o dia es "domingo"

Ejemplos:

# AND - Ambas condiciones deben cumplirse
si edad >= 18 y tiene_licencia == 1 entonces
    decir "Puede conducir"
fin

# OR - Al menos una condición debe cumplirse
si respuesta es "si" o respuesta es "sí" entonces
    decir "Confirmado"
fin

# Combinación
si edad >= 18 y (ciudad es "Madrid" o ciudad es "Barcelona") entonces
    decir "Elegible para el programa"
fin

Ejemplos Completos

1. Calculadora con paréntesis

limpiar
decir "🧮 CALCULADORA EVA 🧮"
siguiente
siguiente

eva num1 = leer "Primer número:"
eva num2 = leer "Segundo número:"

siguiente
decir "Suma: " (num1 + num2)
siguiente
decir "Resta: " (num1 - num2)
siguiente
decir "Multiplicación: " (num1 * num2)
siguiente
decir "División: " (num1 / num2)
siguiente
decir "Promedio: " ((num1 + num2) / 2)
siguiente

2. Sistema de calificaciones con osi

limpiar
decir "📊 SISTEMA DE CALIFICACIONES 📊"
siguiente
siguiente

eva nota = leer "Ingresa tu calificación (0-100):"

siguiente
si nota >= 90 entonces
    decir "🌟 A - ¡Excelente trabajo!"
osi nota >= 80 entonces
    decir "😊 B - Muy bien hecho"
osi nota >= 70 entonces
    decir "👍 C - Buen trabajo"
osi nota >= 60 entonces
    decir "😐 D - Aprobado por poco"
sino
    decir "😢 F - Necesitas estudiar más"
fin
siguiente

3. Búsqueda con salir

eva objetivo = leer "¿Qué número buscas? (1-10)"
eva encontrado = 0

limpiar
decir "🔍 Buscando el número " objetivo "..."
siguiente
siguiente

eva i = 1
repetir 10 veces
    decir "Revisando posición " i
    siguiente
    esperar 0.5
    
    si i == objetivo entonces
        decir "🎉 ¡Encontrado en la posición " i "!"
        siguiente
        encontrado = 1
        salir
    fin
    
    i = i + 1
fin

siguiente
si encontrado == 0 entonces
    decir "😢 No se encontró el número"
fin
siguiente

4. Perfil de usuario con unir

limpiar
decir "👤 CREAR PERFIL 👤"
siguiente
siguiente

eva nombre = leer "Tu nombre:"
eva edad = leer "Tu edad:"
eva ciudad = leer "Tu ciudad:"
eva hobby = leer "Tu hobby favorito:"

limpiar
decir "════════════════════"
siguiente
decir "      PERFIL"
siguiente
decir "════════════════════"
siguiente
siguiente

eva linea1 = unir "👤 Nombre: " nombre
decir linea1
siguiente

eva linea2 = unir "🎂 Edad: " edad " años"
decir linea2
siguiente

eva linea3 = unir "🏙️ Ciudad: " ciudad
decir linea3
siguiente

eva linea4 = unir "🎨 Hobby: " hobby
decir linea4
siguiente
siguiente

eva bio = unir "Hola, soy " nombre " de " ciudad ". Me gusta " hobby "!"
decir bio
siguiente

5. Juego de adivinanza completo

eva numero_secreto
aleatorio numero_secreto 1 10

limpiar
decir "🎮 ADIVINA EL NÚMERO 🎮"
siguiente
decir "Estoy pensando en un número del 1 al 10"
siguiente
siguiente

eva intentos = 0
eva adivinado = 0
eva max_intentos = 3

mientras adivinado == 0 y intentos < max_intentos entonces
    intentos = intentos + 1
    
    decir "═══ Intento " intentos " de " max_intentos " ═══"
    siguiente
    
    eva intento = leer "Tu número:"
    
    si intento == numero_secreto entonces
        decir "🎉 ¡CORRECTO! ¡Adivinaste en " intentos " intentos!"
        siguiente
        adivinado = 1
    osi intento < numero_secreto entonces
        decir "📈 El número es MAYOR"
        siguiente
    sino
        decir "📉 El número es MENOR"
        siguiente
    fin
    
    siguiente
fin

si adivinado == 0 entonces
    decir "😢 Se acabaron los intentos. Era el " numero_secreto
    siguiente
fin

6. Menú interactivo con todas las funciones

eva salir = 0

mientras salir == 0 entonces
    limpiar
    decir "═══════════════════"
    siguiente
    decir "   MENÚ PRINCIPAL"
    siguiente
    decir "═══════════════════"
    siguiente
    siguiente
    decir "1. 👋 Saludar"
    siguiente
    decir "2. 🎲 Tirar dado"
    siguiente
    decir "3. 🧮 Calculadora"
    siguiente
    decir "4. 🚪 Salir"
    siguiente
    siguiente
    
    eva opcion = leer "Elige una opción:"
    
    limpiar
    
    si opcion == 1 entonces
        eva nombre = leer "¿Tu nombre?"
        eva saludo = unir "👋 ¡Hola " nombre "! ¿Cómo estás?"
        decir saludo
        siguiente
        esperar 2
    osi opcion == 2 entonces
        eva dado
        aleatorio dado 1 6
        decir "🎲 Tirando dado..."
        siguiente
        esperar 1
        decir "Resultado: " dado
        siguiente
        esperar 2
    osi opcion == 3 entonces
        eva a = leer "Primer número:"
        eva b = leer "Segundo número:"
        decir "Resultado: " (a + b)
        siguiente
        esperar 2
    osi opcion == 4 entonces
        decir "👋 ¡Hasta luego!"
        siguiente
        salir = 1
    sino
        decir "❌ Opción inválida"
        siguiente
        esperar 1
    fin
fin

Mejores Prácticas

1. Usa concatenación automática en decir

# ❌ Malo - Múltiples líneas
decir "Hola "
decir nombre
decir ", tienes "
decir edad
decir " años"

# ✅ Bueno - Una línea limpia
decir "Hola " nombre ", tienes " edad " años"

2. Usa osi en lugar de si anidados

# ❌ Malo - Difícil de leer
si edad >= 18 entonces
    decir "Adulto"
sino
    si edad >= 13 entonces
        decir "Adolescente"
    sino
        si edad >= 5 entonces
            decir "Niño"
        sino
            decir "Bebé"
        fin
    fin
fin

# ✅ Bueno - Limpio y claro
si edad >= 18 entonces
    decir "Adulto"
osi edad >= 13 entonces
    decir "Adolescente"
osi edad >= 5 entonces
    decir "Niño"
sino
    decir "Bebé"
fin

3. Usa paréntesis para claridad

# ❌ Confuso
eva resultado = a + b * c - d / e

# ✅ Claro
eva resultado = (a + (b * c)) - (d / e)

4. Nombres descriptivos

# ❌ Malo
eva x = 18
eva y = "Juan"

# ✅ Bueno
eva edad = 18
eva nombre = "Juan"

5. Comentarios útiles

# Calcular el precio final con descuento del 20%
eva precio_original = 100
eva descuento = 0.20
eva precio_final = precio_original * (1 - descuento)

6. Usar leer para código más limpio

# ❌ Menos limpio
eva nombre
preguntar nombre = "¿Tu nombre?"

# ✅ Más limpio
eva nombre = leer "¿Tu nombre?"

7. Validar entrada del usuario

eva edad = leer "¿Tu edad?"

si edad < 0 o edad > 120 entonces
    decir "⚠️ Edad inválida"
sino
    decir "Edad registrada: " edad
fin

8. Usar salir para optimizar búsquedas

# En lugar de revisar todo el array innecesariamente
eva i = 1
eva encontrado = 0

repetir 100 veces
    si array[i] == objetivo entonces
        encontrado = 1
        salir  # No seguir buscando
    fin
    i = i + 1
fin

9. Usar unir para mensajes complejos

# Para mensajes que se reutilizan
eva mensaje_bienvenida = unir "Bienvenido " usuario " a " aplicacion
decir mensaje_bienvenida

10. Añadir pausas para mejor UX

decir "Procesando"
esperar 0.5
decir "."
esperar 0.5
decir "."
esperar 0.5
decir "."
siguiente
decir "¡Listo!"

Palabras Reservadas

Lista completa de palabras que no pueden usarse como nombres de variables:


Características Avanzadas

Concatenación: decir vs unir

decir con concatenación automática: - Muestra directamente en pantalla - Ideal para output simple - No guarda el resultado

decir "Hola " nombre ", tienes " edad " años"

unir para crear strings: - Guarda el resultado en una variable - Ideal para reutilizar mensajes - Permite manipular el string después

eva mensaje = unir "Hola " nombre ", tienes " edad " años"
decir mensaje

Control de flujo avanzado

Combinando osi y salir:

eva i = 1
repetir 100 veces
    si i == 10 entonces
        decir "Encontré el 10"
        salir
    osi i == 20 entonces
        decir "Encontré el 20"
        salir
    osi i % 5 == 0 entonces
        decir "Múltiplo de 5: " i
    fin
    i = i + 1
fin

Limitaciones y Consideraciones

1. Sin funciones personalizadas (por ahora)

EVA actualmente no soporta definir funciones propias.

2. Alcance de variables

Todas las variables son globales dentro del programa.

3. Precisión numérica

Los números se manejan como números de JavaScript (64-bit floating point).

4. Entrada del usuario

Los comandos preguntar y leer usan prompt() del navegador, por lo que el programa se pausa esperando la entrada.

5. Límite de iteraciones

Los bucles mientras tienen un límite de 10,000 iteraciones para prevenir bucles infinitos accidentales.

6. Concatenación en decir

Los espacios separan argumentos. Si necesitas un espacio literal, inclúyelo en las comillas: decir "Hola " nombre " !"


Recursos Adicionales

Obtener ayuda

Convenciones de estilo

Comandos principales de EVA

Categoría Comandos
Variables eva, asignación con =
I/O decir, preguntar, leer, siguiente
Control si, osi, sino, mientras, repetir, salir
Especiales esperar, aleatorio, limpiar, unir
Operadores +, -, *, /, (), ==, !=, >, <, >=, <=, y, o

Conclusión

EVA es un lenguaje diseñado para ser simple, expresivo y divertido. Su sintaxis en español y sus comandos naturales lo hacen perfecto para:

Novedades en la última versión:

¡Empieza a programar en EVA y crea algo increíble! 🌸✨


Versión de documentación: 2.0
Fecha: Diciembre 2025
Creado con: ❤️ para Eva

Changelog v2.0: - Agregado comando osi (elif) - Mejorado decir con concatenación automática - Agregado comando unir para strings - Agregado comando salir para break - Soporte explícito para paréntesis - Diseño responsive para dispositivos móviles - 9 ejemplos actualizados y funcionales

Sintaxis Básica

Comentarios

Los comentarios comienzan con # y son ignorados por el intérprete:

# Esto es un comentario
eva nombre  # Comentario en la misma línea

Estructura de un programa

Todo programa EVA consiste en una serie de instrucciones ejecutadas de arriba hacia abajo:

# Programa simple
eva mensaje = "Hola mundo"
decir mensaje

Variables

Declaración de variables

Las variables se declaran usando la palabra clave eva:

eva nombre           # Variable inicializada en 0
eva edad = 25        # Variable con valor inicial
eva mensaje = "Hola" # Variable con texto

Reglas para nombres de variables:

Tipos de datos:

EVA maneja automáticamente dos tipos de datos: - Números: Enteros y decimales (5, 3.14, -10) - Texto: Cadenas de caracteres entre comillas (“Hola”, “Eva 2024”)

Asignación de valores:

eva contador = 0
contador = 10        # Reasignar valor
contador = contador + 1  # Incrementar

Entrada y Salida

decir - Mostrar texto

Muestra texto o el valor de una variable en pantalla:

decir "Hola mundo"
decir nombre
decir 42

Nota: decir NO añade salto de línea automáticamente. Para concatenar texto en la misma línea:

decir "Hola "
decir nombre
decir "!"
siguiente  # Ahora sí hace el salto de línea

siguiente - Salto de línea

Añade un salto de línea en la salida:

decir "Primera línea"
siguiente
decir "Segunda línea"
siguiente

preguntar - Solicitar entrada

Lee input del usuario y lo guarda en una variable:

eva nombre
preguntar nombre = "¿Cómo te llamas?"
decir "Hola "
decir nombre

Conversión automática: Si el usuario ingresa un número, se convierte automáticamente a tipo numérico.

leer - Atajo para declarar y preguntar

Combina declaración y pregunta en una sola línea:

# Forma larga:
eva edad
preguntar edad = "¿Tu edad?"

# Forma corta:
eva edad = leer "¿Tu edad?"

También funciona en asignaciones:

eva respuesta
respuesta = leer "¿Continuar? (si/no)"

Estructuras de Control

Condicionales: si / sino / fin

si condicion entonces
    # código si la condición es verdadera
sino
    # código si la condición es falsa
fin

Ejemplo:

eva edad = 18

si edad >= 18 entonces
    decir "Eres mayor de edad"
sino
    decir "Eres menor de edad"
fin

Condicionales anidados:

si puntuacion >= 90 entonces
    decir "A - Excelente"
sino
    si puntuacion >= 80 entonces
        decir "B - Muy bien"
    sino
        si puntuacion >= 70 entonces
            decir "C - Bien"
        sino
            decir "D - Necesitas mejorar"
        fin
    fin
fin

Bucles: mientras / fin

mientras condicion entonces
    # código que se repite mientras la condición sea verdadera
fin

Ejemplo:

eva contador = 1

mientras contador <= 5 entonces
    decir "Número: "
    decir contador
    siguiente
    contador = contador + 1
fin

Bucle infinito (con condición de salida):

eva jugando = 1

mientras jugando == 1 entonces
    eva opcion = leer "¿Continuar? (1=sí, 0=no)"
    
    si opcion == 0 entonces
        jugando = 0
    fin
fin

Bucles simplificados: repetir / veces / fin

Para repetir un bloque un número fijo de veces:

repetir 5 veces
    decir "❤️"
fin

Con variables:

eva veces = 10

repetir veces veces
    decir "Hola"
    siguiente
fin

Anidamiento:

repetir 3 veces
    decir "Línea externa"
    siguiente
    
    repetir 2 veces
        decir "  Línea interna"
        siguiente
    fin
fin

Comandos Especiales

esperar - Pausar ejecución

Pausa la ejecución por X segundos:

decir "Cargando"
esperar 1
decir "."
esperar 1
decir "."
esperar 1
decir " Listo!"
siguiente

Con variables:

eva tiempo = 3
decir "Esperando..."
esperar tiempo
decir "¡Tiempo cumplido!"

Usos decimales:

esperar 0.5  # Medio segundo
esperar 2.5  # Dos segundos y medio

aleatorio - Números aleatorios

Genera un número aleatorio entre min y max (inclusivo):

eva dado
aleatorio dado 1 6
decir "Sacaste un: "
decir dado

Sintaxis:

aleatorio variable min max

Ejemplo con rango variable:

eva min = 1
eva max = 100
eva numero

aleatorio numero min max
decir "Número aleatorio entre "
decir min
decir " y "
decir max
decir ": "
decir numero

limpiar - Limpiar pantalla

Borra todo el contenido de la pantalla de salida:

decir "Este texto se borrará..."
siguiente
esperar 2
limpiar
decir "¡Pantalla limpia!"

Operadores

Operadores aritméticos

Operador Descripción Ejemplo
+ Suma resultado = 5 + 3 → 8
- Resta resultado = 10 - 4 → 6
* Multiplicación resultado = 6 * 7 → 42
/ División resultado = 20 / 4 → 5

Ejemplo:

eva a = 10
eva b = 3
eva suma = a + b
eva resta = a - b
eva producto = a * b
eva division = a / b

decir "Suma: "
decir suma
siguiente

Operadores de comparación

Operador Forma alternativa Descripción Ejemplo
== es Igual a si edad == 18
!= no es Diferente de si nombre no es "Eva"
> mayor que Mayor que si puntos > 100
< menor que Menor que si edad menor que 18
>= mayor o igual que Mayor o igual si nota >= 70
<= menor o igual que Menor o igual si intentos <= 3

Ejemplos:

# Usando símbolos
si edad >= 18 entonces
    decir "Adulto"
fin

# Usando palabras (más natural)
si edad mayor o igual que 18 entonces
    decir "Adulto"
fin

si nombre es "Eva" entonces
    decir "¡Hola Eva!"
fin

Operadores lógicos

Operador Forma alternativa Descripción Ejemplo
&& y AND lógico si edad >= 18 y tiene_permiso == 1
|| o OR lógico si dia es "sabado" o dia es "domingo"

Ejemplos:

# AND - Ambas condiciones deben cumplirse
si edad >= 18 y tiene_licencia == 1 entonces
    decir "Puede conducir"
fin

# OR - Al menos una condición debe cumplirse
si respuesta es "si" o respuesta es "sí" entonces
    decir "Confirmado"
fin

# Combinación
si edad >= 18 y (ciudad es "Madrid" o ciudad es "Barcelona") entonces
    decir "Elegible para el programa"
fin

Ejemplos Completos

1. Calculadora simple

limpiar
decir "🧮 CALCULADORA EVA 🧮"
siguiente
siguiente

eva num1 = leer "Primer número:"
eva num2 = leer "Segundo número:"

siguiente
decir "Resultados:"
siguiente
decir "Suma: "
decir num1 + num2
siguiente
decir "Resta: "
decir num1 - num2
siguiente
decir "Multiplicación: "
decir num1 * num2
siguiente
decir "División: "
decir num1 / num2
siguiente

2. Juego de adivinanza

eva numero_secreto
aleatorio numero_secreto 1 10

limpiar
decir "🎮 ADIVINA EL NÚMERO 🎮"
siguiente
decir "Estoy pensando en un número del 1 al 10"
siguiente
siguiente

eva intentos = 0
eva adivinado = 0

mientras adivinado == 0 y intentos < 3 entonces
    intentos = intentos + 1
    
    decir "Intento "
    decir intentos
    decir " de 3"
    siguiente
    
    eva intento = leer "Tu número:"
    
    si intento == numero_secreto entonces
        decir "🎉 ¡CORRECTO! ¡Adivinaste!"
        siguiente
        adivinado = 1
    sino
        si intento < numero_secreto entonces
            decir "📈 El número es MAYOR"
        sino
            decir "📉 El número es MENOR"
        fin
        siguiente
    fin
fin

si adivinado == 0 entonces
    decir "😢 Perdiste. Era el "
    decir numero_secreto
    siguiente
fin

3. Contador con animación

limpiar
decir "⏰ TEMPORIZADOR ⏰"
siguiente
siguiente

eva segundos = leer "¿Cuántos segundos?"

siguiente
decir "Iniciando cuenta regresiva..."
siguiente
esperar 1

mientras segundos > 0 entonces
    decir "⏱️ "
    decir segundos
    siguiente
    esperar 1
    segundos = segundos - 1
fin

siguiente
decir "🎉 ¡TIEMPO!"
siguiente

repetir 5 veces
    decir "🔔"
    esperar 0.2
fin
siguiente

4. Sistema de menú

eva salir = 0

mientras salir == 0 entonces
    limpiar
    decir "═══════════════════"
    siguiente
    decir "   MENÚ PRINCIPAL"
    siguiente
    decir "═══════════════════"
    siguiente
    siguiente
    decir "1. 👋 Saludar"
    siguiente
    decir "2. 🎲 Tirar dado"
    siguiente
    decir "3. 🎨 Dibujar corazones"
    siguiente
    decir "4. 🚪 Salir"
    siguiente
    siguiente
    
    eva opcion = leer "Elige una opción:"
    
    limpiar
    
    si opcion == 1 entonces
        eva nombre = leer "¿Tu nombre?"
        decir "👋 ¡Hola "
        decir nombre
        decir "!"
        siguiente
        esperar 2
    sino
        si opcion == 2 entonces
            eva resultado
            aleatorio resultado 1 6
            decir "🎲 Tirando dado..."
            siguiente
            esperar 1
            decir "Resultado: "
            decir resultado
            siguiente
            esperar 2
        sino
            si opcion == 3 entonces
                eva cantidad = leer "¿Cuántos corazones?"
                repetir cantidad veces
                    decir "❤️"
                fin
                siguiente
                esperar 2
            sino
                si opcion == 4 entonces
                    decir "👋 ¡Hasta luego!"
                    siguiente
                    salir = 1
                sino
                    decir "❌ Opción inválida"
                    siguiente
                    esperar 1
                fin
            fin
        fin
    fin
fin

5. Tabla de multiplicar

limpiar
eva numero = leer "¿Tabla de multiplicar del número?"

siguiente
decir "═══ Tabla del "
decir numero
decir " ═══"
siguiente
siguiente

eva i = 1

mientras i <= 10 entonces
    eva resultado = numero * i
    
    decir numero
    decir " × "
    decir i
    decir " = "
    decir resultado
    siguiente
    
    esperar 0.3
    i = i + 1
fin

siguiente
decir "✅ ¡Tabla completa!"
siguiente

Mejores Prácticas

1. Nombres descriptivos

# ❌ Malo
eva x = 18
eva y = "Juan"

# ✅ Bueno
eva edad = 18
eva nombre = "Juan"

2. Comentarios útiles

# Calcular el precio final con descuento
eva precio_original = 100
eva descuento = 0.20
eva precio_final = precio_original * (1 - descuento)

3. Indentación consistente

si edad >= 18 entonces
    decir "Mayor de edad"
    
    si tiene_licencia == 1 entonces
        decir "Puede conducir"
    fin
fin

4. Usar leer para código más limpio

# ❌ Menos limpio
eva nombre
preguntar nombre = "¿Tu nombre?"

# ✅ Más limpio
eva nombre = leer "¿Tu nombre?"

5. Validar entrada del usuario

eva edad = leer "¿Tu edad?"

si edad < 0 o edad > 120 entonces
    decir "⚠️ Edad inválida"
sino
    decir "Edad registrada: "
    decir edad
fin

6. Usar limpiar para interfaces claras

# Limpiar antes de mostrar nuevo contenido
limpiar
decir "═══ NUEVA PANTALLA ═══"
siguiente

7. Añadir pausas para mejor UX

decir "Procesando"
repetir 3 veces
    esperar 0.5
    decir "."
fin
siguiente
decir "¡Listo!"

8. Limitar bucles infinitos

eva intentos = 0
eva max_intentos = 100

mientras condicion == 1 y intentos < max_intentos entonces
    # código
    intentos = intentos + 1
fin

Palabras Reservadas

Lista completa de palabras que no pueden usarse como nombres de variables:


Limitaciones y Consideraciones

1. Sin funciones personalizadas (por ahora)

EVA actualmente no soporta definir funciones propias.

2. Alcance de variables

Todas las variables son globales dentro del programa.

3. Precisión numérica

Los números se manejan como números de JavaScript (64-bit floating point).

4. Entrada del usuario

El comando preguntar y leer usan prompt() del navegador, por lo que el programa se pausa esperando la entrada.

5. Límite de iteraciones

Los bucles mientras tienen un límite de 10,000 iteraciones para prevenir bucles infinitos accidentales.


Recursos Adicionales

Obtener ayuda

Convenciones de estilo


Conclusión

EVA es un lenguaje diseñado para ser simple, expresivo y divertido. Su sintaxis en español y sus comandos naturales lo hacen perfecto para:

¡Empieza a programar en EVA y crea algo increíble! 🌸✨


Versión de documentación: 1.0
Fecha: Diciembre 2024
Creado con: ❤️ para Eva