2 repositorios
Generating parser source code for multiple target programming languages from a single grammar.
Distinct from Formal Grammar Parser Generators: Distinct from Formal Grammar Parser Generators: specifically targets the ability to produce code for multiple target languages.
Explore 2 awesome GitHub repositories matching software engineering & architecture · Multi-Target Code Generation. Refine with filters or upvote what's useful.
ANTLR es un generador de código basado en gramática y un generador de analizadores multilingüe utilizado para diseñar e implementar lenguajes personalizados. Funciona como un kit de herramientas para transformar definiciones de lenguaje formal en código fuente ejecutable para procesar texto estructurado o archivos binarios, al tiempo que proporciona un framework para construir y recorrer automáticamente árboles de análisis jerárquicos. El proyecto se distingue por su capacidad para generar lexers y parsers en varios lenguajes de programación de destino a partir de una única definición de gramática compartida. Admite gramáticas que contienen recursión izquierda directa y utiliza predicción adaptativa para optimizar la velocidad de análisis mientras mantiene la flexibilidad. El sistema cubre una amplia gama de capacidades, incluyendo análisis léxico, verificación semántica mediante evaluación de predicados y gestión de datos jerárquicos. Proporciona herramientas para el análisis de árboles de análisis mediante consultas basadas en rutas y patrones de recorrido de visitante-oyente para desacoplar la lógica de la gramática de las acciones de la aplicación. Las utilidades de línea de comandos están disponibles para probar definiciones de gramática y lógica de depuración, y la herramienta se puede ejecutar dentro de contenedores Docker para evitar instalaciones locales.
Produces lexer and parser source code for multiple target programming languages from a single shared grammar.
Wuffs es un conjunto de herramientas para generar analizadores y decodificadores de memoria segura y aislados (sandboxed) a partir de especificaciones de lenguaje de dominio específico. Funciona como un compilador que transforma estas especificaciones en código ejecutable para C, Go o Rust, diseñado específicamente para decodificar formatos de archivo no confiables mientras se previenen desbordamientos de búfer y enteros. El proyecto emplea un modelo de ejecución aislado que prohíbe las llamadas al sistema y la gestión manual de la memoria para garantizar que los cálculos estén libres de efectos secundarios. Utiliza un sistema de tipos refinado y verificación de restricciones en tiempo de compilación para hacer cumplir la seguridad de la memoria, junto con aritmética saturada para evitar desbordamientos numéricos. El sistema proporciona implementaciones seguras para procesar datos estructurados, formatos de imagen y flujos comprimidos. Sus capacidades cubren la decodificación y codificación de imágenes, la descompresión de varios formatos de archivo y el cálculo de sumas de comprobación de integridad de datos. La integración se simplifica mediante la generación de bibliotecas C autónomas de un solo archivo y soporte de bibliotecas de solo cabecera.
A feature that translates a domain-specific language into executable code for other target environments such as Go or Rust.