编译原理学习笔记19——语义分析和中间代码生成4

news2024/11/19 20:34:58

编译原理学习笔记19——语义分析和中间代码生成4

  • 19.1 常用的控制语句
  • 19.2 控制语句的属性文法
  • 19.3 控制语句的属性计算
  • 19.4 一遍扫描翻译控制语句
  • 19.5 一遍扫描翻译控制语句示例

19.1 常用的控制语句

常用的控制语句

  • S → if E then S1
  • S → if E then S1 else S2
  • S → while E do S1
    其中E为布尔表达式

19.2 控制语句的属性文法

if-then语句的语义
在这里插入图片描述
if-then语句的属性文法
在这里插入图片描述
if-then-else语句的语义
在这里插入图片描述
if-then-else语句的属性文法
在这里插入图片描述
while-do语句的语义
在这里插入图片描述
while-do语句的属性文法
在这里插入图片描述

19.3 控制语句的属性计算

根据属性文法翻译控制语句
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
根据属性文法翻译控制语句
在这里插入图片描述

19.4 一遍扫描翻译控制语句

控制语句的文法
在这里插入图片描述
if 语句的文法
在这里插入图片描述
if 语句的文法
在这里插入图片描述
if 语句的文法
在这里插入图片描述
if 语句的翻译模式
在这里插入图片描述
while语句的文法
在这里插入图片描述
while-do语句的翻译模式
在这里插入图片描述
复合语句的文法
在这里插入图片描述
复合语句的翻译模式
在这里插入图片描述
其它几个语句的翻译
在这里插入图片描述

19.5 一遍扫描翻译控制语句示例

示例:翻译语句
在这里插入图片描述

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

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

相关文章

机器学习笔记之生成对抗网络(二)全局最优解的求解逻辑

机器学习笔记之生成对抗网络——全局最优解的求解逻辑引言回顾:生成对抗网络的判别过程关于生成对抗网络的一些特性最优解的求解过程引言 上一节介绍了生成对抗网络,并介绍了其判别过程,本节将介绍关于模型参数的求解逻辑。 回顾&#xff1…

建立建筑领域科学的碳排放核算方法(江亿)

中国工程院院士、清华大学江亿教授受邀参加2022年12月28日“2022中国建筑节能协会年会暨第五届全国建筑节能与绿色建筑技术创新大会”并作了题为“建立建筑领域科学的碳排放核算方法”的报告。 实现能源转型,由碳基能源转为零碳能源,是中央确定的未来战…

九龙证券|锂离子电池在安全性能上应当满足哪些条件?

锂离子电池具有分量轻、容量大、无回忆效应等优势,因而得到了普遍运用——今朝的许多数码设备都采用了锂离子电池作电源,虽然其价格相对来说比较昂贵。锂离子电池的能量密度很高,它的容量是同分量的镍氢电池的1.5~2倍,而且具有很低…

Redis集群搭建

Redis集群搭建1.单机安装Redis2.Redis主从集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.开启主从关系2.5.测试3.搭建哨兵集群3.1.集群结构3.2.准备实例和配置3.3.启动3.4.测试4.搭建分片集群4.1.集群结构4.2.准备实例和配置4.3.启动4.4.创建集群4.5.测试基于CentOS7下的Redi…

数据库session分析表

目录 Active Session 活动会话 gv$active_session_history 每秒采集一次 dba_hist_active_sess_history 每10秒采集一次 背景 说明: 常用sql 直接使用V$ACTIVE_SESSION_HISTORY的sql 与其他表和视图共同查询…

神经网络数学原理与编码逻辑(一) 无隐层模型

概述 几年前就想写这篇文章,但是要上班应付各种工作内容,在解析神经网络的理论问题上也是断断续续,加上个人能力有限,很多问题并没有研究的很明白,以及神经网络本身高维问题的复杂性,导致这个问题的理解也…

OAuth2代码流程演示

目录 一,创建项目 二,项目结构 一,创建项目 新建项目时,如果换了工作区间我们一定要记得改maven地址,不然下载插件时不仅占用C盘内存,还会下载的很慢。 导入项目 导入新项目后就会下载新的插件&#xf…

消息队列简介

提高系统性能首先考虑的是数据库的优化,之前一篇文章《数据库的使用你可能忽略了这些》中有提到过开发中,针对数据库需要注意的事项。但是数据库因为历史原因,横向扩展是一件非常复杂的工程,所有我们一般会尽量把流量都挡在数据库…

Unity可用 运行时语音合成(文本转语音)插件 RT-Voice PRO

Unity语音合成文本转语音插件 RT-Voice PRO前言一、导入RT-Voice PRO插件二、使用步骤1.先看自带例子(01-Speech)2.自行配置总结前言 提示:这个插件在Unity Asset Store 卖 78美刀,确实买不起啊。 😂 AssetStore下载链接 文章最后…

复试数据结构篇[第5章-第6章]

文章目录第五章 数组和广义表1-数组定义2-数组的顺序表示3-矩阵的压缩存储(1)对称矩阵和三角矩阵(2)对角矩阵(3)稀疏矩阵(3)十字链表4-广义表的定义串、数组、广义表小结第六章 树与…

JVM的类加载

什么是类加载?java程序运行前,要经过编译即.java>.class文件。运行的时候java进程(JVM)就会读取对应的.class文件,并解析内容,在内存中构造出类对象并进行初始化(类对象就是描述这个类有哪些属性,哪些方…

基于卡尔曼滤波器的PID控制-3

基于卡尔曼滤波器的PID控制系统结构如图1所示。图1 基于卡尔曼滤波器的PID控制被控对象为二阶传递函数:离散化结果与“基于卡尔曼滤波器的PID控制-1”的仿真实例相同。采样时间为1ms。控制干扰信号w(k)和测量噪声信号v(k)幅值均为0.002的白噪声信号,输入…

Python中最全的窗口操作,如窗口最大化、最小化、窗口置顶、获取缩放比例等

Python窗口操作 前言 本文记录在Python中操作Windows应用窗口的操作。 这里的操作都是自己摸索借助强大的搜索引擎整理出来的,我真棒!!! 知识点📖📖 名称解释名称ctypes****ctypesPython的外部函数库。它…

高阶导数——“高等数学”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是高阶导数,在这之前,我们学习了导数的概念和函数的求导法则,那么今天,就让我们一起进入高阶导数的世界吧 一、高阶导数的定义 二、高阶导数的计算 1.直接法 2.间…

儿童护眼台灯如何选择?2023年儿童护眼台灯推荐

随着科技不断发展,生活方式的改变,各类的电子产品的使用,加上不注意保护视力、过度用眼等,我国儿童青少年的近视率出现上升趋势,为了保护孩子们的健康,护眼台灯受到许多家庭的青睐,那么儿童的护…

[个人备忘]go包管理

版本 1.18创作目的: 之前想要在go的项目里引用另一个自己写的项目, 然后被折磨半天,乃至弃坑1,创建项目我们创建目录gogogo,下面有两个项目: 分别创建main.goutils/main.gopackage utils import "fmt" // 大写才能被外部访问 func Log(){fmt.Print("go mod is s…

Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据

Postman 实现备份数据 Postman恢复数据 postman 导出导入数据 postman 导入导出数据 一、需求描述 在使用postman调试接口时,若遇到内网的环境,无法通过账户同步数据; 在A电脑调试的接口数据,需要移动到B电脑上,如何实…

python第三方库的离线安装与自动安装脚本(以flask为例 Ubuntu18.04系统)

1.第三方库安装方式 1.1 pip 安装 以flask为例,使用指令 pip install flask即可安装 其他选项: install 安装库 uninstall 卸载库 list 列出已经安装的库 show 列出已安装的库的详细信息 search 通过PyPI搜索库 help 帮助命令1.2 源码安装 官网获取…

SpringBoot整合Shiro

简介Shiro是一个功能强大和易于使用的Java安全框架,为开发人员提供一个直观而全面的解决方案的认证,授权,加密,会话管理。Shiro 四个主要的功能:Authentication:身份认证/登录,验证用户是不是拥…

kubernetes -- 删除namespace的过程以及遇到的bug解决

通过阅读本篇文章你可以收获如下知识: 解决一个bug。理解k8s的controller中,删除namespace的源码,理解其中的删除过程。 问题 执行kubectl delete ns {ns-name}命令来删除ns-name的时候,发现状态一直停留在Terminating。 [roo…