S-05
编译器实验室
CompilerLab
交互式编译器可视化。输入高级语言代码,观察词法分析、语法分析、代码生成的全过程。
编译器实验室
词法分析结果(Token 序列)
x(IDENT)
=(ASSIGN)
10(NUMBER)
+(PLUS)
20(NUMBER)
(NEWLINE)
y(IDENT)
=(ASSIGN)
x(IDENT)
*(STAR)
2(NUMBER)
(NEWLINE)
print(IDENT)
((LPAREN)
y(IDENT)
)(RPAREN)
词法分析器(Lexer)将源代码字符流切分为有意义的 Token。数字识别为 NUMBER,变量名识别为 IDENT,运算符识别为对应类型。
编译流程
源代码→词法分析→语法分析→代码生成→目标代码
提示:修改源代码后,切换不同阶段查看编译器的每一步处理过程。这就是编译器将人类可读的代码翻译为机器可执行指令的完整流程。
关联教材
以下教材与本沙盒涉及的抽象层级相关,建议系统学习:
关联教材章节
以下教材章节与本沙盒涉及的抽象层级相关,建议配合阅读:
第11章深入理解计算机系统
网络编程
实现古人天涯若比邻的梦想
SocketTCP/IPHTTP客户端-服务器模型
第12章深入理解计算机系统
并发编程
并发与并行,傻傻分不清楚?
线程互斥锁信号量生产者-消费者
第9章计算机系统要素
高级语言
Jack 语言
面向对象类型系统
第10章计算机系统要素
编译器(上)
语法分析
词法分析递归下降
第11章计算机系统要素
编译器(下)
代码生成
中间代码目标代码
第12章计算机系统要素
操作系统
让一切运转
内存管理调度文件系统
第2章数据密集型应用系统设计
数据模型与查询语言
关系型 vs 文档型 vs 图数据库
SQLNoSQL数据模型
第4章数据密集型应用系统设计
编码与演化
数据格式的前世今生
JSONProtobufAvroSchema演化
第5章操作系统导论
并发
多线程编程
线程锁条件变量信号量
第1章编译原理
引论
编译器的全貌
编译过程词法分析语法分析代码优化
第2章编译原理
简单语言翻译器
从表达式开始
语法树递归下降语法制导翻译
第5章编译原理
语法制导翻译
在语法树上做计算
S属性L属性依赖图
学习路径推荐
建议按以下顺序学习,循序渐进掌握计算机科学:
前置沙盒(建议先学习)
使用说明
- •调整参数观察行为变化,实时反馈
- •状态自动编码到 URL,可直接分享给他人
- •支持键盘操作(Tab 切换、方向键调整)