基于规则推理的虚拟指令翻译
- 格式:pdf
- 大小:446.62 KB
- 文档页数:7
翻译推理中的“前推后”与“后推前”翻译推理是逻辑判断模块中的一种题型。
这类题型的特征是题干和选项所给的信息中包含了逻辑关联词,要求我们按照推理规则找出一个可以推出的选项。
所谓翻译推理就是根据题干的逻辑关联词来做翻译,并根据推理规则来确定哪个选项可以推出,哪个选项不能推出。
因此,对于基本的翻译公式和推理规则我们是需要牢牢记在心里的。
“前推后”与“后推前”是翻译推理最基本的翻译公式,我们需要对一些关键词的翻译结果进行准确记忆,并根据固定的推理规则来判断哪个选项是正确答案。
一、“前推后”的逻辑关联词所谓前推后就是前半句推出后半句(A→B),即当前半句为真时,后半句一定为真,下面给大家列出前推后的基本关键词:如果A,那么B;若A,则B;只要A,就B;所有A,都B;为了A,一定(必须)B ;A是B的充分条件。
二、“后推前”的逻辑关联词所谓后推前就是后半句推出前半句(B→A),即当后半句为真时,前半句一定为真,下面给大家列出后推前的基本关键词:只有A,才B;不A,不B;除非A,否则不B;A是B的前提/假设/基础/必要条件/必不可少的条件。
三、逆否等价逆否等价是翻译推理最基本的推理原则,即A→B = -B→-A。
用文字表示:肯前必肯后,否后必否前,否前肯后无必然结论。
例:如果天下雨,那么地会湿。
翻译:天下雨→地会湿逆否等价:-地会湿→-天下雨真题示例(2018四川)一个人如果是智者,那么他一定是一位谦虚的人;而一个人只有认识到自己的不足,他才会谦虚。
但是,如果一个人听不进别人的意见,那么他就不会认识到自己的不足。
由此可以推出:A.一个人如果认识到自己的不足,他就是一位智者B.一个人如果听不进别人的意见,他就不是一位智者C.一个人如果听得进别人的意见,他就会认识到自己的不足D.一个人如果认识不到自己的不足,他一定听不进别人的意见解题思路:此题正确答案为B。
题干中出现两次“如果……,那么……”的关联词组合,一次“只有……,才……”的关联词组合,因此翻译结果为:①智者→谦虚;②谦虚→认识到自己的不足;③听不进别人的意见→-认识到自己的不足。
人工智能中的知识表示与推理技术人工智能中的知识表示和推理技术是人工智能领域中的两个重要方面。
知识表示是指将事物、概念、关系等抽象的信息以某种形式进行表达和存储的过程。
推理技术是指利用已有的知识进行逻辑上的推理和演绎,从而得出新的结论或解决问题的过程。
本文将介绍人工智能中常用的知识表示与推理技术,并探讨其在人工智能应用中的重要性和应用场景。
一、知识表示技术1.逻辑表示逻辑表示是一种使用逻辑语言描述知识的方法。
其中,一阶逻辑是最常用的逻辑表示形式,它使用谓词逻辑描述事实、规则和约束等知识。
二阶逻辑和高阶逻辑则更为复杂,可以用于表示更复杂的知识和关系。
2.语义网络语义网络是使用图结构表示知识的一种方式,其中节点表示概念或实体,边表示概念或实体之间的关系。
语义网络可以用于表示结构化的知识,并且方便进行关系的推理和查询。
3.本体论本体论是一种用于描述和组织领域知识的方式,它定义了一种公共的、精确的术语和概念的语义结构。
本体论可以用于知识的共享和交流,同时也能够支持知识的推理和查询。
4.语义表达语义表达是一种使用语义标记和符号描述知识的方法。
常见的语义表达方法包括基于XML的标记语言、RDF和OWL等语义描述语言。
语义表达可以使计算机理解和处理知识,从而支持知识的推理和应用。
二、推理技术1.基于规则的推理基于规则的推理是最常见的推理方法之一,它使用一组规则来描述知识和推理过程。
推理引擎根据这些规则对已有的知识进行逻辑推理和演绎,从而得出新的结论或解决问题。
2.神经网络推理神经网络推理是利用神经网络模型进行推理和决策的方法。
神经网络通过学习和迭代更新权重,可以对输入数据进行分类、预测和推理。
神经网络推理在图像、语音和自然语言处理等领域有广泛应用。
3.不确定推理不确定推理是一种处理不完全或不确定信息的推理方法,它考虑到知识的不完整性、不确定性和不一致性。
常用的不确定推理方法包括贝叶斯网络、模糊逻辑和模糊推理等。
逻辑推理和翻译翻译推理作为判断推理模块的重要题型。
可以了解翻译推理的六大规则。
首先要确定题目是中的逻辑关联词来进一步确定是翻译推理的题型,之后就需要搞清楚是逻辑关联词是充分或者必要条件来确定是关联词引导的前半句推出关联词引导的后半句或者是关联词引导的后半句推出关联词引导的前半句,可以利用逻辑思维中的一些符号来简写出推出关系式。
最后根据翻译推理中关于逻辑关系的推理规则——肯前必肯后,否后必否前;否前肯后不必然来确定选项的正确与否。
而且在翻译推理中“且”和“或”两个关联词也是有自己的特征,也有推理规则。
且关系需要两个条件同时满足,并且两个条件全真为真,一个条件为假就是假的;或关系需要至少有一个条件满足才可以,并且只要一个条件为真就是真的,条件全部为假就是假的;他们的推理规则就是摩根定律,需要否定且关系或者或关系。
关于或关系还有一个非常重要的推理规则就是否定肯定式,否定或关系中的一支就必定得到另一支。
这些都是翻译推理重要的知识点,基本上近几年(年没有考到翻译推理)陕西省考都会考到翻译推理。
(陕西省托福行测真题)81:越来越多的人已经惯于在“云端”漫步,享用快速发展增添的成果,却不见踪影:德国正在大力推进“工业4.0”计划,美国正在呼唤“再工业化”;却无人知晓:没强悍的生产生产能力、技术创新设计能力,国计民生就没确保,国家实力就无从谈起,“互联网+”也就就可以就是空中楼阁;却清静无为:只顾醉心于交互式经济就是行不通的。
越是在宏观层面,越必须充份认识到互联网的诸多局限性。
如果以上为真,则以下哪项为真?a.“互联网+”并使很多人沉迷于交互式经济b.“互联网+”在微观层面的局限性更少c.只有国计民生获得确保,就可以发展“互联网+”d.只有提高生产制造和创新设计能力,才能发展“互联网+”解析:第一步,确定题型。
根据题干关联词“没……没……”等,确认为译者推理小说。
第二步,翻译题干。
①民生确保→生产能力且技术创新设计能力;②国家实力→制造能力且创新设计能力;③“互联网+”→生产能力且技术创新设计能力。
翻译推理翻译规则前推后如果....那么(就)....只要....就...所有...都......是...的充分条件...就/则/都/一定...‘如果’可以替换为:假如、一旦。
若。
‘所有’可以替换为:凡是、任何、每一个。
后推前只有...才...不...不......才....除非...否则不......是...的必要条件‘必要条件’可以替换为:先决条件、基础。
前提、必要假设、比不可少。
推理规则逆否等价已知①→②成立,可以推出:否②→否①成立。
先将顺序“逆”过来再加“否”,即“逆否等价”。
传递规则①→②,②→③成立,可以推出:①→③成立。
两个翻译易错点“必要条件”的翻译陷阱。
口诀:谁必不可少,谁在箭头后。
“除非...否则...”的翻译。
“且”关系与“或”关系“且”关系逻辑内涵:当关系成立时,表示由“且”连接的所有关系均成立。
同义关联词并列关系:并且/且/和/都/既...又...递进关系:甚至/而且/还...转折关系:但是/然而/却...标点符号:“,”“、”“;”标点符号在没有其他特别的标注的情况下,一般都按照“且”关系处理。
“但是”在言语中表示语义前后的转折,但在逻辑关系中与“和”逻辑内涵相同,即表示前后句子同时成立。
推理规则①且②→①,①且②→②“或”关系逻辑内涵“或”关系成立时,表示连接的所有对象中至少有一个成立。
同义关联词...或者/或...或者...或者......和...至少有一个推理规则当“或”关系成立时,否定前句→后句成立,否定后句→前句成立,即“否一推一”。
特别提示①和②至多有一个,翻译为:-①或-②。
那么...要么...:含义为二选一。
推理规则“或”相同,即:否定前句→后句成立,否定后句→前句成立。
德·摩根定律-(①且②)=-①或-②-(①或②)=-①且-②关于“有的”逻辑内涵“有的”表示至少有一个,即≥,包含三种可能:1、只有1个满足。
2、有一部分满足。
3、全部满足。
翻译新考点:“除非”如何推理在翻译推理中“除非…否则…”的翻译和推理是公务员考试的重点和难点。
通常“除非A,否则B”,其翻译规则可以理解为:除非具备A,如果不具备A则结果为B,即翻译为非A→B。
例如“除非吃仙丹,否则不能长生不老”,可以理解为“除非具备吃仙丹的条件,如果不具备,则结果为不能长生不老”,即翻译为“非吃仙丹→不能长生不老”但是如果题干中只出现了“除非”这个必要条件的替代关联词,考生该如何翻译和推理呢?我们不妨通过举例来理解和阐释。
“他不可能长生不老,除非吃仙丹”同样可以理解为“除非具备吃仙丹这个条件,如果没有吃仙丹则不可能长生不老”,即翻译为“非吃仙丹→不能长生不老”。
再例如“投资人放弃该创业项目,除非该项目通过考核”,可以理解为“没有通过考核,则投资人放弃该项目”。
归纳为公式则为“A,除非B”,翻译为“非B→A”【例题】记者采访时的提问要具体、简洁明了,切忌空泛、笼统、不着边际。
《采访技巧》一书中尖锐地剖析了“您感觉如何”等问题的弊端,认为这些提问实际上在信息获取上等于原地踏步,它使采访对象没法回答,除非用含混不清或枯燥无味的话来应付。
由此可以推出()。
A.记者采访时的提问如果具体、简洁明了,就不会给采访对象带来回答的困难B.采访对象如果没法回答提问,说明他没有用含混不清或枯燥无味的话来应付C.采访对象只有用含混不清或枯燥无味的话来应付,才能回答“您感觉如何”等问题的提问D. 诸如“您感觉如何”这样的问题,只能使采访对象抓不住问题的要点而作泛泛的或言不由衷的回答【解析】题干的需要翻译的句子为“采访对象没法回答,除非用含糊不清的话来应付”,可以理解为“没有用含糊不清的话来应付→采访对象没法回答”,即“回答问题→用含糊不清的话来应付”,因此选择C选项。
【结论】“A,除非B”可以理解为“除非具备B条件,如果不具备B则结果为A”,即翻译为“非B→A”。
生活中体现人工智能的符号主义的例子生活中体现人工智能的符号主义的例子1. 引言人工智能(Artificial Intelligence, AI)已经逐渐渗透到我们的日常生活中,在各个领域发挥着重要作用。
符号主义作为一种AI的学派,强调通过符号和规则来模拟人类的智能行为。
本文将探讨生活中体现人工智能符号主义的一些例子,从而帮助我们更好地理解和认识这一概念。
2. 机器翻译在全球化的背景下,机器翻译已经成为不可或缺的工具。
符号主义在机器翻译领域的应用表明,通过将不同语言的词汇和语法规则进行映射,机器可以实现自动翻译。
谷歌翻译就是基于符号主义的方法,通过构建大规模的语言模型和翻译规则,具备一定的语义理解和翻译准确性。
3. 智能个人助理智能个人助理已经成为我们生活中常见的存在。
符号主义在智能个人助理的开发中起到了重要作用。
通过分析用户的语音命令或文本输入,智能个人助理可以识别意图,并给出相应的回答或建议。
这一过程背后,符号主义提供了一种方式来将自然语言转化为计算机可以理解和处理的符号表示。
4. 虚拟现实虚拟现实技术正在逐渐改变我们的生活方式。
在虚拟现实中,人们可以沉浸在一个由计算机生成的虚拟环境中。
符号主义在虚拟现实中的应用在于模拟和还原真实世界的物理规律和交互行为,从而使得虚拟环境更加真实、逼真。
通过对符号和规则的建模,虚拟现实可以在计算机中创建具有真实感的体验。
5. 自动驾驶技术自动驾驶技术作为一项重要的AI应用,引起了广泛的关注。
符号主义在自动驾驶技术中的贡献主要体现在对交通规则和行驶逻辑的建模和处理上。
通过运用符号和规则来表示车辆的行为规则和交通环境,自动驾驶系统可以理解并作出相应的决策,从而实现无人驾驶。
6. 结语人工智能的发展已经使得符号主义在生活中的应用越来越广泛。
通过机器翻译、智能个人助理、虚拟现实和自动驾驶技术等例子,我们可以看到符号主义在模拟人类智能行为方面的重要性。
尽管符号主义在某些情况下可能会受限于符号表示的局限性,但它仍然是人工智能领域中的重要理论和方法之一。
除非否则的推理规则逻辑连接词“除非、、、否则、、、”属于翻译推理里面较为重要的一个连接词,之所以说其重要主要是由于,在我们的行测命题考试中,出现的次数较多,并且命题较为复杂,多为综合知识点的考查,所以了解和掌握该词基本的命题规律和解答技巧,为我们后续考场上的快速得取高分,有至关重要的意义。
故厦门华图在此跟大家分享相关技巧。
翻译推理题目,顾名思义,即做题步骤主要有两步。
第一步:翻译,即将题干的逻辑连接词转换为逻辑形式,“→”形式。
第二步:推理,利用逻辑推理的基本原则,逆否等价原则对原题干形式进行推演得到新的结论。
所以我们要想正确解答此类题目,就要首先了解“除非、、、否则、、、”的逻辑形式,其逻辑推理形式为“否后推前”,即“除非p否则q”等价于“—q→p”。
【例1】:老王对老李说:“除非你在今天之内按照合同要求支付货款,否则我们法庭上见。
”以下哪项判断的含义与上述判断不同?a、只有老李今天按照合同的要求支付货款,老王才不会将他告上法庭b、如果老李今天按照合同的要求支付货款,那么老王不会将他告上法庭c、如果老李今天不按照合同的要求支付货款,那么老王就会将他告上法庭d、如果老王没有将老李告上法庭,那么老李在今天按照合同的要求支付货款首先,我们要注意的是题干的问法。
本题题干设问的方式“与上述判断不同”,即选择一个错误选项。
题干的逻辑连接词是“除非、、、否则、、、”,按照其“否后推前”的逻辑规则,题干可以转化为①“不上→支付”,根据逆否等价规则,可以得到②“不支付→上”结合四个选项。
a项“不上→支付”符合①;b项“支付→不上”错误;c项“不支付→上”符合②;d项“不上→支付”符合①。
所以本题选项b为答案。
【例2】:文学院部分学生是优秀奖学金获得者。
除非学生是优秀的奖学金获得者,否则任何大学都不能获得学校的奖学金。
计算机学院可以获得学校的奖学金。
由此可以推断:a.文学院可以从学校领取奖学金b.文学院有的学生不是优秀奖学金获得者c.计算机学院有的学生是优秀奖学金获得者d.计算机学院有的学生不是优秀奖学金获得者题干的逻辑连接词是“除非、、、否则、、、”,按照其“否后推前”的逻辑规则,注意的是题干中“否则”后面有“不”,所以双重否定表示肯定。
基于规则的推理原理规则是人类思维的基础,它们是我们在日常生活中做出决策和推理的基础。
基于规则的推理原理是一种逻辑推理方法,它基于一组规则,通过应用这些规则来推导出结论。
这种推理方法在人工智能领域中得到了广泛应用,特别是在专家系统中。
基于规则的推理原理的核心是规则库。
规则库是一组规则的集合,这些规则描述了特定领域的知识。
规则库中的每个规则都由两个部分组成:前提和结论。
前提是一组条件,当这些条件满足时,规则就可以被应用。
结论是规则的输出,它描述了规则的结果。
基于规则的推理原理的工作流程如下:1. 收集领域知识并将其编码为规则库。
2. 当需要进行推理时,系统会检查规则库中的每个规则的前提是否满足。
3. 如果某个规则的前提满足,则系统会应用该规则,并生成相应的结论。
4. 如果有多个规则的前提都满足,系统会选择具有最高优先级的规则。
5. 如果没有规则的前提满足,则系统无法生成结论。
基于规则的推理原理的优点是它可以处理复杂的问题,并且可以轻松地添加新的规则来扩展系统的功能。
此外,规则库中的规则可以被修改或删除,以便系统可以适应新的情况。
然而,基于规则的推理原理也存在一些缺点。
首先,规则库必须包含所有可能的情况,否则系统将无法生成正确的结论。
其次,规则库中的规则必须被正确地编写,否则系统可能会生成错误的结论。
最后,基于规则的推理原理无法处理模糊或不确定的情况。
基于规则的推理原理是一种强大的逻辑推理方法,它在人工智能领域中得到了广泛应用。
虽然它存在一些缺点,但它仍然是一种非常有用的工具,可以帮助我们解决复杂的问题。
机器人的知识表示和推理方法近年来,随着人工智能技术的不断发展,机器人逐渐成为生活中的重要角色。
为了使机器人能够进行有效的交流和推理,知识表示和推理方法变得至关重要。
本文将探讨机器人的知识表示和推理方法,以及其在实际应用中的潜在价值。
一、知识表示机器人的知识表示涉及将人类知识翻译成机器可以理解和处理的形式。
常见的知识表示方法包括符号逻辑、本体论和语义网络等。
符号逻辑是一种基于规则和推理的知识表示方法。
它以一组符号和推理规则为基础,通过逻辑推理来进行问题求解。
例如,在问答系统中,机器人可以使用符号逻辑表示问题和答案之间的关联关系,以便给出准确的答案。
本体论是一种基于概念和关系的知识表示方法。
它通过定义概念和概念之间的关系来表示知识。
例如,在导航系统中,机器人可以使用本体论表示地理位置和导航指令之间的关系,以便提供准确的导航服务。
语义网络是一种基于图结构的知识表示方法。
它将知识表示为节点和边的网络,节点表示实体或概念,边表示实体之间的关系。
例如,在自动驾驶系统中,机器人可以使用语义网络表示车辆、障碍物和道路之间的关系,以便安全地驾驶。
二、推理方法机器人的推理方法是指在已有的知识基础上,通过逻辑推理、统计学习或深度学习等方式进行问题求解和决策。
逻辑推理是一种基于规则和逻辑推理的推理方法。
它通过应用事先定义的推理规则,从已知事实推导出新的结论。
例如,在智能家居系统中,机器人可以使用逻辑推理方法根据传感器数据判断家庭成员是否在家以及家庭设备是否需要运行。
统计学习是一种基于统计概率的推理方法。
它通过对已有数据进行分析和建模,预测未来事件的概率分布。
例如,在智能投资系统中,机器人可以使用统计学习方法分析历史市场数据,为投资者提供投资建议。
深度学习是一种基于人工神经网络的推理方法。
它通过构建多层神经网络来模拟人脑神经元之间的连接和传递过程,从而实现对复杂问题的推理和决策。
例如,在图像识别系统中,机器人可以使用深度学习方法对图像进行分类和识别。
第13卷第3期信息工程大学学报Vol.13No.32012年6月JournalofInformationEngineeringUniversityJun.2012
收稿日期:2012-02-22;修回日期:2012-03-19基金项目:国家863计划资助项目(2009AA01Z434)作者简介:赵远(1984-),男,硕士生,主要研究方向为信息安全,E-mail:zbzhaoyuan@gmail.com。
DOI:10.3969/j.issn.1671-0673.2012.03.019基于规则推理的虚拟指令翻译
赵远,曾光裕,王炜,崔晨(信息工程大学信息工程学院,河南郑州450002)摘要:研究了虚拟指令翻译技术,设计了一种基于规则推理的虚拟指令翻译器,实现目标指令到虚拟指令的翻译。该翻译器以指令解码器的解码结果为输入,匹配指令翻译规则,充分利用了目标指令的语义信息。同时,翻译规则与控制逻辑的分离使得添加新指令集及修改翻译策略相对容易。给出了关键问题的解决方法,测试结果表明,该翻译器能正确翻译多种指令集,具有较高的实用价值。关键词:规则推理;虚拟指令;翻译器;指令解码器中图分类号:TP311文献标识码:A文章编号:1671-0673(2012)03-0352-06
VirtualInstructionTranslationBasedonRule-BasedReasoningZHAOYuan,ZENGGuang-yu,WANGWei,CUIChen(InstituteofInformationEngineering,InformationEngineeringUniversity,Zhengzhou450002,China)Abstract:In-depthresearchonvirtualinstructiontranslationtechniquesleadstoavirtualinstructiontranslatorbasedonrule-basedreasoning,whichcanconverttargetinstructionstovirtualinstruc-tions.Takingtheresultsofinstructiondecoderastheinput,thetranslatormatchestheinstructiontranslationrulesandmakesfulluseoftargetinstructions’semanticinformation.Sincetranslationrulesareseparatedfromthecontrollogic,newtargetinstructionscanbeeasilyaddedandtranslationpoliciescanbeconvenientlymodified.Solutionstokeyproblemsarepresented,andexperimentsshowthatthistranslatorcandealwithdiverseinstructionsets,whichmeanssignificantinapplica-tion.Keywords:rule-basedreasoning;virtualinstruction;translator;instructiondecoder
0引言
相对于真实处理器指令,虚拟指令形式更加灵活、修改相对方便,能够屏蔽不同指令集的差异、减少系统设计冗余,广泛应用于计算机体系结构设计[1]、二进制翻译[2]和代码生成[3]等领域。多种处理器二进制程序代码的归一化表示可简化不同目标代码的处理过程,将不同目标指令翻译为虚拟指令是实现归一化的有效方法。目标指令的二进制代码作为处理器直接识别和处理的格式,含有最为丰富的指令语义信息。在对二进制代码进行处理时,往往需要指令解码器的支持。解码器依据处理器手册中规定的指令编码规范,按照一定的编码模式对二进制指令进行解析,输出结构化表示的指令语义信息,并可以据此得到第3期赵远等:基于规则推理的虚拟指令翻译353程序的反汇编代码。目前常见的将目标指令翻译为虚拟指令的方法有两类:基于指令集描述语言(InstructionSetDescrip-tionLanguage,ISDL)的翻译方法和基于指令字典的翻译方法。然而,这些方法多局限于对目标指令反汇
编代码的分析,不能充分利用指令解码器的解码结果。本文对现有翻译方法进行了分析,将规则推理技术引入虚拟指令的翻译,以结构化的指令解码结果匹配翻译规则,有效利用了指令的语义信息,同时实现了翻译规则与控制逻辑的分离,简化了修改指令翻译方案、支持新的目标指令集的过程。给出了翻译器的总体结构设计和关键问题的解决方法,并应用于课题组研发的多目标固件代码分析平台,验证了该方法的有效性。
1问题描述及相关工作
1.1问题描述
将目标指令翻译到虚拟指令,就是在从目标指令集体系结构(TargetInstructionSetArchitecture,T-ISA)到虚拟指令集体系结构(VirtualInstructionSetArchitecture,V-ISA)的结构映射基础上,将目标指令
的操作翻译为虚拟指令的操作,并保证二者语义等价的过程。
图1虚拟指令翻译示意图如图1所示,设某时刻T-ISA的状态为Si,对应的V-ISA的状态为Si',T-ISA上的指令inst执行后,转换为状态Sj,Sj对应的V-ISA的状态为Sj',则需要寻找V-ISA上的指令(或指令序列)inst',
使得
inst'执行后的状态Sj'=Sj″。其中的map()函数称为结构映射函数。与实际指令类似,虚拟指令也由两部分组成,即操作码和操作数。操作码规定了具体的操作动作,操作数规定了操作的对象,由不同的寻址方式指出。一条指令的翻译可以分为操作数的翻译和操作码的翻译两部分。前者依据状态映射函数map()确定,后者即求解指令序列inst'的过程,需要考虑操作码的具体语义及操作数的类型。1.2相关工作
目前,常见的虚拟指令翻译方法主要有基于指令集描述语言(ISDL)和基于指令字典两类。基于ISDL的翻译方法指令集描述语言(ISDL)是一种用于描述指令的结构与行为的形式化语言。如nML[4]是较早的指令集描述语言,该语言用树图来描述指令集的静态结构、用形式语言来描述指令的动态行为。基于ISDL的翻译方法的过程[5]:
①分析目标指令的指令地址、操作码、指令长度和各个操作数;②将上述信息与目标指令集的描述进行匹配,生成该条指令的ISDL语义描述;③对语义描述进行整理化简;④将语义描述转化为对应的虚拟指令。将语义描述转化为对应的虚拟指令需要依赖相应ISDL的解释器。由于具体的ISDL和虚拟指令的不同,常常需要开发专门的解释器。解释器通过词法分析、语法分析、优化、代码生成等步骤将语义描述转化为虚拟指令。虽然已有开源的ISDL解释器,可以在其基础上进行修改,以适应不同的ISDL和虚拟指令,但这一过程仍然工作量较大,且客观上增加了出错的可能性。基于指令字典的翻译方法指令字典是将每一条目标指令对应的虚拟指令序列,按照一定规则或顺序进行组织的形式。基于指令字典的翻译方法,需要事先编制目标指令的字典,然后在翻译过程中,从字典中查找每一条指令对应的虚拟指令序列,对其进行替换,最终生成目标代码的虚拟指令表示形式。指令字典的生成方式分为自动构造和人工构造两种。如在二进制翻译系统UQBT[6]中,采用语义描述语言(SSL)描述各种机器的指令语义信息,对SSL形式的指令描述文件用LEX和YACC[7]先后进行词法分析
和语法分析,生成对应的中间语言字典。相比基于ISDL的翻译方法,基于指令字典的翻译方法思路清晰,实现较简单,但是其指令翻译的质量取决于字典的容量和质量。自动构造指令字典的方式需要有机器的SSL描述,并且对SSL描述进行词法354信息工程大学学报2012年
分析和语法分析。人工构造指令字典能避免词法分析和语法分析的步骤,但是对每一条指令编制指令字典,包含了大量的重复劳动,指令字典规模的膨胀也会降低查找的效率。
2基于规则推理的虚拟指令翻译
规则推理(Rule-BasedReasoning,RBR)[8]是一种人工智能技术,其用“IF…THEN…”形式的产生式表示规则,依据规则进行推理,模拟人类专家的决策过程,解决需要专业知识才能解决的复杂问题,多应用于构建诊断、决策、预警等各类专家系统。近年来,研究者开始将其用于C语言代码或可执行代码的生成[9-10],提高了代码生成的自动化程度,减少了系统的功能冗余。研究发现,一条汇编指令格式相对固定,一般包含操作码、操作数、条件码、影响的标志位等部分。不同指令间存在着很多的共性,如每一种指令集的寻址方式相对固定。以MCS-51体系结构为例,共有立即寻址和直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址7种寻址方式。人们分析一条指令的语义并将其翻译为虚拟指令的过程,应用了一系列的推理,这个推理过程可以表示为人脑基于已有的一些原则或规则进行的分析处理,因此可以将基于产生式规则的推理技术应用于虚拟指令翻译。以规则的形式给出指令各要素的翻译策略,将目标指令作为事实交给推理机,推理机用目标指令去匹配规则库的规则,基于谓词逻辑完成推理过程,最终生成虚拟指令序列。对一条指令的分析和翻译策略,易于表示成产生式规则。通过把业务规则从应用程序中分离出来,使得系统的模块化程度好,规则的添加相对容易,有利于系统的扩充。此外,指令解码器作为对二进制代码进行预处理的常见工具,提供了结构化的指令语义信息,易于实现规则的匹配。因此,不同于常见虚拟指令翻译器以汇编指令为输入,本文设计的基于规则推理的指令翻译器以指令解码器的解码结果作为输入。翻译器主要由规则库、规则管理、推理机、临时数据区、结果输出和结果缓存等部分组成,其结构如图2所示。
图2虚拟指令翻译器系统结构规则库规则库是由规则构成的知识库,存放着将目标指令翻译为虚拟指令的一系列规则,以及翻译过程的控制规则。规则的表示形式和组织方式决定了系统的效率,需要根据求解的问题类型进行设计,是构建翻译器必须要考虑的问题。规则管理提供规则的浏览、修改、添加等各种管理功能,可以通过对规则的添加或修改改变翻译器的翻译结果。添加规则时需要检查规则的一致性,确保不会出现相互矛盾的规则。推理机推理机是翻译器的组织控制机构,根据输入的数据,匹配规则库中的规则,按一定的策略进行推理,得到虚拟指令结果。临时数据区用于存储系统的临时数据,包括解码的结果、翻译过程中的中间结果等。结果输出输出最后的虚拟指令翻译结果,以文件形式保存翻译结果,供其它模块读取或显示。结果缓存为了提高翻译的效率,对翻译的结果进行缓存,当再次遇到相同指令时可以直接调用缓存的翻译结果。在无结果缓存的情况下,一条指令的翻译过程为:翻译器读取指令解码结果到临时数据区,推理机将指令解码结果的语义信息与规则库中的规则进行匹配,根据匹配到的规则向临时数据区写入相应的数据,直到翻译完毕,由结果输出模块将结果输出给用户。