Estructura
El archivo JSON debe ser un objeto con estos campos:
titlestring Nombre corto y descriptivo. Ej. "Copiar los Unos".
descriptionstring Qué hace la máquina. Se muestra en la vista de detalle de la librería.
authorstring Nombre del creador.
alphabetstring Símbolos de entrada separados por espacios — Σ. Nunca incluyas #: es el blanco implícito. Ej. "1 0 a".
statesstring[] Arreglo de nombres de estado — K. Deben seguir el patrón q0, q1, q2 … Ej. ["q0","q1","q2"].
initStatestring Estado inicial q₀. Debe ser un miembro de states.
tapestring Contenido inicial de la cinta. Cada carácter debe estar en Σ. Usa # o _ para celdas en blanco. Puede estar vacío.
transobject La función de instrucciones I. Cada entrada define una instrucción (ver abajo).
Formato de transiciones
Cada par clave-valor en trans codifica una instrucción de T:
"qi,s" → "t D qj"
qi — estado actual s — símbolo leído (Σ ∪ {#}) t — símbolo a escribir (Σ ∪ {#}) D — dirección: R (derecha) o L (izquierda) qj — estado siguiente
La máquina se detiene al alcanzar un par estado-símbolo sin transición definida — llamado combinación final.
Ejemplo
Llamadas entre máquinas
Una instrucción puede invocar otra máquina de la librería. La máquina invocada recibe como cinta el contenido desde la posición actual del cabezal hasta el primer blanco. Su resultado reemplaza esa sección al terminar.
"qi,s" → "t D @machine-id:qj"
t — símbolo a escribir (Σ ∪ {#}) D — dirección: R o L @machine-id — ID de la máquina a invocar (ver tarjeta en librería) :qj — estado en que reanuda esta máquina al terminar (opcional)
Si omites :qj la máquina padre queda detenida tras la llamada. El ID de cada máquina se muestra con prefijo @ en su tarjeta de la librería.
Ejemplo de llamada
Generador de Prompt IA
Completa los campos y se construirá un prompt preciso para pegar en ChatGPT, Claude o Gemini. La IA te devolverá un JSON listo para importar.
Copia y pega esto en tu IA: