U8 语法制导翻译技术

文章目录

  • 一、总述
  • 二、翻译文法
    • 1、概念
  • 三、语法制导翻译
    • 1、概念
    • 2、带属性的翻译文法
      • 3)综合属性
      • 4)继承属性
      • 5)举例
    • 3、 L-属性翻译文法(L-ATG)
      • 1)概念
      • 2)求值规则
    • 4、简单赋值形式的L-ATG(SL-ATG)
      • 1)概念

一、总述

为代码生成做“需求分析”:符号表、运行时存储、中间表示(前面三章内容)。
在这里插入图片描述
方法:

  1. 翻译文法(TG)和语法制导翻译
  2. 属性翻译文法(ATG)
  3. 自顶向下的语法制导翻译
    翻译文法的自顶向下语法制导翻译。
    属性文法的自顶向下语法制导翻译。

二、翻译文法

1、概念

输入文法:未插入动作符号时的文法。由输入文法可以通过推导产生输入序列。

翻译文法:插入动作符号的文法。由翻译文法可以通过推导产生活动序列。

活动序列:由翻译文法推导出的符号串,由终结符和动作符号组成。

  1. 从活动序列中,抽去动作符号,则得输入序列 ( i + i ) ∗ i (i+i)*i (i+i)i
  2. 从活动序列中,抽去输入序列,则得动作序列,执行动作序列,则完成翻译任务:

定义:翻译文法是上下文无关文法,其终结符号集由输入符号和动作符号组成。由翻译文法所产生的终结符号串称为活动序列。

三、语法制导翻译

1、概念

语法制导翻译(Syntax Directed Translation):按翻译文法进行的翻译。给定一输入符号串,根据翻译文法获得翻译该符号串的动作序列,并执行该序列所规定的动作的过程。

2、带属性的翻译文法

在翻译文法的基础上,可以进一步定义属性文法,翻译文法中的符号,包括终结符、非终结符和动作符号均可带有属性,这样能更好的描述和实现编译过程。
属性可以分为两种:
在这里插入图片描述

3)综合属性

↑ C ↑C C是综合属性符号, ↑ ↑ 为综合属性标记, c c c为属性变量或者属性值
在这里插入图片描述
求值规则:综合属性是自右向左,自底向上求值
在这里插入图片描述
p,q,r为属性变量名。
属性变量名局部于每个产生式,也可使用不同的名字。

4)继承属性

在这里插入图片描述

5)举例

在这里插入图片描述

3、 L-属性翻译文法(L-ATG)

1)概念

这是属性翻译文法中较简单的一种。其输入文法要求是LL(1)文法,可用自顶向下分析构造分析器。在分析过程中可进行属性求值。

2)求值规则

  1. 继承属性
    产生式左部非终结符号的继承属性值,取前面产生式右部该符号已有的继承属性值。
    产生式右部符号的继承属性值,用该产生式左部符号的继承属性或出现在该符号左部的符号的属性值进行计算。
  2. 综合属性
    产生式右部非终结符号的综合属性值,取其下部产生式左部同名非终结符号的综合属性值。
    产生式左部非终结符号的综合属性值,用该产生式左部符号的继承属性或某个右部符号的属性进行计算。
    动作符号的综合属性用该符号的继承属性或某个右部符号的属性进行计算。

4、简单赋值形式的L-ATG(SL-ATG)

1)概念

一个L-ATG被定义为简单赋值形式的(SL-ATG),当且仅当满足如下条件:

  1. 产生式右部符号的继承属性↓是一个常量,它等于左部符号的继承属性值或等于出现在所给符号左边符号的一个综合属性值。
  2. 产生式左部非终结符号的综合属性是一个常量,它等于左部符号的继承属性值或等于右部符号的综合属性值。
    例子:
    在这里插入图片描述
    改进方法:把求值函数变成一个动作@f。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序自定义轮播图样式

小程序自定义轮播图样式以下是各案例&#xff0c;仅供大家参考。 效果展示&#xff1a; index.wxml代码&#xff1a; <view><!-- 轮播 --><view><swiper indicator-dots"{{indicatorDots}}"autoplay"{{autoplay}}" interval"{{…

AR室内导航如何实现?技术与原理分析

随着科技的进步&#xff0c;我们生活中许多方面正在被重新定义。其中之一就是导航&#xff0c;尤其是室内导航。增强现实&#xff08;AR&#xff09;技术的出现为室内导航带来了革命性的变革。本文将深入探讨AR室内导航的技术与原理&#xff0c;以及它如何改变我们的生活方式。…

ZKP Commitment (1)

MIT IAP 2023 Modern Zero Knowledge Cryptography课程笔记 Lecture 5: Commitment 1 (Ying Tong Lai) Overview: Modern SNARK IOP: Interactive Oracle ProofCommitment SchemeIOP “compiled by” the commitment scheme to get a non-interactive proofAn IOP is “inform…

穷苦人家的生活就如同战争一般,先登改变人生。

五行补火土方法   颜色化解   颜色也会对人命运产生影响&#xff0c;其力量虽较方位、行业补救小些&#xff0c;但却简便易行&#xff0c;随时可做。命理上所指的颜色分为五种&#xff0c;分别归属于金木水火土五行&#xff0c;具体是&#xff1a;金为白色&#xff0c;水为…

2023大湾区汽车创新大会在深圳坪山开幕

12月15日&#xff0c;2023大湾区汽车创新大会在深圳坪山开幕。 本次大会是由广东省科学技术厅、深圳市发展和改革委员会、深圳市工业和信息化局、中共深圳市新能源和智能网联汽车产业链委员会、坪山区人民政府指导&#xff0c;北京理工大学深圳汽车研究院、广东省大湾区新能源汽…

Pytorch nn.Linear()的基本用法与原理详解及全连接层简介

主要引用参考&#xff1a; https://blog.csdn.net/zhaohongfei_358/article/details/122797190 https://blog.csdn.net/weixin_43135178/article/details/118735850 nn.Linear的基本定义 nn.Linear定义一个神经网络的线性层&#xff0c;方法签名如下&#xff1a; torch.nn.Li…

vue 学习笔记

生命周期 1&#xff09;定义&#xff1a;vue实例从创建到销毁的过程 2&#xff09;钩子函数 2.1&#xff09;beforeCreate&#xff1a;vue实例初始化之前调用&#xff0c;这个阶段vue实例刚刚在内存中创建&#xff0c;此时data和methods这些都没初始化好。 2.2&#xff09;Cre…

【计算机网络】TCP协议——1.报文格式详解

前言 上篇讲解了UDP报文格式。TCP和UDP是同层协议&#xff0c;都属于传输层&#xff0c;数据来源于上层——应用层 目录 一. TCP协议概述 二. TCP报文格式 1. 两个问题 2. 确认号和序列号 3. 标志位字段 4. 窗口大小 5. 校验和字段 6. 紧急指针与紧急数据 7. 选项字…

v0.12.0-敏感词/脏词词标签能力进一步增强

拓展阅读 敏感词工具实现思路 DFA 算法讲解 敏感词库优化流程 java 如何实现开箱即用的敏感词控台服务&#xff1f; 各大平台连敏感词库都没有的吗&#xff1f; v0.10.0-脏词分类标签初步支持 v0.11.0-敏感词新特性&#xff1a;忽略无意义的字符&#xff0c;词标签字典 …

nodejs+vue+微信小程序+python+PHP国漫推荐系统-计算机毕业设计推荐

使得本系统的设计实现具有可使用的价。做出一个实用性好的国漫推荐系统&#xff0c;使其能满足用户的需求&#xff0c;并可以让用户更方便快捷地国漫推荐。这个系统的设计主要包括系统页面的设计和方便用户互动的后端数据库&#xff0c;在开发后需要良好的数据处理能力、友好的…

Redis设计与实现之Lua 脚本

目录 一、 Lua 脚本 1、初始化 Lua 环境 2、脚本的安全性 3、脚本的执行 4、 EVAL 命令的实现 定义 Lua 函数 执行 Lua 函数 5、 EVALSHA 命令的实现 二、 小结 一、 Lua 脚本 Lua 脚本功能是 Reids 2.6 版本的最大亮点&#xff0c;通过内嵌对 Lua 环境的支持&#xf…

助力智能人群检测计数,基于YOLOv6开发构建通用场景下人群检测计数系统

在一些人流量比较大的场合&#xff0c;或者是一些特殊时刻、时段、节假日等特殊时期下&#xff0c;密切关注当前系统所承载的人流量是十分必要的&#xff0c;对于超出系统负荷容量的情况做到及时预警对于管理团队来说是保障人员安全的重要手段&#xff0c;本文的主要目的是想要…