Flin
All Flin articles.
Inferencia de tipos Hindley-Milner en un lenguaje personalizado
Cómo FLIN usa la inferencia de tipos Hindley-Milner para determinar tipos sin anotaciones -- implementado en Rust.
Generación de código: del AST al bytecode
Cómo el generador de código de FLIN transforma el AST en bytecode: opcodes, pool de constantes e instrucciones de vista.
Funciones auxiliares de comparacion temporal
Como construimos seis funciones nativas auxiliares para comparaciones temporales en FLIN -- field_changed, calculate_delta, percent_change, changed_from, value_changed y field_history.
10 sesiones: de cero a un compilador funcional
Construyendo un compilador de lenguaje de programación en 10 sesiones: lexer, parser, verificador de tipos, codegen y VM en dos días.
Diagnósticos de errores que realmente ayudan
Cómo los diagnósticos de errores de FLIN ayudan a los desarrolladores: ubicaciones en el fuente, salida con colores y mensajes legibles para humanos.
El pipeline de compilación completo, de principio a fin
El pipeline de compilación completo de FLIN: seis fases desde el código fuente hasta la aplicación en ejecución, explicado de principio a fin.
Construyendo una máquina virtual basada en pila en Rust
Cómo construimos la máquina virtual basada en pila de FLIN en Rust: bucle de ejecución, tipos de valor y marcos de llamada.
Gestión de memoria y recolección de basura
Gestión de memoria en la VM de FLIN: recolección de basura, internado de cadenas y asignación en el heap en Rust.
Clausuras y funciones de orden superior en la VM
Implementando clausuras y funciones de orden superior en la máquina virtual de FLIN: upvalues y semántica de captura.
Cómo la VM ejecuta vistas
Cómo la VM de FLIN ejecuta vistas: de opcodes de bytecode a renderizado HTML con enlace de atributos reactivo.
La referencia completa de opcodes de FLIN
La referencia completa de opcodes de FLIN: aritmética, flujo de control, entidades, vistas e instrucciones de clausura.
Generación de previsualizaciones de archivos
Cómo FLIN genera automáticamente previsualizaciones de miniaturas cuando se suben imágenes -- tres tamaños, salida WebP, almacenamiento direccionable por contenido y cero configuración para el desarrollador.