Saltar al contenido
Volver al catálogo
Proyecto lisp-interpreterLenguajesAvanzadoPró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.

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

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.

Lisp se eligió por una razón: su sintaxis es tan mínima que el parser se quita de en medio en una tarde y puedes dedicar el resto del reto a lo interesante, que es la evaluación.

Construirás un intérprete completo: entornos, funciones, closures, recursión y macros. Al terminar entenderás qué hace tu lenguaje favorito entre que pulsas «ejecutar» y aparece el resultado.

Hoja de ruta

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

  1. Fase 13 etapas

    Leer expresiones

    Tokenizador, lector de expresiones-S y representación de átomos y listas.

  2. Fase 23 etapas

    Evaluar

    Entornos, variables, aritmética, condicionales y formas especiales.

  3. Fase 33 etapas

    Funciones y closures

    Lambdas, ámbito léxico, recursión y llamadas de cola optimizadas.

  4. Fase 42 etapas

    Código que escribe código

    Quote, macros, errores con traza y una pequeña librería.

Antes de empezar

Un intérprete de un dialecto de Lisp: lector de expresiones-S, evaluador sobre entornos encadenados, funciones definidas por el usuario con closures, condicionales, recursión con optimización de llamada final, manejo de errores y macros que generan código.

  • regex-engine
    Beta

    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.

    Avanzado8 etapas~11 hLenguajes
    autómatasanálisis sintácticoretroceso

    TypeScript · Python · Rust

  • 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

  • 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