跳转至

Blog

活跃变量分析

本文介绍了编译原理中的活跃变量分析,详细阐述了其在寄存器分配和死代码删除等方面的应用。通过构建控制流图(CFG)进行数据流分析,定义了变量的活跃性,并介绍了相关术语如前驱节点、后继节点、定义和使用。文章探讨了活跃变量分析的可判定性问题,并提出了一种保守的近似算法,分析了其时间复杂度和最小不动点的概念。此外,还区分了静态活跃性与动态活跃性,强调了静态活跃性作为一种保守估计的重要性。

(摘要由 OpenAI o1-preview 生成)

常微分方程

本文详细介绍了常微分方程的基本概念和解法。首先讨论了一阶微分方程,包括可分离变量的方程、齐次方程、线性方程、伯努利方程和全微分方程,并提供了相应的解法和实例。接着介绍了可降阶的高阶微分方程,讨论了如何通过换元法将高阶方程降阶为一阶方程进行求解。随后,文章探讨了二阶线性微分方程的解法,包括常系数线性齐次和非齐次微分方程的特解和通解的求法。最后,介绍了欧拉方程及其解法。通过本文,读者可以全面掌握常微分方程的基本理论和解法,为进一步研究和应用奠定坚实的基础。

(摘要由 OpenAI GPT 4o 生成)

中间代码生成

中间代码生成

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

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

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

GeoGuessr

This is a collection of information that may be useful for playing GeoGuessr.

活动记录

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

语义分析

符合语法的程序不一定有有意义或是程序员期望的语义。

狭义上的语义分析是编译器前端的最后一部分,手段是对 AST 做一些分析和变换,目的是确定程序的某些静态属性,例如变量的声明与作用域、变量与表达式的类型、函数调用是否符合定义等等。最后,语义分析将把 AST 转换为某种中间表示(IR)。

一元函数的反常积分

本文详细介绍了一元函数的反常积分及其应用。主要内容包括:

  • 无穷区间上的反常积分(第一类反常积分):定义了反常积分的概念,阐述了其计算方法。

  • 无界函数的反常积分(第二类反常积分):讨论了在有瑕点的情况下,如何计算反常积分。

  • 柯西主值:引入了柯西主值的概念,解释了其在处理特殊反常积分时的重要性。

  • p积分的敛散性:分析了第一类和第二类 p 积分的收敛性判别方法,总结了 p 值对积分敛散性的影响。

  • 反常积分的敛散性判别法:介绍了比较判别法(包括极限形式)和绝对收敛准则,提供了判断反常积分是否收敛的实用工具。

  • Gamma 函数:定义了 Gamma 函数,讨论了其收敛性、递推公式以及解析延拓。

通过本文的学习,读者可以全面掌握一元函数反常积分的理论基础和计算技巧,为深入研究高等数学奠定坚实的基础。

(摘要由 OpenAI o1-preview 生成)

语法分析:自底向上方法

语法分析器从词法分析器获得 Token 序列,确认该序列是否可以由语言的文法生成,然后: - 对于语法错误的程序,报告错误信息 - 对于语法正确的程序,生成语法分析树,例如抽象语法树(Abstract Syntax Tree, AST)

自底向上指的是,从输入的串出发,尝试将其归约到文法开始符号。以分析树(Parse Tree)的角度来看,自底向上方法从所有叶节点尝试构建出分析树。

一元函数的定积分

本文详细介绍了一元函数的定积分及其应用。首先定义了定积分的概念,解释了黎曼和的引入及其在估计函数与横坐标轴围成的面积中的作用。接着,讨论了黎曼和与定积分的关系,介绍了定积分的定义和可积函数的判断准则。随后,文章探讨了定积分的计算方法,包括利用函数的奇偶性、分部积分法和区间复现法等技巧。最后,介绍了变限积分的性质及其导数计算方法,并讨论了积分不等式,如积分中值定理、最大-最小值不等式和柯西-施瓦兹不等式。通过本文,读者可以全面掌握一元函数定积分的基本理论和计算技巧。

(摘要由 OpenAI GPT 4o 生成)

语法分析:自顶向下方法

语法分析器从词法分析器获得 Token 序列,确认该序列是否可以由语言的文法生成,然后: - 对于语法错误的程序,报告错误信息 - 对于语法正确的程序,生成语法分析树,例如抽象语法树(Abstract Syntax Tree, AST)

自顶向下指的是,从文法的开始符号出发,尝试推导出输入的串。以分析树(Parse Tree)的角度来看,自顶向下方法从根节点出发,构建分析树。