中间代码生成——表达式与控制流②
回填技术
回填技术
本文中,我们主要研究表达式以及各种语句的中间代码生成。
本文将概述类型检查的两个大类:类型综合和类型推导。
中间代码生成是编译器前端部分的最后内容,负责生成可以为链接器所用的中间表示。 这种中间表示比源语言更加低级且接近计算机底层,但是又不像汇编语言那样可以直接在硬件上执行。 这种中间表示通常以抽象语法树或三地址代码的形式出现,我们在本部分内容中将详细介绍这两者及其变种。 除此之外,中间代码生成时通常还会进行一些静态检...
语法制导的翻译方案
在这一部分,我们将主要介绍两种语法制导翻译的方法:语法制导定义和翻译方案。
语法分析方法可以分成三个大类:
更强大的LR语法分析器
LR语法分析器简述
本文将继续介绍用于语法分析的方法——自底向上法。
总述
本文将讲述语法分析的基础内容,包括引论和各种定义。 在之后的文章中,我们将详细讲述各种语法分析的技巧。
有穷自动机的时间复杂度
本文中我们研究如何使用有限状态自动机进行词法分析。 有限状态机(Finite State Machine, FSM)、有限状态自动机(Finite State Automaton,FSA)和有限(有穷)自动机(Finite Automaton)的所指基本相同1,本文不加以区分。 准...
基本定义
本文将介绍关于文法的基础部分,有关词法和语法分析的大部分内容将在后续文章中介绍。
本文介绍利用 SSH 远端端口转发进行内网穿透的相关步骤。
今日决定将手上闲置的树莓派用来搭建一个透明代理。 在此之前,需要把它设置成一个WiFi热点,因此有了这篇文章。
连接层安全性:安全套接字层
报文完整性和数字签名
本章中我们将着重考察网络上运行的各式各样的程序如何保护自己的安全。 和任何成熟的密码学文章一样,我们使用Alice和Bob来表示两个希望进行安全通信的个体,用Trudy(来自Intruder,即入侵者)来表示试图迫害他们的人。
交换局域网
链路层概述
基于AS的路由选择:OSPF与BGP
网络层概述
TCP连接管理
传输控制协议
传输层协议简述
应用层协议原理
网络边缘
本文介绍利用 SSH 远端端口转发进行内网穿透的相关步骤。
本文主要介绍 Windows 上使用 GCC 编译器的 state-of-the-art 方案,即 MSYS2 方案。
今日决定将手上闲置的树莓派用来搭建一个透明代理。 在此之前,需要把它设置成一个WiFi热点,因此有了这篇文章。
最近查看一份MINGW生成的汇编代码的时候发现其中的函数参数所在的寄存器和CSAPP上所描述的有所不同。 查阅资料之后发现,现今流行的x86_64指令集上其实有两套不同的二进制接口,进而有两套传参的顺序。 两套系统分别是 Microsoft ABI 和 System V ABI,前者用在 Windows 系统上,...
近日需要在 Ubuntu 下运行 Gazebo 模拟,但是主力机上装的是 Windows 系统,考虑到各种因素,最终选择了WSL2作为虚拟机平台。 在 WSL2 Ubuntu 上安装ROS、Gazebo和PX4都非常简单,运行上也没有什么大问题,但是性能上比较捉襟见肘。 具体来说,虽然 Gazebo 的平均帧率能...
以下测试环境为MSYS2 MINGW-W64 GCC 11.2.0
TL;DR: 下载对应版本的Intel TBB库,并在链接时加上对应的选项-ltbb即可。
火狐浏览器是著名的历史悠久的开源浏览器,因此我在众多的安卓端浏览器中选择了它。然而,国内谋智的特供版使用起来又有诸多不便。若是选择国际版,则又丧失了方便同步这一大特点。因此,如果可以在选择国际版的同时将同步服务器修改至国内,就能获得两方面的便利了。
本文是二零一八年发表的一篇文章的备份。
本文将聚焦于大规模使用线性代数来研究线性系统的现代控制理论。
本章中我们将研究一些常见的控制器,最后以PID控制器作为控制理论的结尾。
本章中我们将介绍由闭环系统的开环传递函数确定系统的阻尼等的方法。
本文中我们研究使用奈奎斯特判据来判定闭环系统的稳定性。
此前,我们已经知道线性时不变系统的性能可由几个物理量描述。 现在,我们希望通过某些方法确定系统的具体性能。
高阶系统的传递函数
我们来考虑几个典型系统。
Laplace变换的定义
本章中我们主要介绍统计学中的各种假设检验。
前置知识
本文将介绍几个常见的概率分布
本文中我们将研究数学期望的物理意义,以及将数学期望与其物理意义联系起来的定理:大数定律。
本章中我们将重新研究级数,即至多可数个实数或复数组成的序列之和,的性质,然后研究更一般的概率空间,即离散概率空间。
本章中我们将继续进行概率论的学习,但是不再研究有限的情况,而是向前一步,考虑离散(可数)的情况。
本文继续研究有限概率空间,重点关注其中实值随机变量的特点。
本章中,我们继续以有限概率空间为基础进行概率论的研究。
我们首先介绍概率论中最简单的一个模型:实验的结果集合有限的模型。
本文中我们将研究光的衍射现象。
本章中我们将研究多束光的干涉,这种干涉常见于通过衍射光栅的光中。
在上一章中我们已经研究了在空间上具有一定尺寸的单色光源与点光源干涉的不同。 本章中我们将研究不同波长的光的干涉,即时间相干性。
前文中我们已经解决了有限远和无限远处点光源的干涉问题,接下来我们来考虑拓展光源,即非点光源,在空间中的干涉。 拓展光源产生的干涉图样取决于光源以及分光器,对这些内容的研究称为空间相干性。
本文中我们将研究光的干涉现象。
基于光线的几何光学不能解释光的干涉与衍射,因此我们必须引入光的波动模型。
光学仪器指能使物成像的多个光学系统的组合。 本章中我们将研究以薄透镜组成的光学仪器。
本文中我们研究高斯光学中的薄透镜,即在满足高斯条件下进行研究。
本文中,我们在几何光学的范畴下讨论如何形成可见性良好的像。
本文主要介绍求解模态的瑞利-里兹法与有限元方法。
本文主要根据哈密顿原理研究简单结构的性质。
本文将提出求解梁的模型的两种方法。
本文中我们将解决梁的应力和形变的问题。
本文将以梁为例子介绍结构力学中常见的模型。
本文主要介绍从能量的角度求解固体力学的各种方法。
本文将主要介绍结构力学中的应变张量。
在之前的介绍中,我们引入了十五个未知数(位移的三个分量、应力的六个分量和应变的六个分量),但是只引入了九个方程(应变的定义和局部平衡方程)。 本文中我们将寻找剩余的六个方程——本构方程。
本文将主要介绍结构力学中的应力张量。
本章中我们将把之前研究的许多内容推广到复数域上。
本文将主要研究一种特殊的映射:对称映射。 这种映射虽然和对称同名,但是所指的变换非常不同。 我们将要看到,对称映射一定能化为对称矩阵,从而一定能够被对角化。
本章中,我们将研究有限维内积空间(即欧氏空间)的等距变换。
本章中我们以二次型和双线性型为基础研究准希尔伯特空间,即带有内积算子的线性空间。 这个空间有时也被称为内积空间。
本章中我们研究两种特殊的线性映射:双线性映射与二次型。
丹佛分解
我们之前已经研究了特征多项式和最小多项式的相似性,而我们又知道矩阵可对角化与其特征多项式和特征值有重大关系。 这些关系促使我们去寻找可对角化与最小多项式的关系。
我们已经知道,若一个矩阵满足一定条件,则其可以在某一组基底下被表示为一个对角矩阵。 具体而言,如果其特征子空间的直和恰好构成全空间,则有 \(A = P \times \Lambda \times P^{-1}, \Lambda = \mathrm{diag}(\lambda_1, \lambda_2, \dot...
本章中我们将重新研究级数,即至多可数个实数或复数组成的序列之和,的性质,然后研究更一般的概率空间,即离散概率空间。
本文介绍度量拓扑中的基本概念。
在研究傅里叶级数的均方收敛之前,我们为此前提到的$\mathcal{C}_{m}\mathbb{T}$空间附加一个内积运算,使其变成内积空间。
我们已经知道,傅里叶系数$\hat f : \mathbb{Z} \to \mathbb{C}$是有界的,其不能大于原函数的上确界。 实际上,我们有以下定理:
傅里叶级数是数学中一个重要的级数,其可以以三角函数逼近满足一定条件的周期函数。 对傅里叶级数的分析构成数学分析中的一个重要分支——调和分析。
接下来,我们研究把幂级数的研究限制在实数域上。
对任何函数列,我们都可以研究其收敛性: 我们定义对函数列$(f_n)$,如果存在一个函数$f$ \(\forall x \in X \quad \exists \varepsilon > 0 \quad \exists n \quad \forall p \quad p \ge n \implies | f...
此文中,我们定义复数域下的开圆盘$D$和闭圆盘$\overline{D}$: \(D(z_0,r) = \{ z \in \mathbb C | \left| z - z_0 \right| < r \}, \overline{D}(z_0, r) = \{ z \in \mathbb C | \left|...
本文将阐述纯净物的热力学属性及其之间的关系。
本章中我们将主要介绍热力学系统中熵的概念。
本章中我们将借助热机的效率理解热力学第二定律。
本章中我们将考虑控制体积,即开放系统,中的质量和能量。
封闭系统不发生质量交换,因此其能量变化只有两种形态:功与热量。 其中,功可以分为由于体积或压强发生变化而产生的体积功(也称边界功)和其他类型的功,体积功对热力学系统尤其重要,因为其与焓密切相关。
在本文中,我们将考察相变之中的纯净物系统。
我们先以一个力学系统为例研究平衡状态。根据机械能守恒,我们有: \(\newcommand{d}{\mathrm{d}} \newcommand\pat[2]{\left. #1 \right|_{#2}} E_c + E_p = E_m = \text{常数}\) 如果系统处于平衡状态,那么其势能一定处于极值点...
在热力学中,我们通常研究封闭系统和孤立系统,因为这些系统和外界环境的交互有限,便于研究。 但是现实中,几乎所有热机都是开放系统:内燃机需要不断输入燃料、涡轮只有在流体流动时才能做功。 因此,所有建立在封闭系统的热力学理论,必须能够推广到开放系统,才能指导实践活动。 本文简述一些简单的热力学理论在开放系统的推广。
一年以前,我们利用经典电子模型简单介绍并推导了介质中的电磁波。 本文将进一步利用半量子理论给出介质中电磁波的更多性质。
本文中,我们将借助电磁波在等离子体中的传播理解波的色散。
[\newcommand{d}{\mathrm{d}}]
在高中的学习中,我们已经知道:变化的磁场产生电场。 这一点可由麦克斯韦方程组验证: \(\begin{aligned} \nabla \cdot \vec E (M,t) & = \frac{\rho(M,t)}{\epsilon_0} \\ \nabla \cdot \vec B (M,t) &...
Firefox浏览器不能正确渲染部分公式的下划线/上划线。 如果出现此情况,可以调整缩放等级或改用SVG渲染模式。
在静电场中,我们发现电场$\vec{E}$的旋度为零。 这表明,静电场的积分与路径无关而只与起点和终点有关。 这样的场被称作保守场,其一定是由某个标量的梯度产生的。 我们把这个标量记作电势$V$,满足$ \nabla V = \vec E$。
本文研究求解薛定谔方程的两种近似方法——摄动理论和变分方法。
本文主要介绍量子力学中的类氢原子(Hydrogenic atoms),即任何只具有一个电子的原子或离子的模型。
本文关注量子力学中的动量矩。 我们知道量子力学中重要的物理量未哈密顿量,而其中通常具有动能和势能两个部分。 对于刚体而言,除了平动动能之外,还具有转动动能: \(E_{c,t} = \frac{p^2}{2m}, \quad E_{c,r} = \frac{L^2}{2J}\) 其中$L$即为动量矩。
本文研究量子力学下的一阶谐振子。
本文主要介绍量子力学中的各种形式化表述。
本文将以波动物理的观点对量子力学的基础做一些简单的介绍。
本章中,我们将主要研究湍流问题。
上一章中我们介绍了雷诺数,并且将N-S方程改写为雷诺数相关的形式。 这一章中,我们将进一步研究雷诺数对流体的影响。
雷诺数
黏性流体
表述运动
张量
本文将研究两种常见的常微分方程的数值解法:欧拉法和龙格-库塔法。
本文中我们将研究动力系统的稳定性。
极值
本文中我们将考虑如何把一元函数的导数拓展到更高维。
可分离变量方程
本文将以波动物理的观点对量子力学的基础做一些简单的介绍。
本文中,我们将借助电磁波在等离子体中的传播理解波的色散。
干涉现象
本章中我们以声波为楔子,研究波在更高维空间的传递。
波的概念
本文将阐述纯净物的热力学属性及其之间的关系。
本章中我们将主要介绍热力学系统中熵的概念。
本章中我们将借助热机的效率理解热力学第二定律。
本章中我们将考虑控制体积,即开放系统,中的质量和能量。
封闭系统不发生质量交换,因此其能量变化只有两种形态:功与热量。 其中,功可以分为由于体积或压强发生变化而产生的体积功(也称边界功)和其他类型的功,体积功对热力学系统尤其重要,因为其与焓密切相关。
本文主要研究统计物理中的最后一个系综——巨正则系综。
本文主要研究统计物理中的又一个系综——正则系综。
本文研究一种特殊的系综——微正则系综。
本文主要介绍统计物理的基本概念——即通过研究大规模微观粒子(称为“系综”,ensemble)的状态描述宏观系统的一门科学。
薛定谔函数的周期解 我们将在晶格产生的周期性势场中求解薛定谔函数,并得出方程的布洛赫函数(Bloch function)解。 利用波恩-奥本海默近似,我们研究的实际上仅是电子的薛定谔函数,而原子之间的互动由经典物理处理。 我们研究周期性势能的薛定谔方程,其哈密顿算符为 \(\hat H = \sum_{j=...
本文研究晶格的动力学,即晶格中原子的运动。 在之前的模型中,我们总是假设晶格中的原子是静止的;然而,这与 X 射线衍射给出的结果不相符——X 射线衍射的结果说明其中的原子总是在振动的。 在研究固体物理时,我们通常使用波恩-冯·卡门边界条件,此时要注意晶体中的两种平移周期性: \(\mathbf u(x_j, t...
本文主要研究晶体的结构问题。 晶体的空间结构 平移对称性 首先介绍晶胞的概念。 单胞(Unit cell)可分为两种:原胞(Primitive cell)和晶胞(Conventional cell)。 前者是单胞的最小单元,而后者是反应格点对称性的最小单元。 以晶体硅为例,其原胞是一个平行六面体,而晶胞是正...
固体物理是研究固体——特别是晶体——性质的学科。 本文将首先研究经典的金属模型,然后引入量子力学模型。
这篇文章中我们来研究刚体的动力学。 刚体(rigid body)是各种动力学中常见的模型,可以用来研究多种工程问题,其最基本的假设为:刚体上任意两点之间的距离(大小和方向)永远保持不变。 在研究刚体时,我们基本只用上这个假设。 通常来讲,我们还会假设刚体的质量是连续分布的,但这个假设对动力学的研究没有特别大的影响...
为了求解刚体的动力学问题,我们还需要研究刚体的运动学。 刚体的运动按求解难易程度可分为平面运动,定点运动和任意运动,我们将分别考虑这些问题。 在此之前,我们先来考虑更一般的情况:质点系的动力学。
动力学普遍方程
Finite Element Method (FEM, 有限元方法) 是一种将物体看作许多有体积的微小单元来进行仿真的方法。 比如将二维图形拆分成若干三角形,将三维体拆分成若干四面体。 这种方法能够很好的模拟弹性体的形变等特点,能够在数学上证明其仿真方法一定收敛到解析解,比MPM等使用粒子模拟的方法更加准确,但同...
Material Point Method (MPM 物质点法)是一种混合欧拉-拉格朗日视角物理仿真方法。
本文主要介绍从连续信号到离散信号的采样以及其和傅里叶变换之间的相互作用。
概论