· 编译原理

ch12-ir-expr-表达式翻译

ch12-ir-expr-表达式翻译 分工和合作 父节点为子节点准备跳转指令的目标标签 子节点通过继承属性确定跳转目标 P → S S → if (B) S1!image-20230516210447611 一部分是B的中间代码,应该由B生成 B需要有一个B.code综合属性来表示B节点所生成的对于复合表达式的中间代码 一部分是S1的中间代码 S1需要有一个S1.code ...

编译原理
阅读全文
· 编译原理

ch10-semantics-ag

ch10-semantics-ag 为什么需要引入新的文法 Regular Expression (词法分析):正则表达式 Context-Free Grammar (语法分析):正则表达式不够用,上下文无关文法 语义分析:类型检查,属性文法 (Attribute Grammar): 为上下文无关文法赋予语义 语义:类型检查、变量使用前是否定义等 ...

编译原理
阅读全文
· 编译原理

ch09-语义分析-符号表

ch09-语义分析-符号表 !image-20230419152824467 符号表 (Symbol Table) 符号表是用于保存各种信息的数据结构 !image-20230419152922914 第几行进行的声明和定义,在第几行被用到过 符号表实现的难点:与作用域相关 “领域特定语言” (DSL) 通常只有单作用域 (全局作用域) DSL: Domain-Specific...

编译原理
阅读全文
· 编译原理

ch08-parser-allstar

ch08-parser-allstar ANTLR 4 自动将类似 expr 的左递归规则重写成非左递归形式 ANTLR 4 提供优秀的错误报告功能和复杂的错误恢复机制 ANTLR 4 使用了一种名为 Adaptive LL(∗) 的新技术 ANTLR 4 几乎能处理任何文法 (二义性文法✓ 间接左递归✗) ANTLR 4 如何处理直接左递归与优先级的 写在前面就是优先级...

编译原理
阅读全文
· 编译原理

ch07- LL(1) 语法分析器

ch07 LL(1) 语法分析器 构建语法分析树: 自顶向下 vs. 自底向上 只考虑无二义性的文法 这意味着, 每个句子对应唯一的一棵语法分析树 自顶向下的、 递归下降的、 基于预测分析表的、 适用于LL(1) 文法的、 LL(1) 语法分析器 自顶向下构建语法分析树 根节点是文法的起始符号 S 每个中间节点表示对某个非终结符应用某个产生式进行推导 (Q : 选择哪个非终结符,...

编译原理
阅读全文
· 数据库

SQL-DCL操作

SQL-DCL操作 data control language 开发人员操作较少,主要是DBA(Database Administrator 数据库管理员)使用 DCL-管理用户 查询用户 mysql use mysql; select from user; 创建用户 mysql create user '用户名'@'主机名' identified by '密码'; ...

SQL
阅读全文
· 数据库

SQL-DDL数据库操作

SQL-DDL数据库操作 SQL datagrip连接用户名为root DDL-数据库查询 查询所有数据库 show databases; 查询当前操作的数据库 select database(); 创建 create database [if not exist] 数据库名 [default 字符集] [collate 排序规则]; utf8mb4 删除 ...

SQL
阅读全文
· 数据库

SQL-DML操作

SQL-DML操作 data manipulation language 数据操作语言 进行对表中数据记录增删改 添加数据 指定字段添加数据 mysql insert into 表名 {字段名1, 字段名2, ......} values {值1, 值2,......}; 全部字段添加数据 mysql insert into 表名 values {值1, 值2, ......}; 批量添加数据...

SQL
阅读全文