编译原理
Contents
💠
💠 2023-10-22 02:47
编译原理
最简单: 词法分析 -> 语法分析 -> 语义分析 -> 代码生成
前端 | 中端 | 后端 |
---|---|---|
词法分析 -> 语法分析 -> 语义分析 | -> 平台无关优化 -> 平台相关优化 | -> 寄存器分配 -> 代码生成 |
编译技术
JIT
Just in time
在运行时才将源码编译成机器码
AOT
Ahead of time
预先将所源码编译成机器码
词法分析
语法分析
AST
Abstract Syntax Tree
用处: 错误提示、自动补全、重构、语法检查, 代码混淆, 静态代码分析, 自动生成测试代码 …
- Github: java parser
Java生成AST
工具
Antlr
Antlr
ANother Tool for Language Recognition
基于ANTLR的语法制导翻译(内嵌在语法里的语义动作(semantic action),或者是ANTLRv4的回调),还可以实现AST生成、语义检查等功能。 这样借助ANTLR就可以基本覆盖整个编译器前端的需求了。
Author Kuangcp
LastMod 2019-01-06