4 个仓库
The design and implementation of the initial stages of a compiler, including parsing and IR generation.
Distinct from Compiler Development: None of the candidates correctly capture the broad architectural domain of compiler frontend engineering.
Explore 4 awesome GitHub repositories matching programming languages & runtimes · Compiler Frontend Development. Refine with filters or upvote what's useful.
go-ast-book 是一系列专注于抽象语法树(AST)分析、编译器开发和静态代码验证的教育和技术资源。它提供了解析、遍历和分析 Go 源代码以提取语义含义的指南和手册。 该项目作为构建编译器前端的参考,涵盖了将高级代码转换为中间表示和静态单赋值形式的过程。它还提供了使用这些技术开发语言工具和执行静态代码分析的说明。 这些资源涵盖了广泛的静态分析能力,包括词法标记化、表达式和声明的结构化解析,以及源文件的坐标跟踪。它还详细介绍了语义分析过程,如标识符解析、类型正确性验证,以及针对并发和延迟执行的控制流分析。
Provides a comprehensive reference for building compiler frontends, from parsing to intermediate representation generation.
LLVM 是一个模块化的编译器基础设施和框架,由一系列可重用库组成,用于构建语言前端和优化工具。它作为一个底层虚拟机,提供中间表示和优化流水线,以实现与语言无关的代码生成。 该项目提供了一套即时编译(JIT)工具包,可在运行时将中间表示翻译为机器码以供立即执行。其模块化设计允许开发者在多种目标架构上创建自定义语言前端和高性能运行时环境。 该基础设施涵盖了高性能代码优化和跨平台工具链的协调,包括编译器、运行时和调试器的集成。
Facilitates the design and implementation of the initial compiler stages, including parsing and IR generation.
Jison 是一个实现 LALR 解析算法的 JavaScript 解析器生成器。它通过将结构化输入转换为标记(tokens)和树,创建用于分析自定义编程语言的工具。 该项目作为一个与 Bison 兼容的生成器,接受与 Bison 解析器生成器格式兼容的语法,以生成 JavaScript 解析器。 它涵盖了编译器前端开发的需求,包括领域特定语言的实现和语法分析工具。其功能扩展到自定义语言解析以及通过命令行界面生成解析器。
Provides the essential tools for the initial stage of a compiler, focusing on parsing and analysis.
Participle is a Go parser generator and toolkit for building language frontends. It provides a declarative grammar framework that uses reflection and struct tags to map input patterns directly into typed data structures. The library features a stateful lexical analyzer that employs state machines to handle nested or modal patterns. It includes a lexer code generator to produce optimized code, reducing runtime memory allocations and increasing throughput. The project covers recursive descent parsing with support for union types via sealed interfaces and custom parsing logic through interface-
Provides the fundamental tools for building compiler frontends, including lexical analysis and syntax tree generation.