其他毕业设计资料

计算机的汇编器设计与实现

时间:2020/10/27 11:42:12  作者:  来源:  查看:27  评论:0
内容摘要:        编写汇编器的方法一般有两种:1. 完全由手工编写;2. 利用词法语法自动生成工具。这一节讲解怎样手工编写汇编程序,下一节讲解利用词法语法自动生成工具来生成汇编程序。1.编写词法分析程序 ...
        编写汇编器的方法一般有两种:1. 完全由手工编写;2. 利用词法语法自动生成工具。这一节讲解怎样手工编写汇编程序,下一节讲解利用词法语法自动生成工具来生成汇编程序。
1.编写词法分析程序
        词法分析器主要是识别单词符号,在自定义的汇编指令系统中,单词符号主要是:标识符,数字,分界符。标识符有汇编指令名,寄存器名,伪指令名等等;数字有常数,地址。分界符包含逗号,回车等等。每一个单词符号都有一个单词种别和单词符号的属性值,如果一个单词种别只有一个单词符号,那么这单词种别就代表这单词自身;如果一个单词种别有多个单词符号,那么就要用单词符号的属性值来区分它们。比如,#2344H和#2312H的单词种别都是DATA,所以只有用属性值来区分,前者的属性值是2344H,后者的属性值是2312H。
        识别这些单词符号的一个好的途径是状态转换图,它是一张有限方向图。在状态转换图中,结点代表状态,用圆圈表示,状态之间用有向弧连接,有向弧上有一个字符,表示在射出结点的状态下,如果遇上这个字符,就转到射入结点状态。在一张状态转化图中,有一个被认为是初态,至少一个是终态(用双圆圈表示)(更多的相关内容见参考文献【7】)。状态图画出来之后,相应的词法分析程序也很快的出来了。
2.编写语法分析程序
         要生成语法分析程序,首先要有明确的文法。文法是描述语言的语法结构的形式规则。这些规则必须是准确的,易于理解的,并且这种规则所形成的程序语言应有利于句子分析和翻译。我们通常用的是上下文无关文法,它所定义的语法范畴是完全独立于这种范畴出现的环境的。它由四部分组成:一组终结符号,一组非终结符号,一个开始符号,以及一组产生式。终结符号是组成语言的基本符号,如标识符,常数等等,不可再分。非终结符代表语法范畴,一个非终结符代表一定的语法概念,是一个类记号,也是一定符号串的集合。开始符号是一个特殊的非终结符号,它代表了该文法所能描述的最大的语法范畴。产生式是定义语法范畴的一种书写规则。一个产生式的形式是Aàa,左边的是一个非终结符,称为产生式的左部符号,箭头右边的a是由终结符与非终结符组成的一符号串,称为产生式的右部。
        一个上下文无关文法有了后,下面的任务是怎样生成一个语言了。其过程是:从文法的开始符号出发,反复运用产生式,对非终结符进行替换和展开,直到只含终结符为止,这时的终结符号串叫做句子,这样的分析方法叫自上而下分析法。所有的这样的句子的组合就叫做此文法生成的语言。语法分析的目的就是看输入串是不是这个上下文文法所描述的语言的一个句子。要看输入串是不是这个上下文文法所描述的语言的一个句子,还可以从输入串出发,不断的检测,直到输入的字符串符合某个产生式的右部,那就把它们替换成产生式的左部,看最后是不是能规约成开始符号,如果能,则此字符串是一个句子。这样的分析方法叫做自下而上分析方法,适合用这种方法分析的文法叫LL(1)文法。下面我们主要从自上而下的方面来看怎样生成语法分析器。
        先来看看什么叫LL(1)文法。对于一个上下文无关文法,S是其开始符号,如果S经过有限次替换出现……Aa……的格式,那么所有这样的a组成的集合就叫做FOLLOW(A);对于非终结符A,如果经过有限次替换出现a……的格式(这里a是终结符),那么所有这样的a组成的集合就叫做FIRST(A)。下面给出LL(1)文法的定义,LL(1)文法要满足下面三个条件:(1).文法不含左递归:对于非终结符A,不会经过有限次替换出现A……的形式;(2).对于文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即,若AàA1|A2|……|An,则FIRST(Ai)与FIRST(Aj)不相交,这里i不等于j;(3).对文法中的每个非终结符A,如果它存在某个候选首符集包含空字符,那么FIRST(A)与FOLLOW(A)不相交。
        对于一个LL(1)文法,当面临某个输入符号时,选择是唯一的,所以生成其语法分析器就比较容易了。例如,要用非终结符A去进行匹配,面临的输入符号为a,A的所有的产生式为AàA1|A2|……|An,如果a在FIRST(Ai)内,那么,派Ai去匹配,如果a不在FIRST(Ai)内,如果FIRST(Ai)内有空字符,且FOLLOW(Ai)包含a,那么让Ai去匹配,否则就是语法错误。相关的详细内容见参考文献【7】。
说明:为了防止网络上可以查找到本毕业设计的论文及实际界面信息保护购买者的利益1、本计算机毕业设计样本提供的只是有关此设计论文和程序的简单介绍,要想取得完整的作品,需要你与本站联系。2、本样本只是从论文中摘录一部分,在内容、字体、字号排版上与实际作品有一定的差别,请以本站实际提供的作品为准。需要了解本计算机毕业设计的具体详细信息请联系本站客服。
相关评论
评论者:      验证码:  点击获取验证码
本类推荐
咨询QQ/微信:45157718 点击这里给我发消息 | 电话:13516821613 | 浙江杭州余杭区东港路118号雷恩科技创新园 | 网站支持:杭州摇亿网络科技 | 浙ICP备06056032号-6 |