Construye tu propio motor de expresiones regulares
Construye un motor de expresiones regulares desde cero. Convierte expresiones en autómatas con retroceso, grupos y clases de caracteres sin bibliotecas regex.
TypeScript · Python · Rust
Construye un parser de JSON desde cero. Tokeniza la entrada, analiza la gramática, crea un árbol sintáctico y reporta errores útiles para JSON inválido.
Constrúyelo en tu lenguaje
El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.
Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.
JSON está presente en APIs, archivos de configuración y herramientas de desarrollo. En este proyecto aprenderás a leerlo desde cero, paso a paso y sin asumir conocimientos de compiladores.
Primero entenderás el mapa completo en una lección de lectura. Después construirás el parser en incrementos pequeños: valores simples, números, cadenas, arrays, objetos y errores útiles. Cada etapa explica el vocabulario, los casos límite y una forma concreta de comprobar tu avance.
7 etapas repartidas en 3 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.
Recorre la entrada carácter a carácter y emite tokens: llaves, comas, literales.
Parser recursivo descendente para objetos, arrays y valores anidados.
Escapes Unicode, números en notación científica y errores con línea y columna.
Construye un motor de expresiones regulares desde cero. Convierte expresiones en autómatas con retroceso, grupos y clases de caracteres sin bibliotecas regex.
TypeScript · Python · Rust
Construye un intérprete de Lisp desde cero. Escribe un tokenizador, parser y evaluador, y añade clausuras para descubrir cómo un lenguaje ejecuta tu código.
Python · JavaScript · TypeScript
Construye un compilador desde cero. Transforma código fuente en bytecode con análisis léxico, AST, análisis semántico, generación de código y una máquina virtual.
Rust · C++ · TypeScript