Saltar al contenido
Volver al catálogo
Proyecto regex-engineLenguajesAvanzadoBeta

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.

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.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata 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.

Hoja de ruta

8 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 12 etapas

    Coincidencias básicas

    Literales, el punto, anclas y el primer motor recursivo mínimo.

    1. 01Literales y punto
    2. 02Anclas y búsqueda
  2. Fase 23 etapas

    La sintaxis completa

    Parser de cuantificadores, alternancia, clases de caracteres y grupos.

    1. 01Cuantificadores
    2. 02Alternancia
    3. 03Clases y grupos
  3. Fase 32 etapas

    Backtracking con capturas

    Grupos capturados, cuantificadores perezosos y sustitución.

    1. 01Capturas
    2. 02Cuantificadores perezosos y reemplazo
  4. Fase 41 etapa

    Sin explotar

    Simulación de NFA y comparación de rendimiento con el motor por backtracking.

    1. 01Simulación de NFA

Antes de empezar

Un motor de regex propio: parser de la sintaxis (concatenación, alternancia, cuantificadores, clases, anclas, grupos), construcción del autómata, ejecución por backtracking con captura de grupos, y una segunda implementación basada en simulación de NFA que no explota con entradas patológicas.

  • json-parser
    Próximamente

    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.

    Principiante7 etapas~6 hLenguajes
    tokenizadoranálisis sintácticorecursión

    TypeScript · Python · Go · Java

  • lisp-interpreter
    Próximamente

    Construye tu propio intérprete de Lisp

    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.

    Avanzado11 etapas~16 hLenguajes
    análisis sintácticoASTclausuras+1

    Python · JavaScript · TypeScript

  • mini-compiler
    Próximamente

    Construye tu propio compilador

    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.

    Experto16 etapas~30 hLenguajes
    analizador léxicoASTbytecode+1

    Rust · C++ · TypeScript