[发明专利]一种C语言核心语句转换到一阶公式的方法无效
申请号: | 200910243036.1 | 申请日: | 2009-12-22 |
公开(公告)号: | CN101876941A | 公开(公告)日: | 2010-11-03 |
发明(设计)人: | 李未;罗杰;李贺;刘祥龙;余韡 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/44 |
代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 李新华 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 语言 核心 语句 转换 一阶 公式 方法 | ||
1.一种C语言核心语句转换到一阶公式的方法,其特征在于步骤如下:
(1)输入C语言程序,该程序仅由C语言核心语句构成,即只涉及赋值语句、条件语句、while语句和过程调用语句,各语句之间的连接使用顺序语句,同时判断条件只是单个条件,并且只跟零作比较;此外程序中的变元和常元都是定义在自然数集合上,并且涉及的运算只包括加、减和乘;使用现有的编译技术统计程序中使用的不同变元的个数k,给这些变元按字典排序法排序,记为v={v1,…,vk},所述v={v1,…,vk}为按字典排序法排序的程序中所使用的不同变元的有序集合;
(2)全局变量count用来标记当前已经使用过的有序状态变元集合的个数,初始值为0;全局变量while_count用来标记当前已经处理过的while语句个数,初始值为0;变量CurFormula用来存储当前的一阶公式,初始值为空;变量NewFormula用来存储返回的新公式,初始值为空;
(3)输入程序的第一条语句;
(4)判断当前输入的语句的类型,根据判断结果调用相应的转换模块,包括赋值语句转换模块,条件语句转换模块,while语句转换模块,过程调用语句转换模块,各模块根据相应语句的语义解释进行转换,并返回生成的新公式NewFormula;
(5)处理完当前输入的语句后,使用顺序语句规则,把当前返回的新公式NewFormula与当前的一阶公式CurFormula合并,结果存储在CurFormula中。判断程序是否结束,若没有,则输入程序的下一条语句,然后转到步骤(4),否则,返回当前的CurFormula。
2.根据权利要求1的C语言核心语句转换到一阶公式的方法,其特征在于,步骤(2)中的全局变量count将作为生成有序状态变元集合的函数GenSymbol()的参数,以确保生成的有序状态变元集合跟之前产生的有序状态变元集合都不同,以保证生成的公式中使用的变元不会混淆;所述有序状态变元集合的不同指相应位置上的元素均不同。
3.根据权利要求1的C语言核心语句转换到一阶公式的方法,其特征在于,所述的步骤(2)中的全局变量while_count将作为生成有序变量集合的函数GenVar()的参数,以确保生成的有序变量集合跟之前产生的有序变量集合都不同,以保证对于不同的while语句,其对应的矩阵数m,循环次数l,中间存储状态标记j均不同。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910243036.1/1.html,转载请声明来源钻瓜专利网。