srcmini - 专业IT技术分析博客srcmini

个性化阅读
专注于IT技术分析

最新文章 第2208页

编译器设计

基本块的优化

半瓶木阅读(1926)评论(0)赞(0)

本文概述 1.保留结构的转换 2.代数变换 优化过程可以应用于基本块。在优化时, 我们不需要更改由该块计算的表达式集。 基本块优化有两种类型。这些如下: 保留结构的转换 代数变换 1.保留结构的转换 基本块上的主要保留结构转换如下: 常见子...

流程图-srcmini
编译器设计

流程图

半瓶木阅读(1336)评论(0)赞(0)

流程图是有向图。它包含基本块集的控制信息流。 控制流程图用于描述如何在各个块之间解析程序控制。在循环优化中很有用。 矢量点积的流程图如下: 块B1是初始节点。块B2紧随B1之后, 因此从B2到B1有一条边。 从B1的最后一条语句跳转的目标是...

编译器设计

构建基本块

半瓶木阅读(1435)评论(0)赞(0)

基本块包含一个语句序列。控制流从语句的开始进入, 而在结束时离开而没有任何停止(可能是该块的最后一条指令除外)。 以下三个地址语句序列构成一个基本块: 基本块构建 算法:划分为基本块 输入:它包含三个地址语句的序列 输出:它包含一个基本块列...

编译器设计

运行时存储管理

半瓶木阅读(1224)评论(0)赞(0)

本文概述 静态分配 堆栈分配 在执行过程中所需的信息保存在称为激活记录的存储块中。激活记录包括存储过程本地名称的信息。 我们可以使用以下方式在目标代码中描述地址: 静态分配 堆栈分配 在静态分配中, 激活记录的位置在编译时固定在内存中。 在...

编译器设计

目标机器

半瓶木阅读(1032)评论(0)赞(0)

目标计算机是一种可字节寻址的计算机。一个字有4个字节。 目标机器具有n个通用寄存器R0, R1, …, Rn-1。它还具有以下形式的两个地址的指令: 其中, op用作操作码, 源和目标用作数据字段。 它具有以下操作码:ADD(将...

编译器设计

编译器设计问题

半瓶木阅读(947)评论(0)赞(0)

本文概述 1.输入到代码生成器 2.目标程序 3.内存管理 4.指令选择 5.寄存器分配 6.评估顺序 在代码生成阶段, 可能会出现各种问题: 输入到代码生成器 目标程序 内存管理 指令选择 寄存器分配 评估顺序 1.输入到代码生成器 代码...

编译器设计

代码生成器

半瓶木阅读(1032)评论(0)赞(0)

本文概述 注册和地址描述符 代码生成算法 代码生成器用于生成三地址语句的目标代码。它使用寄存器存储三个地址语句的操作数。 例: 考虑三个地址语句x:= y + z。它可以具有以下代码序列: 注册和地址描述符 寄存器描述符包含每个寄存器中当前...

编译器设计

语义错误

半瓶木阅读(3681)评论(0)赞(0)

在语义分析阶段, 将出现此类错误。这些类型的错误是在编译时检测到的。 大多数编译时错误是范围和声明错误。例如:未声明的标识符或多个声明的标识符。类型不匹配是另一个编译时错误。 使用错误的变量或使用错误的运算符或以错误的顺序执行操作可能会引起...

编译器设计

语法错误

半瓶木阅读(1195)评论(0)赞(0)

在语法分析阶段, 将出现此类错误。在执行程序期间发现语法错误。 一些语法错误可能是: 结构错误 缺少操作符 括号不平衡 当无效的计算输入计算器时, 语法错误也可能发生。这可能是由于在一个数字中输入几个小数点, 或者在不关闭括号的情况下打开了...

编译器设计

词法错误

半瓶木阅读(1624)评论(0)赞(0)

在词法分析阶段, 可以检测到这种类型的错误。 词法错误是与任何标记的模式都不匹配的字符序列。在执行程序期间发现词法阶段错误。 词法相位误差可以是 拼写错误。 超出标识符或数字常量的长度。 出现非法字符。 删除应该出现的字符。 用不正确的字符...