跳转至

BLOG

二重积分

高等数学之二重积分。包括二重积分的定义、性质、计算技巧、换元法,以及在直角坐标系和极坐标系下的二重积分计算方法。

多元函数的导数与微分

高等数学之多元函数的导数与微分。包括多元函数的偏导数、高阶偏导数与混合偏导数、多元函数的全微分、复合函数的求导法(链式法则)、隐函数求导法则、场的方向导数与梯度、多元函数的泰勒公式、多元函数的极值与最值。以及连续性、可导性、可微性的关系。

多元函数的极限与连续性

多元函数的极限与连续性。包括二元函数的极限定义、存在性判断与计算方法、二重极限和累次极限的关系、以及二元函数的连续性与连续函数的相关性质。

指令选择

本文简要介绍了指令选择问题中的两种主要方法:

  1. 使用贪心策略的 Maximal Munch 算法,通过选择最大图块覆盖 IR 树节点,快速生成指令。
  2. 基于动态规划的算法,自下而上地计算最优代价,获得更精确的整体最优解。

活跃变量分析

本文介绍了编译原理中的活跃变量分析,以及其在寄存器分配和死代码删除等方面的应用。具体内容包括构建控制流图进行数据流分析、活跃变量的定义与判定算法。

常微分方程

高等数学之常微分方程。包括一阶微分方程(可分离变量的方程、齐次方程、线性方程、伯努利方程、全微分方程)、可降阶的高阶微分方程、二阶线性微分方程(常系数线性齐次和非齐次微分方程)、欧拉方程。主要探讨这些方程的求解法。

中间代码生成

中间代码生成

中间代码/中间表示 (Intermediate Representation, IR)

AST -> IR1 -> IR2 -> ... -> IRk -> asm

IR 是一种抽象的机器语言、旨在表达目标机器的操作而不涉及过多与指令集有关的细节。相比于直接生成目标架构的汇编语言代码,将源代码首先转为 IR 能够有效地提高编译器的模块化以及可移植性(考虑需要将高级语言转为不同目标架构的汇编语言)。

玩图寻

能够在图寻游戏中使用到的地理知识和技巧。有助于在全球积分赛中浑水摸鱼,恰到烂分。

活动记录

冯诺依曼架构中的编译器需要将所有的 CODE 转换为汇编指令,并为 DATA 分配空间。活动记录是通过编译器实现的,使得程序在运行时,存储或传递:函数或过程的局部变量、返回地址、参数等信息的数据结构,一般是栈帧。