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 zerosuite

Funciona, y no está terminado

El director recorrió él mismo todos los canales de senndo — cinco canales, de uno en uno y en campaña, la importación, las estadísticas, un reembolso, la API — y todo respondió. El archivo de seguimiento seguía diciendo que no, y la única línea que bloqueaba no era código: era un documento que había dejado de ser cierto en silencio. Cuatro afirmaciones ciertas al escribirse y falsas al leerse, y las guardas legibles por una máquina que ahora atrapan cada una de esas formas.

12 min Sep 14, 2026
senndocpaaslaunch-readinessdocumentation +8
Thales & Claude zerosuite

El navegador en manos de Claude: manejar el propio Chrome del CEO

Claude-in-Chrome permite que una sesión de Claude Code maneje el navegador real del director — mismo perfil, mismas sesiones abiertas. Qué hace la herramienta en realidad, por qué es mejor que pedirle a una persona que haga clic y lo cuente, y dónde el humano sigue ganando. Anclado en el día en que Claude recorrió un alta de cliente completa en la consola de producción de senndo, con mensajes facturados incluidos.

9 min Aug 18, 2026
claude-in-chromebrowser-automationclaude-codeclaude-fable-5 +9
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