首页
›
热销单品
›
实战100例单品
›
《AI编译工程师实战100例》
所属分类:实战100例单品
当前为单品课程,可返回上一级继续浏览同方向资料。
← 返回上一级
← 返回所属目录
咨询 / 购买
📘
AI编译工程师实战100例
共计 100 章节
可可资料掘金营 · 点击在线试看
01
构建简单的表达式求值器
实现一个支持加减乘除和括号的表达式解… · 并输出求值结果
构建简单的表达式…
实现一个支持加减…
02
将表达式转换为逆波兰表示法
将中缀表达式转换为逆波兰表达式 · 并演示求值过程
将表达式转换为逆…
缀表达式转换为逆…
03
实现一个简单的词法分析器
编写一个词法分析器 · 将源代码字符串拆分为序列 · 支持标识符
实现一个简单的词…
编写一个词法分析…
04
构建递归下降解析器
为简单的算术表达式文法实现递归下降解… · 生成抽象语法树(AST)
构建递归下降解析…
为简单的算术表达…
05
实现运算符优先级解析
使用优先级爬升法解析表达式 · 正确处理运算符优先级和结合性
实现运算符优先级…
使用优先级爬升法…
06
生成三地址代码
将简单表达式转换为三地址代码(TAC… · 并输出中间表示
生成三地址代码
TAC
07
实现基本块划分
将三地址代码划分为基本块 · 用于后续优化
实现基本块划分
将三地址代码划分…
08
构建控制流图
从基本块构建控制流图(CFG) · 并识别基本块之间的跳转关系
构建控制流图
CFG
09
实现活跃变量分析
在CFG上进行活跃变量分析 · 计算每个基本块入口和出口的活跃变量集…
实现活跃变量分析
CFG
10
实现到达定值分析
在CFG上进行到达定值分析 · 计算每个程序点的定值集合
实现到达定值分析
CFG
11
实现可用表达式分析
在CFG上进行可用表达式分析 · 识别可复用的表达式
实现可用表达式分…
CFG
12
实现常量传播优化
在CFG上执行常量传播 · 将变量替换为常量值
实现常量传播优化
CFG
13
实现复制传播优化
在CFG上执行复制传播 · 消除冗余的复制语句
实现复制传播优化
CFG
14
实现死代码消除
基于活跃变量分析 · 删除对后续计算无影响的死代码
实现死代码消除
基于活跃变量分析
15
实现公共子表达式消除
利用可用表达式分析 · 消除重复计算的公共子表达式
实现公共子表达式…
利用可用表达式分…
16
实现循环不变式外提
识别循环中的不变计算 · 并将其外提到循环之前
实现循环不变式外…
识别循环
17
实现强度削减优化
将循环中的乘法等昂贵运算替换为加法等…
实现强度削减优化
将循环
18
实现归纳变量消除
识别并消除循环中的归纳变量 · 简化循环结构
实现归纳变量消除
识别并消除循环
19
实现循环展开
将循环体复制多次以减少循环控制开销
实现循环展开
将循环体复制多次…
20
实现函数内联
将函数调用替换为函数体 · 并处理参数和返回值
实现函数内联
将函数调用替换为…
21
实现尾调用优化
将尾递归或尾调用转换为循环 · 避免栈溢出
实现尾调用优化
将尾递归或尾调用…
22
实现静态单赋值形式转换
将普通IR转换为SSA形式 · 插入phi函数
实现静态单赋值形…
IR
23
实现SSA破坏
将SSA形式转换回可执行代码 · 消除phi函数
SSA
实现
24
实现支配树构建
计算CFG的支配树 · 用于优化和代码生成
实现支配树构建
CFG
25
实现循环识别
基于支配树识别自然循环 · 并确定循环头和循环体
实现循环识别
基于支配树识别自…
26
实现基于SSA的常量传播
在SSA形式上执行常量传播 · 利用phi函数处理分支
SSA
实现基于
27
实现基于SSA的死代码消除
在SSA形式上删除无用的phi函数和…
SSA
实现基于
28
实现全局值编号
在SSA形式上识别冗余计算 · 进行全局值编号
实现全局值编号
SSA
29
实现条件常量传播
结合分支条件进行常量传播 · 消除不可达分支
实现条件常量传播
结合分支条件进行…
30
实现部分冗余消除
在CFG上执行部分冗余消除 · 减少重复计算
实现部分冗余消除
CFG
31
实现代码提升
将计算从循环中提升到循环外 · 减少执行次数
实现代码提升
将计算从循环
32
实现指令调度
对基本块内的指令进行重排 · 以优化流水线执行
实现指令调度
对基本块内的指令…
33
实现寄存器分配(简单图着色)
使用图着色算法为变量分配寄存器 · 处理溢出
实现寄存器分配
简单图着色
34
实现线性扫描寄存器分配
使用线性扫描算法为变量分配寄存器 · 适用于快速编译
实现线性扫描寄存…
使用线性扫描算法…
35
实现栈帧布局
为函数调用设计栈帧 · 包括局部变量 · 参数和返回地址
实现栈帧布局
为函数调用设计栈…
36
实现x86-64汇编代码生成
将三地址代码转换为x86-64汇编指… · 并处理操作数选择
x86-64
实现
37
实现ARM汇编代码生成
将三地址代码转换为ARM汇编指令 · 并处理条件执行
ARM
实现
38
实现简单类型检查器
为小型语言实现静态类型检查 · 支持基本类型和函数类型
实现简单类型检查…
为小型语言实现静…
39
实现类型推断
为无类型标注的语言实现Hindley…
实现类型推断
Hindley
40
实现语法树到中间代码的转换
将AST转换为中间表示(如三地址代码… · 并处理控制流
实现语法树到
间代码的转换
41
实现词法作用域解析
为嵌套作用域的语言实现符号表 · 并解析变量绑定
实现词法作用域解…
为嵌套作用域的语…
42
实现闭包转换
将高阶函数转换为闭包表示 · 并处理自由变量
实现闭包转换
将高阶函数转换为…
43
实现lambda提升
将嵌套函数提升为顶层函数 · 并传递环境参数
lambda
实现
44
实现垃圾回收(标记-清除)
为运行时实现简单的标记-清除垃圾回收…
实现垃圾回收
标记
45
实现垃圾回收(复制式)
实现半空间复制垃圾回收器 · 并处理对象移动
实现垃圾回收
复制式
46
实现对象布局
设计并实现对象的内存布局 · 包括头部 · 字段和对齐
实现对象布局
设计并实现对象的…
47
实现虚方法表
为面向对象语言实现虚方法分派 · 使用vtable
实现虚方法表
为面向对象语言实…
48
实现异常处理机制
在编译器中生成异常处理代码 · 包括try-catch块
实现异常处理机制
编译器
49
实现延迟求值
将表达式转换为惰性求值形式 · 使用thunk
实现延迟求值
将表达式转换为惰…
50
实现模式匹配编译
将函数式语言中的模式匹配编译为决策树
实现模式匹配编译
将函数式语言
51
实现代数数据类型表示
为代数数据类型设计内存表示 · 并实现构造和访问
实现代数数据类型…
为代数数据类型设…
52
实现多态类型编译
将多态函数编译为单态版本 · 或使用类型擦除
实现多态类型编译
将多态函数编译为…
53
实现泛型特化
为泛型函数生成特化版本 · 提高性能
实现泛型特化
为泛型函数生成特…
54
实现向量化优化
将循环中的标量运算转换为SIMD指令
实现向量化优化
SIMD
55
实现自动并行化
识别可并行循环 · 并生成并行代码(如OpenMP)
实现自动并行化
识别可并行循环
56
实现缓存优化(循环分块)
对嵌套循环进行分块 · 提高缓存局部性
实现缓存优化
循环分块
57
实现数组边界检查消除
通过分析消除冗余的数组边界检查
实现数组边界检查…
通过分析消除冗余…
58
实现空指针检查消除
在类型安全的语言中消除不必要的空指针…
实现空指针检查消…
类型安全的语言
59
实现逃逸分析
分析对象是否逃逸 · 以决定栈上分配或标量替换
实现逃逸分析
分析对象是否逃逸
60
实现锁消除
在逃逸分析的基础上消除不必要的锁操作
实现锁消除
逃逸分析的基础上…
61
实现JIT编译(简单解释器)
实现一个简单的即时编译器 · 将热点代码编译为机器码
JIT
实现
62
实现AOT编译
将高级语言提前编译为本地可执行文件
AOT
实现
63
实现增量编译
支持只重新编译修改过的模块 · 提高编译速度
实现增量编译
支持只重新编译修…
64
实现编译缓存
缓存编译结果 · 避免重复编译
实现编译缓存
缓存编译结果
65
实现并行编译
将多个文件并行编译 · 提高编译速度
实现并行编译
将多个文件并行编…
66
实现编译错误恢复
在解析错误后继续解析 · 并报告多个错误
实现编译错误恢复
解析错误后继续解…
67
实现编译警告系统
在编译过程中生成警告信息 · 如未使用变量
实现编译警告系统
编译过程
68
实现调试信息生成
生成DWARF调试信息 · 支持断点和变量查看
实现调试信息生成
DWARF
69
实现源代码映射
生成源映射文件 · 将编译后代码映射回源代码
实现源代码映射
生成源映射文件
70
实现profiling支持
在编译器中插入性能分析代码 · 统计函数执行次数
profiling
实现
71
实现覆盖率检测
插入代码覆盖率检测 · 统计语句执行情况
实现覆盖率检测
插入代码覆盖率检…
72
实现sanitizer(地址检查)
在编译时插入内存访问检查 · 检测越界和释放后使用
sanitizer
实现
73
实现控制流完整性检查
在间接跳转前插入检查 · 防止控制流劫持
实现控制流完整性…
间接跳转前插入检…
74
实现栈保护
在函数入口和出口插入栈金丝雀 · 检测栈溢出
实现栈保护
函数入口
75
实现整数溢出检查
在算术运算后插入溢出检查 · 并报告错误
实现整数溢出检查
算术运算后插入溢…
76
实现浮点异常处理
配置浮点环境 · 捕获除零等异常
实现浮点异常处理
配置浮点环境
77
实现多语言互操作
生成符合C ABI的代码 · 支持与C库互操作
实现多语言互操作
ABI
78
实现WebAssembly目标
将中间代码编译为WebAssembl…
WebAssembly
实现
79
实现GPU内核编译
将简单循环编译为CUDA或OpenC…
GPU
实现
80
实现量子电路编译
将量子算法描述编译为量子门序列
实现量子电路编译
将量子算法描述编…
81
实现DSL嵌入式编译
为特定领域语言设计嵌入式编译流程
DSL
实现
82
实现元编程支持
在编译器中支持宏或模板元编程
实现元编程支持
编译器
83
实现编译期反射
在编译时获取类型信息并生成代码
实现编译期反射
编译时获取类型信…
84
实现代码生成模板
使用模板引擎生成代码 · 如AST到代码
实现代码生成模板
使用模板引擎生成…
85
实现编译器测试框架
编写测试用例 · 验证编译器正确性
实现编译器测试框…
编写测试用例
86
实现模糊测试
生成随机程序输入 · 测试编译器的鲁棒性
实现模糊测试
生成随机程序输入
87
实现编译器基准测试
使用标准基准测试集评估编译器的性能
实现编译器基准测…
使用标准基准测试…
88
实现编译时间优化
分析编译过程 · 优化编译器的性能
实现编译时间优化
分析编译过程
89
实现内存使用优化
减少编译器自身的内存占用 · 如使用池分配
实现内存使用优化
减少编译器自身的…
90
实现增量式垃圾回收
为编译器运行时实现增量式垃圾回收
实现增量式垃圾回…
为编译器运行时实…
91
实现并发垃圾回收
实现与程序并发执行的垃圾回收器
实现并发垃圾回收
实现
92
实现分代垃圾回收
实现分代垃圾回收 · 提高回收效率
实现分代垃圾回收
提高回收效率
93
实现对象晋升
在分代回收中 · 将存活对象晋升到老年代
实现对象晋升
分代回收
94
实现写屏障
在对象引用更新时插入写屏障 · 支持分代回收
实现写屏障
对象引用更新时插…
95
实现读屏障
在对象读取时插入读屏障 · 支持并发回收
实现读屏障
对象读取时插入读…
96
实现编译为LLVM IR
将高级语言转换为LLVM IR · 并利用LLVM优化
LLVM
IR
97
实现自定义优化pass
在LLVM中编写一个自定义的优化pa…
pass
实现自定义优化
98
实现GCC插件
编写GCC插件 · 在编译过程中执行自定义分析
GCC
实现
99
实现解释器与编译器的混合执行
实现一个混合执行引擎 · 先解释后编译热点代码
实现解释器
编译器的混合执行
100
实现多后端支持
设计编译器架构 · 支持多种目标架构
实现多后端支持
设计编译器架构
所属VIP或分类
同VIP:3D打印Klipper固件开发实战100例
同VIP:45天精通Rust编程实战100例
同VIP:AE自动曝光算法设计实战100例