Hello World

O ever youthful, O ever weeping

编译原理07

ch9.2-12 期末周完全按照重点整理的笔记,比较草率 符号执行 符号执行是一种经典的路径敏感分析技术,它通过枚举并分析程序的每一条路径来实现程序分析。 符号执行作为一种重要的形式化方法和软件分析技术,采用抽象符号代替程序变量,程序计算的输出被表示为输入符号值的函数,根据程序的语义,遍历程序的执行空间。其在软件测试和程序验证中发挥着重要作用,并可以应用于程序漏洞和脆弱性的检测中。 𝝈......

编译原理06

根据中间表示(IR)生成代码 代码生成器之前可能有一个优化组件 代码生成器的三个任务 指令选择: 选择适当的指令实现IR语句 寄存器分配和指派: 把哪个值放在哪个寄存器中 指令排序: 按照什么顺序安排指令执行 ch8-8.2 目标机模型 常见指令: 指令 解释 LD dst, addr 把位置 addr 上的值加载到位置 dst LD r1, r2 寄存器到寄存......

编译原理05

ch6.2 静态单赋值 静态单赋值(SSA)是一种中间代码表示形式,在该形式下,每个变量在程序的每个控制流路径上都仅被赋值一次。SSA 形式通过在适当的地方插入 φ 函数 来处理控制流合流点,使得代码既具有数据流分析的简洁性,又能够有效优化。 如果某个变量需要被重新赋值,会创建一个新的变量名称,例如 x1, x2, x3。 由于控制流可能发生分支和合流,因此在合流点需要一个 φ 函数来选择正......

编译原理04

ch6.1 编译的主要阶段包括: 词法分析(Lexical Analysis) 语法分析(Syntax Analysis) 中间代码生成(Intermediate Representation Generation) 目标代码生成(Target Code Generation) 中间表示(IR)是连接语法分析与目标代码生成的桥梁,主要作用是优化和分析。 三地址码 Three-Addres......

编译原理03

ch4.2 自顶向下分析 Top-Down Parsing 自顶向下解析可以看作是以前序方式构建解析树的问题,即采用最左推导方式,总是选择每个句型的最左非终结符进行替换。 左递归是指一个语法规则直接或间接地在最左边调用自己。左递归可能导致无限循环,例如 : 1234567891011bool A() { temp = cursor; cursor = temp; if (A......

南北散记-无锡篇

原文写于24年2月8日,此处为存档。😃 旧文新发~ 之所以迟迟没有记录这趟旅程,一是因为期末备考时间紧迫,二是因为缺少灵感提不起劲头。但今日心有所感,觉得到动笔的时机了。索性就在农历岁末写下这篇游记,寓以除旧迎新之意。 无锡之旅,由好友常阳发起。提出计划的那天下午正好有CPL的期末考,我发挥得一塌糊涂,心情抑郁,怨气上涌未及细思便答应同行,并把一应规划全交予他。我们的主要目的是散心,且......

编译原理02

ch4.1 CFL 上下文无关语言(CFL): CFL = PDA = NFA + Stack () = NPDA NPDA/PDA NPDA/PDA(非确定性/确定性下推自动机) 由七元组定义: :有限状态集合 :有限输入字母表 :有限栈字母表 :状态转移函数,形式为 (即:从当前状态、输入符号(或空字符𝜖)及栈顶符号,转换到一组可能的新状态,并修改栈内容) :初始......

Web开发08

之后的笔记主要记载完成 Blue-whale商城 大作业时遇到的问题和知识点。 异步处理 在 JavaScript 中,我们经常需要处理异步操作,比如发送请求、读取文件等。传统上,使用回调函数或者 Promise 来处理异步操作,但这些方法有时会让代码变得复杂且难以维护。async 和 await 提供了一种更简洁的方式来处理异步操作,让代码更加清晰易懂。 async 和 await asy......
Web

Ubuntu下创建桌面快捷方式并添加到侧边栏

记录博主在Ubuntu安装IntelliJ IDEA Community的过程。 创建桌面快捷方式 在官网下载好压缩包后返回 home 目录,在目录下创建IDEA文件夹用于解压缩。注意下面命令的路径要根据情况换成自己的。 12sudo mkdir IDEAsudo tar -zxvf ~/Downloads/ideaIC-2024.3.4.tar.gz -C IDEA/ 之后回到 Deskt......

编译原理01

ch3-4 数学基础 字母表和字符串 语言(language) 是一个 字符串(string) 的集合,例如:{ cat, dog, … },字符串是由 字母表(alphabet) 中的字母组成的序列。一个语言是字母表中所有字符串的子集。字母表示例:𝚺 = { a, b, c, d, …, z } 字符串示例:cat, dog, … 字符串操作 连接:例如,𝑤1 = 𝑎𝑎𝑏𝑏,......