Analizador gramatical

Analizador y generador de gramáticas.

Este proyecto fue realizado: 01-Ene-2025 y actualmente en curso

Brayan Téllez Cruz
Frontent Developer

Imagen Brayan Tellez.

Sobre el proyecto.

Este proyecto busca no solo mejorar mi comprensión sobre las de gramáticas regulares y libres de contexto y la construcción de compiladores e intérpretes, sino también servir como herramienta para que otras personas puedan hacerlo también, es por ello que el código es completamente líbre y abierto, se encuentra disponible directamente en github.

Consta de un programa desarrollado en C y compilado con GCC y Make que realiza la lectura de archivos de texto que deben tener un formato muy concreto, indicado de forma "Terminal -> Producciones", así para cada una de las reglas que conforman el lenguaje.

Dentro de las gramáticas existen diferentes niveles según su complejidad, pero este proyecto se enfocará en 'Regulares' y 'Libres de contexto', dentro de libres de contexto existen 'Simple', 'q' y 'LL(1)', etc. Pero solo estas están implementadas hasta el momento, sin embargo, estaré realizando actualizaciones periodicas agregando soporte a más gramáticas y funcionalidades extras como la derivación de gramáticas de tipos diferentes a partir de una entrada, el desarrollo del mismo estará cubierto en mis blogs.

El desarrollo de este proyecto es libre y abierto, así que sientete libre de hacer forks o hacerme 'pull request' si encuentras algún bug o característica a mejorar, el conocimiento es de caracter universal y es nuestro deber democratizarlo.

Galería.

Objetivos del proyecto.

  • Mejorar mi comprensión sobre el funcionamiento de una gramática.
  • Identificar las características únicas de los diferentes tipos de gramáticas.
  • Automatizar cálculos de conjuntos de selección de gramáticas.
  • Automatizar limpieza y generación de gramáticas equivalentes a partir de una entrada.
  • Ayudar a las personas a comprender de mejor manera el funcionamiento de los lenguajes.
  • Apoyar a los nuevos desarrolladores en la contrucción de lenguajes y compiladores.

Enlaces.

Tecnologías utilizadas.