Construye tu propio parser de JSON
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.
TypeScript · Python · Go · Java
Construye un motor de expresiones regulares desde cero. Convierte expresiones en autómatas con retroceso, grupos y clases de caracteres sin bibliotecas regex.
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.
Las expresiones regulares parecen un lenguaje esotérico hasta que construyes el motor que las ejecuta. Entonces se convierten en lo que son: un árbol pequeño y una máquina que lo recorre.
Parsearás la expresión, la convertirás en un autómata y la ejecutarás contra un texto. Implementarás grupos, cuantificadores y clases de caracteres, y verás en primera persona por qué ciertas expresiones tardan una eternidad.
8 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.
Literales, el punto, anclas y el primer motor recursivo mínimo.
Parser de cuantificadores, alternancia, clases de caracteres y grupos.
Grupos capturados, cuantificadores perezosos y sustitución.
Simulación de NFA y comparación de rendimiento con el motor por backtracking.
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.
TypeScript · Python · Go · Java
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