Documentación oficial

Glosario

Referencia técnica de Glosario — Joss language and Joss Red ecosystem.

Glosario

Índice · Primeros pasos · Referencia

Estas palabras se explican también donde se introducen. Puedes volver aquí sin interrumpir el recorrido de aprendizaje.

Término Significado en esta documentación
Programa Instrucciones guardadas en archivos para que una computadora realice una tarea.
Proyecto Carpeta organizada creada con joss new o joss new console que contiene tu código, configuración y estructura lista para trabajar.
main.joss Archivo principal de entrada de todo proyecto Joss. Es el primer archivo que Joss busca al ejecutar o compilar tu aplicación.
Init main() Bloque de arranque dentro de public class Main en main.joss. Todo lo que escribas dentro de sus llaves { ... } se ejecuta al iniciar el programa.
Valor Un dato concreto: 12, "Ana", true.
Variable Nombre con prefijo $ que permite guardar, consultar o cambiar un valor en memoria; por ejemplo $edad.
Declaración Acción de crear una variable por primera vez indicando var (var $x = 1), un tipo explícito (int $x = 1), mixed o const.
Reasignación Acción de cambiar el valor de una variable que ya fue declarada previamente ($x = 2).
Binding Asociación entre un nombre y su valor. Una constante (const) protege esa asociación para que no pueda reasignarse.
Tipo Categoría de datos que una operación o variable admite. Por ejemplo, int representa números enteros y decimal importes monetarios exactos.
Inferencia Deducción automática del tipo de una variable a partir de su valor inicial (como en var $edad = 20, donde Joss deduce int).
Conversión / casting Obtención de un valor en otro tipo mediante funciones como intval(...), decimal(...) o strval(...).
Interpolación Incrustar variables o cálculos dentro de un texto con comillas dobles usando ${nombre} o ${$precio * 2}.
mixed Decisión explícita de permitir que una variable o parámetro acepte valores de distintos tipos a lo largo del tiempo.
void Tipo de retorno que indica explícitamente que una función realiza acciones pero no devuelve ningún valor.
unknown Estado interno del analizador cuando aún no conoce un tipo; no es una palabra para declarar variables.
null / nil Ausencia de valor; null es la forma canónica recomendada y nil se acepta como sinónimo de compatibilidad.
Nullable Tipo que permite un valor concreto o null, escrito como `string
Expresión Fragmento de código que se evalúa y produce un valor: 2 + 3, "Hola " . $nombre o ($edad >= 18) ? "Mayor" : "Menor".
Sentencia Instrucción que realiza un paso dentro del programa: declarar una variable, mostrar un mensaje, repetir un ciclo o retornar.
Bloque Grupo de instrucciones delimitadas entre llaves { y }.
Función Máquina reutilizable de código (public func o private func) que recibe datos de entrada y puede devolver un resultado.
Parámetro Variable tipada declarada entre los paréntesis de una función (int $a) que define qué dato espera recibir.
Argumento Valor real entregado entre los paréntesis cuando llamas a una función (sumar(5, 10)).
Retorno Resultado que una función devuelve a quien la llamó mediante la palabra return.
guard Cláusula de guarda (guard (condicion) : { return ... }) que exige que se cumpla una condición o sale inmediatamente de la función.
defer Instrucción que agenda un bloque para ejecutarse justo antes de que termine la función o archivo actual, útil para cerrar recursos.
Callable Cualquier valor que puede invocarse con paréntesis (): una función, un método o una closure.
Ámbito / scope Zona del programa donde una variable existe y puede utilizarse. Cada llamada a función tiene su propio ámbito aislado.
Closure Función anónima (func(...) { ... }) que puede guardarse en una variable y recordar variables del entorno donde fue creada.
Recursión Técnica en la que una función se llama a sí misma para resolver un problema en pasos más pequeños.
Clase Plano o molde (public class Nombre) que agrupa datos (propiedades) y comportamientos (métodos).
record Forma concisa (public record Nombre(...)) de declarar una clase cuyos datos quedan protegidos como constantes tras crearse.
Instancia / Objeto Entidad concreta creada en memoria a partir de una clase usando new Nombre(...).
Propiedad Variable que pertenece a una clase o instancia (accedida con $this->propiedad o $objeto->propiedad).
Método Función que pertenece a una clase; se invoca con -> sobre una instancia o con :: si es un método estático de la clase.
Constructor Método especial (public func constructor(...) o Init(...)) que prepara los datos iniciales al crear un objeto con new.
Herencia Capacidad de una clase para reutilizar y ampliar otra clase base mediante extends.
Interfaz Contrato formal (public interface) que enumera qué métodos públicos debe implementar una clase mediante implements.
Encapsulación Protección de los miembros de una clase usando public (abierto), protected (clase e hijas) o private (solo la misma clase).
Array Lista ordenada de elementos entre corchetes [10, 20], cuyas posiciones (índices) empiezan a contar desde 0.
Map Diccionario de pares clave → valor escrito como {"clave": valor} o ["clave" => valor].
Referencia Acceso compartido al mismo dato. Con ref (incrementar(ref $x)), permite que una función modifique temporalmente una variable del llamador.
Mutabilidad Posibilidad de modificar el valor de una variable o los elementos internos de una colección.
Copia superficial Duplicado del contenedor exterior de una colección cuyos elementos internos complejos siguen compartiéndose.
Error / Diagnóstico Aviso estructurado (JOSS-...) con archivo, línea, explicación y sugerencia que señala un problema en el código.
Excepción Fallo en tiempo de ejecución que se lanza con throw y puede interceptarse con try { ... } catch ($e) { ... }.
Pila de llamadas / stack Cadena de funciones en espera mientras se ejecuta una llamada interna. No confundir con la clase de estructura de datos Stack.
Heap Memoria administrada automáticamente donde viven los objetos, arrays y maps creados durante la ejecución.
Sincronía Ejecución paso a paso en la que cada instrucción espera a que termine la anterior.
Concurrencia Avance coordinado de varias tareas al mismo tiempo.
Asincronía Delegar una tarea con async { ... } para que se ejecute sin bloquear el programa principal.
Future Objeto devuelto por un bloque async que representa el resultado futuro de esa tarea.
await Palabra clave (await $tarea o await($tarea)) que espera y obtiene el valor final de un Future.
Channel Canal tipado (channel<T> / make_chan()) para enviar (<<) y recibir (<-) mensajes seguros entre tareas concurrentes.
Runtime Motor de ejecución de Joss que gestiona la memoria, la concurrencia y las clases nativas integradas.
Lexer Primer paso del procesador de Joss: convierte el texto del archivo .joss en piezas indivisibles llamadas tokens.
Token Unidad léxica reconocida: una palabra clave, una variable, un número o un operador.
Parser Segundo paso del procesador: organiza los tokens en un árbol sintáctico comprobando las reglas de escritura.
AST Árbol de Sintaxis Abstracta que representa la estructura lógica de tu código.
Analizador / analyzer Red de seguridad estática que verifica tipos, nombres, contratos y retornos antes de ejecutar o compilar, generando un PreparedProgram.
Interpretación (joss run) Ejecución inmediata del programa validado directamente desde la terminal.
Compilación nativa (joss build) Transformación del mismo programa Joss a un archivo ejecutable nativo independiente (.exe en Windows o binario en Linux/macOS/Android).
Bytecode (.jp) Representación binaria firmada criptográficamente utilizada para distribuir paquetes y plugins de Joss.
Módulo Organización automática de archivos dentro del proyecto (app/); en Joss las declaraciones públicas se descubren sin escribir import.
Paquete Librería reutilizable distribuida y gestionada con joss pub.
Plugin Extensión compilada en formato .jp que añade capacidades o comandos al proyecto.
CLI Herramienta de línea de comandos (joss) que controlas escribiendo órdenes en la terminal.
Terminal / Consola Ventana del sistema operativo (como PowerShell o Terminal) donde escribes comandos de texto y ves los resultados.
Ruta HTTP Regla en routes.joss o api.joss que conecta una dirección web (URL) con el controlador encargado de responderla.
Controlador Clase ubicada en app/controllers/ que recibe la petición del usuario, procesa la lógica y devuelve una vista o JSON.
Middleware Filtro intermedio que revisa o protege una petición web antes de que llegue al controlador (por ejemplo, verificar si inició sesión).
Vista Plantilla HTML dinámica (.joss.html) en app/views/ que muestra datos al usuario escapando código malicioso automáticamente.
Migración Archivo en app/database/migrations/ que crea o actualiza tablas de la base de datos de forma ordenada con joss migrate.
Query builder / ORM Sistema integrado (Model y GranDB) para consultar y guardar datos en bases de datos sin concatenar SQL inseguro.
API Conjunto de funciones, métodos o rutas web que un programa ofrece para comunicarse con otro.