视频加载失败

编译原理

语言处理、程序分析与代码生成。

专题导航
全部主题

15 篇公开记录

  • 编译原理
    Lec10: Liveness Analysis
    为寄存器分配做准备:控制流图、定义/使用集合、活跃变量数据流方程,以及干涉图(interference graph)的构建。
  • 编译原理
    Lec9: 指令选择
    把 canonical IR Tree 翻译成具体目标机器的 abstract assembly:树覆盖算法(Maximal Munch / Dynamic Programming)、指令模板与开销估计。
  • 编译原理
    Lec5: Semantic Analysis
    在 AST 上做语义检查:类型系统、符号表的层级与作用域、变量声明与使用一致性,以及类型推导的基础。
  • 编译原理
    Lec8: Basic Blocks and Traces
    把前端友好的 IR Tree 改写成对后端友好的 canonical form:消除 ESEQ、切分基本块、再用 traces 把跳转重排为顺序流,为指令选择铺路。
  • 编译原理
    Lec4: Abstract Syntax
    从 parser 走向 AST:语义动作如何在归约时构建抽象语法树、AST 节点设计、Visitor 模式与多 pass 遍历框架,以及把 parser 与 frontend 其余阶段解耦。
  • 编译原理
    Lec7: Translate to Intermediate Code
    把 typed AST 翻译成 IR Tree:ESEQ / CJUMP / CALL 等节点的设计,以及前端友好的中间表示如何为后续优化与代码生成铺路。
  • 编译原理
    Lec3: Parsing
    编译原理课程的第三章,介绍了语法分析的基本概念、上下文无关文法以及LR(1)分析方法。语法分析器根据上下文无关文法构建解析树,检查程序的语法正确性。课程还介绍了LR(0)、SLR、LR(1)和LALR(1)等不同类型的LR分析器,以及如何处理歧义文法和错误恢复。最后,介绍了Yacc工具,用于自动生成语法分析器。
  • 编译原理
    Lec6: Activation Records
    从语义合法的 typed AST 走向运行时:函数调用如何在栈上铺开、frame 与 register 如何分配、嵌套作用域与变量访问的实现。
  • 编译原理
    Lec2: Lexical Analysis
    编译原理课程的第二章,介绍了词法分析的基本概念、正则表达式以及有限自动机。词法分析器将源代码转换为 token 流,使用正则表达式描述 token 模式,并通过 NFA 和 DFA 实现。课程还介绍了 Lex 工具,用于自动生成词法分析器,以及 DFA 最小化算法,优化状态数量。
  • 编译原理
    Lec1: Introduction
    编译原理课程的第一章,介绍了编译器的基本概念、模块化设计以及常用工具。编译器是将一种语言转换为另一种语言的程序,分为多个阶段,每个阶段处理不同的抽象表示形式。课程还介绍了正则表达式和上下文无关文法,以及相应的工具Lex和Yacc,用于词法分析和语法分析。
  • 编译原理
    课程介绍与评分
    编译原理课程的第一堂课,介绍了课程的分数构成、习题课安排以及实验目标。学生需要编写一个编译器,将源语言SysY编译成RISC-V 32汇编语言。实验报告需要详细描述实验思路,并且需要独立完成,禁止使用AI工具。
  • 编译原理日期未记录
    Lec11: 寄存器分配
    用图染色分配有限寄存器,理解简化、溢出、合并与迭代寄存器分配。
  • 编译原理日期未记录
    Lec12: 垃圾回收
    从可达性出发,比较标记清扫、复制、引用计数与分代垃圾回收。
  • 编译原理日期未记录
    Lec14: 面向对象语言
    对象字段布局、虚方法分派、多继承与运行时类型检查的编译实现。
  • 编译原理日期未记录
    Lec15: 循环优化
    通过支配关系识别自然循环,理解循环不变代码外提、强度削减和归纳变量优化。

当前页面没有目录

文章目录

当前页面没有目录