Back to flin
flin

Sesión 1: configuración del proyecto y 42 palabras clave

Sesión 1 de la construcción de FLIN: configuración del proyecto, 42 palabras clave, 60+ tipos de tokens y las primeras líneas de un compilador de lenguaje.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 3 min flin
EN/ FR/ ES
flinrust

El 1 de enero de 2026, abrimos un terminal en Abiyán y escribimos cargo init. FLIN aún no existía. No había analizador léxico, ni parser, ni sistema de tipos, ni runtime. Había un PRD -- siete documentos que sumaban miles de líneas -- y un directorio vacío. Cuarenta y cinco minutos después, teníamos un proyecto Rust con 14 archivos, más de 1.000 líneas de código, 42 palabras clave definidas, 60+ tipos de tokens enumerados, 25 pruebas unitarias y el esqueleto de cada fase del compilador mapeado a su propio módulo. No un prototipo. No una lluvia de ideas. La base de un lenguaje de programación.

Esta es la historia de esa primera sesión -- las decisiones que tomamos antes de escribir una sola línea de código, la estructura del proyecto que llevaría a FLIN a través de docenas de sesiones, y las 42 palabras clave que definen lo que es FLIN.

Las 42 palabras clave

FLIN no es un lenguaje de propósito general. Es un lenguaje específico de dominio para construir aplicaciones web full-stack con operaciones de base de datos integradas, consultas de intención potenciadas por IA, datos temporales y una capa de vista reactiva. Las 42 palabras clave reflejan este alcance exactamente.

Las organizamos en seis categorías:

Operaciones de datos (9): entity, save, delete, where, find, all, first, count, order. Son los verbos de la capa de persistencia integrada de FLIN.

Tipos (8): text, int, float, bool, time, file, money, semantic. El sistema de tipos de FLIN es pequeño y práctico. money es un tipo de primera clase porque FLIN apunta a aplicaciones de negocio en África Occidental donde el manejo de monedas no es opcional. semantic es un modificador de tipo para búsqueda vectorial potenciada por IA.

Flujo de control (5): if, else, for, in, match. Territorio familiar. Sin bucle while -- FLIN usa for con rangos y colecciones. Sin switch -- FLIN usa match con coincidencia de patrones.

Referencias temporales (7): now, today, yesterday, tomorrow, last_week, last_month, last_year. El tiempo no es una ocurrencia tardía en FLIN. Cada entidad es automáticamente versionada. Estas palabras clave son referencias temporales de primera clase.

Intención / IA (4): ask, search, by, limit. Potencian la integración IA de FLIN.

Literales y contexto (9): true, false, none, event, params, body, route, asc, desc.

60+ tipos de tokens

El enum TokenKind de FLIN tiene más de 60 variantes, cubriendo cada elemento sintáctico que el lenguaje puede contener: literales, operadores, delimitadores, tokens de vista (TagOpen, TagClose, TagSelfClose, TagEnd) y tokens de control de vista ({if, {else, {for, {/for}).

La sesión en números

MétricaValor
Duración~45 minutos
Archivos creados14
Líneas de Rust~1.000
Palabras clave definidas42
Tipos de tokens definidos60+
Pruebas unitarias25
Dependencias externas0
Fases del compilador estructuradas7
Tareas completadas12 de 350 totales

Doce tareas de 350. Tres coma cuatro por ciento del plan total de implementación. Pero el 3,4% correcto -- la base de la que depende cada tarea subsiguiente.


Esta es la Parte 11 de la serie "Cómo construimos FLIN".

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude deblo

El segfault que no era nuestro: cómo lanzamos el tracking del día de lanzamiento de Déblo en la noche del despliegue — analítica condicionada por entorno, atribución nativa de las tiendas, tres bugs que el compilador no podía ver y un build sin memoria que diagnosticamos en lugar de revertir

El 1 de julio de 2026 — el día del lanzamiento — el riesgo nunca fue el texto. Era que las campañas de pago salieran a ciegas. Este es el build-log de cómo desplegamos la analítica y la atribución de instalaciones de Déblo como código en la noche del lanzamiento: etiquetas GA4, Meta y LinkedIn condicionadas por entorno que se despliegan sin riesgo antes de que existan las cuentas publicitarias; atribución enrutada por los canales nativos de las tiendas en lugar del pixel web; una auditoría adversarial que atrapó tres bugs que tanto el typechecker como el build dieron por buenos; y un despliegue en Easypanel que hizo segfault en el primer build — que demostramos que no era nuestro código antes de tocar una sola línea.

18 min Jul 1, 2026
deblolaunch-dayclaude-opus-4.8claude-code +26
Thales & Claude thales

Trece agentes, cuarenta y tres minutos: la primera sesión Workflow de Claude Fable 5, y lo que un script de orquestación determinista cambia en los builds multiagente

Un prompt, trece agentes, cuarenta y tres minutos: la primera sesión de producción con Claude Fable 5 y la herramienta Workflow de Claude Code entregó un sitio web de producción completo de siete páginas más un endpoint backend de captura de leads, en un solo commit. La bitácora: el script de orquestación determinista, el patrón de inyección de contrato entre fases, la economía por agente del fan-out paralelo, y el suspenso del límite de sesión que el diario de reanudación convirtió en un no-evento.

23 min Jun 12, 2026
claude-fable-5claude-codeworkflow-toolmulti-agent +10
Thales & Claude casp

La puerta detectó su propia deriva: un día dentro de CASP con Claude Fable 5

Le entregamos al modelo Claude más autónomo hasta la fecha las llaves de CASP — la CLI open source que mantiene honestos a los agentes de código IA frente a git — con la autoridad de rechazar nuestra propia roadmap. Rechazó cinco cosas, encontró dos bugs reales en el validador al hacerle dogfooding, los corrigió bajo una puerta de dos auditores, y dejó casp check completamente en verde sobre su propio repositorio por primera vez. CASP 0.3.0 es el resultado.

15 min Jun 10, 2026
caspzerosuiteworkflowai-cto +9