编译原理--基本块的划分

news2024/11/17 11:39:32

基本块的划分原则有4条

  1. 初始语句作为第一个基本块的入口
  2. 遇到标号类语句,结束当前基本块,标号作为新基本块的入口(标号不在当前基本块中,而是划到下一个基本块)
  3. 遇到转移类语句时,结束当前当前基本块,转移语句作为当前基本块的结尾。
  4. 当给引用类型变量赋值时,结束基本块,作为出口

关于if语句和while语句基本块划分的说明,对于if语句,其形式为:

判断条件->t
(THEN,t,_,_)
S1
(ELSE,_,_,_)
S2
(ENDIF,_,_,_)

翻译成目标代码的时候,THEN为JMPF指令,ELSE为JMP指令,ENDIF仅作为标号出现,则基本块应这样划分:

判断条件->t
(THEN,t,_,_)
*****************
S1
(ELSE,_,_,_)
*****************
S2
*****************
(ENDIF,_,_,_)

while语句的基本块划分说明:
while语句的基本形式为:

(WHILE,_,_,_)
判断条件——>t
(DO,t,_,_)
S1
(ENDWHILE,_,_,_)

再翻译成目标代码时,WHILE为标号,DO为JMPF指令,EHDWHILE为JMP指令,所以其基本块应该这样划分:

*****************
(WHILE,_,_,_)
判断条件——>t
(DO,t,_,_)
*****************
S1
(ENDWHILE,_,_,_)
*****************

一个练习,引自吉林大学PPT
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30214.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java反序列化之CommonsCollections(CC1)分析篇

文章目录前言一、过程分析 1.入口点---危险方法InvokerTransformer.transform() 2.触发危险函数TransformedMap.checkSetValue() 3.AnnotationInvocationHandler类 4.ChainedTransformer类 5.ChainedTransformer类前言 本文包括:Java反序列化之CommonsCol…

3DMAX一键生成螺母和螺栓插件使用教程

插件介绍 3DMAX一键生成螺母和螺栓插件,用于创建精缰化的螺母和螺栓模型。这些模型是逼真的,只需单击一下即可生成。有许多参数可以定制模型的外观或尺寸。 主要功能 单击创建螺母、螺栓和垫圈在螺栓顶部创建文本标记(商标)直径…

关于不同长度PEG的丙炔:Pyrene-PEG2/PEG3/PEG4/PEG5-propargyl,1817735-33-3

Pyrene-PEG2-Propargyl中芘用于蛋白质构象和相互作用研究中的荧光探针,降冰片烯很容易与叠氮化物和四嗪反应,可用于用荧光团和功能分子标记细胞,亲水性 PEG 间隔臂可以增加水溶性。包括PEG2、PEG3、PEG4、PEG5等不同长度的PEG。 1、Pyrene-PE…

大数据:Shell的操作

文章目录HDFS常用命令一、创建目录1、创建单层目录2、创建多层目录查看目录三、上传本地文件到HDFS四、查看文件内容五、下载HDFS文件到本地六、删除HDFS文件七、删除HDFS目录HDFS常用命令 启动Hadoop集群命令:start-all.sh 一、创建目录 1、创建单层目录 命令…

Spring Boot Auto-Configuration

Spring 自定义Auto-Configuration Spring Boot 可以根据classpath中依赖关系自动装配应用程序。通过自动装配机制,可以使开发更快、更简单。今天,学习下如何在Spring Boot 中创建自定义 auto-configuration。 代码运行环境 JDK17MYSQL8源码地址 Mave…

[附源码]Python计算机毕业设计大学生心理健康管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

VSCODE编译阿里云HaaS程序时遇到Win32file找不到错误怎么办?

摘要:本文介绍DLL load failed while importing win32file:找不到指定的程序,这个错误的解决方法。使用vscode拉取阿里云HaaS物联网开发案例代码时,可能会遇到编译出错的情况,可能会遇到一些意外的问题,并非…

通过Native Memory Tracking查JVM的线程内存使用(线上JVM排障之九)

很多时候会面对线上内存使用很多,特别是本地内存怎么用的说不太清,就是每一块内存总和和总的Java线程占用内存不匹配。 很多时候如果dump出来内存也没有太大的作用,因为本地内存是看不到。本地内存有很多是线程占用的空间。 以下图为例,这是一个线上的服务的JVM各块内存使…

YOLOV5在deepstream6.1.1上应用

目录 0.前言 1.Yolov5模型 1.1模型生成 1.2模型转换 1.2.1 yolov5模型转换为onnx 1.2.2 onnx模型转换为engine 2.deepstream介绍 2.1简介 2.2安装 2.2.1 dGpu 2.2.2 Jetson 2.3使用方法 3.Yolov5模型在deepstream6.1.1上应用 3.1Yolov5输出与deepstream对接 3.1…

[附源码]java毕业设计学生信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

论文阅读:Fast Color Segementation

Fast Color Segementation 发表于CVPR 2020,主要是对之前的一篇图像软分割的论文(参见:论文回顾:Unmixing-Based Soft Color Segmentation for Image Manipulation,Aksoy 2017)进行改进。 一、论文简介 […

【Mac】Mac与PlayCover、Mac关闭sip

文章目录Mac笔记本使用PlayCover游玩Ipad游戏1.1 Mac 安装 PlayCover1.2 Mac 安装 原神/明日方舟1.3 注意事项Mac笔记本关闭sip2.1 查看sip状态2.2 关闭sip为什么要关闭SIP,关闭SIP的利与弊,请看:3.1 什么时候要关闭sip3.2 sip是什么3.3 关闭…

[附源码]Python计算机毕业设计大学生项目众筹系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

webpack详解

webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块&…

Django中的CSRF使用及ajax请求接口时问题总结

前言说明 在Django中提交数据到后端服务的时候,为了安全,要使用CSRF(跨站请求伪造)。跨站请求伪造的问题在于,服务器信任来自客户端的数据。 常规的做法是在template模板HTML文件中的form表单 中添加 {% csrf_token …

葡萄糖-聚乙二醇-巯基Glucose-PEG-Alkyne|葡萄糖-聚乙二醇-生物素Glucose-PEG-Biotin

葡萄糖-聚乙二醇-巯基Glucose-PEG-Alkyne 巯基,又称氢硫基或硫醇基,是由一个硫原子和一个氢原子相连组成的负一价官能团,化学式为-SH。巯基端连接不同的基团,有机物所属的类别不同,如硫醇(R-SH&#xff09…

固定VMware中Linux系统的ip地址

我们的虚拟机中的Linux的ip地址默认是随机的,那就导致了如果我们要配置例如finshell这类的远程连接,就需要常常修改ip地址,非常的麻烦啊,那有没有什么办法可以固定这个IP呢。 方法肯定是有的 首先我们打开VMware 点这个 之后修改…

LeGO-LOAM

LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain 在可变地形上的轻量级的利用地面点优化的Iidar 里程计和 建图 作者:Tixiao Shan and Brendan Englot Abstract— We propose a lightweight and ground-optimized …

Bi-CLKT: Bi-Graph Contrastive Learning based Knowledge Tracing

图对比学习 文章目录摘要1 引言2 相关工作2.2 自监督学习2.3 图上的对比学习摘要 知识追踪(KT)的目标是根据学生对相关练习的历史学习来估计他们对一个概念的掌握程度。知识追踪的好处是可以更好地组织和调整学生的学习计划,并在必要时进行干预。随着深度学习的兴起…

回顾10年发展,2022亚马逊云科技re:Invent全球大会即将来袭

每年的亚马逊云科技re:Invent全球大会,都是全球云计算领域每年创新发布的关键节点,亚马逊云科技的这些技术发布,无一例外地成为了云计算领域技术发展的风向标,而今年的re:Invent全球大会即将启幕! 2012年,亚…