Análisis Semántico
Escribe código en el editor y pulsa Analizar o Ejecutar para ver los resultados aquí.
¿Qué es el análisis semántico?
Una vez que el parser verifica la sintaxis correcta del programa, el analizador semántico verifica su significado. Un programa puede ser sintácticamente válido pero semánticamente incorrecto. Por ejemplo:
let x: number = "hola"; // error: tipos incompatibles
Tabla de símbolos
La tabla de símbolos registra información sobre cada entidad del programa y usa una pila de ámbitos (scopes). Cada función y bloque crea un nuevo ámbito. La búsqueda de un nombre sube por la pila hasta encontrarlo o llegar al ámbito global.
Validaciones implementadas
El uso de una variable antes de declararla genera un error semántico.
Declarar dos veces la misma variable en el mismo ámbito es un error.
El tipo del valor asignado debe coincidir con el tipo declarado.
Los operadores requieren operandos del tipo correcto.
Llamar a una función que no fue declarada genera un error.
El número de argumentos debe coincidir con el número de parámetros.
Cada argumento debe ser del tipo esperado por el parámetro correspondiente.
El valor retornado debe ser del tipo declarado. Las funciones void no deben retornar valores.
Un return fuera del cuerpo de una función es un error semántico.
Sistema de tipos de Slang
numberValores numéricos enteros y decimales. Ejemplo: 42, 3.14
stringCadenas de texto entre comillas dobles. Ejemplo: "Hola mundo"
booleanValores lógicos true o false solamente.
voidTipo de retorno para funciones que no devuelven valor.