编译原理学习笔记15——属性文法与语法制导翻译2

news2024/10/5 21:15:08

编译原理学习笔记15——属性文法与语法制导翻译2

  • 15.1 S-属性文法
  • 15.2 L-属性文法
  • 15.3 翻译模式
  • 15.4 递归下降翻译器的设计

15.1 S-属性文法

S-属性文法的自下而上计算
在这里插入图片描述

S-属性文法的自下而上计算

  • 在分析栈中增加附加域存放综合属性值
  • 假设产生式A→XYZ对应的语义规则为a:=f(X.x,Y.y,Z.z)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
S-属性文法的分析过程
在这里插入图片描述

15.2 L-属性文法

一遍扫描的处理方法

  • 在语法分析的同时计算属性值
    • 所采用的语法分析方法
    • 属性的计算次序 视频区域
  • S-属性文法适合一遍扫描的自下而上分析
  • L-属性文法适合一遍扫描的自上而下分析

L-属性文法和自顶向下翻译

  • 按照深度优先遍历语法树,计算所有属性值
  • 与LL(1) 自上而下分析方法结合
    • 深度优先建立语法树
    • 按照语义规则计算属性

L-属性文法
在这里插入图片描述
测试:L-属性文法
在这里插入图片描述

15.3 翻译模式

翻译模式
在这里插入图片描述

翻译模式示例
在这里插入图片描述

在这里插入图片描述

设计翻译模式的原则

  • 设计翻译模式时,必须保证当某个动作引用一 个属性时它必须是有定义的
  • L-属性文法本身就能确保每个动作不会引用尚 未计算出来的属性

建立翻译模式
在这里插入图片描述
在这里插入图片描述
数学格式语言EQN
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建立翻译模式
在这里插入图片描述
在这里插入图片描述
消除翻译模式中的左递归
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.4 递归下降翻译器的设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

OAK深度相机操作温度范围说明

编辑:OAK中国 首发:Luxonis 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 ▌前言 Hello,大家好,这里是OAK中国,我是助手君。…

基于SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算

查看原文>>>基于SMOKE多模式排放清单处理技术及EDGAR/MEIC清单制作与VOCs排放量核算 随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注…

String类——Java中常见的类(模拟登录案例练习)

目录 String类的概述及构造方法(String类是Java中最常见的类) String的特点 String类的判断功能 模拟登录案例 ​ String类的获取功能 两个小练习 String类的转换功能和String类的其他功能 string类练习 String类的概述及构造方法(Str…

35/365 java 反射 Reflection Class类

1.动态语言 静态语言 动态语言: 运行时可以改变自身结构的语言eg: JavaScript, C#, PHP, Python 静态语言: 运行时结构不可变的语言eg: Java, C, CJava 不是动态语言,但通过反射机制获得了类似动态语言的特性,具有了一定的动态…

软件测试前沿技术:从中国新车评估规程谈谈自动化驾驶测试

背景C-NCAP全称China NewCarAssessmentProgramme,中国新车评估规程,是由E-NCAP发展而来,两者测试项目多数一致。E-NCAP全称是European NewCarAssessmentProgramme,译为欧洲新车评估规程,成立于1997年,是一个…

基于MirrorMaker与火山引擎的Kafka数据同步

Kafka MirrorMaker是Kafka官网提供的跨数据中心流数据同步方案,其实现原理是通过从Source集群消费消息,然后将消息生产到Target集群从而完成数据迁移操作。用户只需要通过简单的consumer配置和producer配置,启动MirrorMaker,即可实…

NCP1654BD65R2G高性能软开关功率因数校正电路芯片

NCP1654BD65R2G是一款用于连续导通模式 (CCM) 功率因数校正 (PFC) 步升预转换器的控制器。它在固定频率模式下控制电源开关导通时间 (PWM),取决于瞬时线圈电流。采用SOIC-8封装,最大程度减少了外部部件数量,并极大简化了 PFC 实施。它还集成了…

灰色预测模型一文详解+Python实例代码

目录 前言 一、模型理论 特点 二、模型场景 1.预测种类 2.适用条件 三、建模流程 1.级比校验 2.数据累加和微分方程构造 3.系数求解 4.残差检验与级比偏差检验 四、Python实例实现 总结 前言 博主参与过大大小小十次数学建模比赛,也获得了不少建模奖项…

19 | 三方协议怎么签?

前言 前言:简介三方协议签约的相关内容。 文章目录前言一. 什么是就业协议书二. 签约流程1. 网签流程(线上签约)三. 参考链接一. 什么是就业协议书 就业协议书俗称三方协议,是《全国普通高等学校毕业生就业协议书》的简称。 它是…

b站黑马Vue2后台管理项目笔记——(2)主页布局(整体,Header,左侧菜单布局)

说明: 此项目中使用的是本地SQL数据库,Vue2。 其他功能请见本人后续的其他相关文章。 本文内容实现的最终效果如下图: e.g.点击二级菜单用户列表,就会跳转到用户列表对应的index的地址(用户列表的indexpath是users&…

2023年山东最新道路运输安全员考试真题题库及答案

百分百题库提供道路运输安全员考试试题、道路运输安全员考试预测题、道路运输安全员考试真题、道路运输安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 题干:客运驾驶员从业行为定期考核结果应与企业安全生产奖惩制度…

Gradle 编译Server returned HTTP response code: 401 for URL

Gradle编译项目,Error:Server returned HTTP response code: 401 for URL: http://xxxxxxxxxx 解决方案 打开gradle-wrapper.properties文件 方法一:使用http协议:distributionUrlhttp://repo.xiaoman.cc/repository/gradle/gradle-6.8.2-b…

MCM箱模型实践技术应用与O3形成途径、生成潜势、敏感性分析

查看原文>>>https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247578057&idx4&sn9253a074df9937db3d258df14dd563ed&chksm9be2aed9ac9527cfdf270275d499452afded7a165944fdbbe345a4cb53fcd53548969d39c0c2&token850102049&langzh_CN#rd目…

剑指 Offer II 003 前 n 个数字二进制中 1 的个数

给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。 示例 1: 输入: n 2 输出: [0,1,1] 解释: 0 --> 0 1 --> 1 2 --> 10 示例 2: 输入: n 5 输出: [0,1,1,2,1,2] 解释: 0 --> 0 1 --> 1 2 …

Appium基础 — 获取toast信息

1、toast介绍Android中的toast是一种简易的消息提示框,toast提示框不能被用户点击,会根据所设置的显示时间自动消失。toas要appium1.6.3以上版本才支持,appium1.4的版本就别浪费时间了。再来看下toast长什么样,如下图:…

快速幂的几种实现方式

目录快速幂算法快速幂原理代码实现常规计算次幂的方法快速幂(一般)递归求快速幂位运算求快速幂快速幂算法 快速幂 快速幂还是很常用的,例如codeforce上的这道题目: 快速幂就是快速计算底数的n次幂。其时间复杂度为O(log₂N)O(log_₂N)O(log₂​N),与朴素的O(N)相比效率有了极…

SSM配置(备忘)

SSMSSM需要配置的文件配置applicationContext.xml配置database.properties配置mappers/ExamDao.xml在java目录下创建controller、dao、pojo、service目录控制类接口类(dao)实体类(pojo)服务层serviceservice接口类服务层实现类SSM SSM包含框架 spring s…

Linux(centos7)基本操作---用户权限

用户权限基本权限(UGO)设置权限设置属主,属组基本权限(ACL)特殊权限基本权限(UGO) 设置权限 权限的对象分为个人(u),组(g)&#xff…

无货源模式,跨境电商时代的风向标

众所周知,说到电商,我们首先就会想到淘宝、天猫、京东等平台,这些平台近年来发展迅猛,红海一片,可以说已经趋向于饱和状态了。由于国内电商平台严重的同质化竞争,越来越多的卖家开始转战跨境电商。为什么加…

Canary保护机制及绕过

Canary基本介绍 在基本的栈溢出中,我们可以通过没有限制输入长度或限制不严格的函数等向栈中写入我们构造的数据,可写入的数据包括但不限于: 一段可执行的代码(关闭NX防护的前提下) 一段特意构造的返回地址等 … …