您好,欢迎访问三七文档
深圳大学实验报告课程名称:编译原理实验项目名称:属性文法的设计及语法制导翻译学院:计算机与软件学院专业:软件工程指导教师:罗成文报告人:学号:班级:1实验时间:2018年6月14日星期四实验报告提交时间:2018年6月20日星期四教务处制一、实验目标:理解并掌握属性文法及语法制导翻译。二、实验环境:无三、实验内容(1)什么是属性?有哪些不同的属性类型,分别的定义是什么?(2)什么是语法制导翻译?什么是属性文法?(3)什么是S-属性定义?什么是L-属性定义?(4)文法G及相应的翻译方案如下:S→bAb{print:“1”}A→cB{print:“2”}A→a{print:“3”}B→Aad{print:“4”}对输入串bcaadb进行自底向上的分析中,请画出相应语法树,并阐述该翻译模式的输出是什么。(5)给出下列文法的适合自底向上翻译的语义动作,使得当输入串是acb时,其输出串是210。S→aA___________S→c___________A→Sb___________四、实验步骤和结果(1)属性:一个文法符号X所携带的语义信息称为X的语义属性,简称属性。属性主要分为综合属性和继承属性。综合属性:如果一个节点的属性值是通过分析树中该节点及其子节点的属性值计算出来的,则称其为综合属性。继承属性:如果节点的属性值是由该节点、该节点的兄弟节点或父节点的属性值计算出来的,则称其为继承属性。(2)语法制导翻译:将静态检查(静态语义分析)和中间代码生成结合到语法分析中进行的技术成为语法制导翻译。它的主要思想是:在进行语法分析的同时完成相应的语义处理。属性文法:没有副作用的语法制导定义。而语法制导定义是附带有属性和语义规则的上下文无关文法。属性文法是一个三元组,A=(G,C,F)。G是上下文无关文法,C是属性的有穷集合,F为语义规则集合。(3)S-属性定义:一般地,只含综合属性的语法制导定义称为S-属性定义。L-属性定义:一个语法制导定义被称为L-属性定义,当且仅当它的每个属性或者是综合属性,或者是满足以下条件的继承属性:设有产生式A-X1X2…Xn,其右部符号Xi(1=i=n)的继承属性只依赖于以下属性:1.A的继承属性2.产生式Xi左边的符号X1、X2、···、Xi-1的综合属性或继承属性。3.Xi本身的综合属性或继承属性,但前提是Xi的属性不能在依赖图中形成回路。(4)输出为“3421”。语法树如下:(5)S→aA____{print:“0”}__________S→c____{print:“2”}_______A→Sb_____{print:“1”}_________按照以上语法制导定义,当输入串是acb时,其输出串是210。五、实验总结与体会经过本次实验,加深了对属性文法相关概念的理解,掌握了翻译模式及在进行翻译时语义动作的执行时机。指导教师批阅意见:成绩评定:指导教师签字:李炎然2016年4月21日备注:
本文标题:实验6
链接地址:https://www.777doc.com/doc-6020274 .html