[发明专利]一种应用于高速数字IO波形引擎的编译器有效
申请号: | 201210560608.0 | 申请日: | 2012-12-20 |
公开(公告)号: | CN103019801A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 王凯;王石记;刘金川;史浩;辛丽霞 | 申请(专利权)人: | 北京航天测控技术有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 杨志兵;高燕燕 |
地址: | 100041 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种应用于高速数字IO波形引擎的小型编译器,其处理分为三步,关键字和变量的识别及分类处理,语法检查和代码优化,目标代码生成。在第一步中,采用链表的形式记录关键字和特殊符号的出现顺序,关键字的参数记录在数组中,第二步将数组转换为链表,减小空间占用;最后一步根据链表出栈,生成目标码。本发明能够简化编译过程,减小编译器大小,在编译过程中使用资源可灵活申请,不会浪费,且该编译器能够设置在下位机中,免去了上位机编译下载过程,减少开销和调试时间。 | ||
搜索关键词: | 一种 应用于 高速 数字 io 波形 引擎 编译器 | ||
【主权项】:
一种应用于高速数字IO波形引擎的小型编译器,其特征在于,该编译器包括第一模块、第二模块和第三模块;第一模块,用于关键字和变量的识别及分类处理;具体为:读取待编译程序,进行逐字处理;如果当前读取到的为关键字,则按照预先设定的关键字使用规则,先对关键字的前后词句进行检查,看其是否符合语法定义;如果不符合,则停止编译并返回相应错误码;如果符合,则将当前关键字对应的出现次数变量加1,并且在顺序链表L0的尾部增加一个结点,将当前关键字的代码添加到尾部结点中;如果当前关键字具有参数,则将参数记录到第一参数数组,并在当前关键字的链表结点中记录参数在第一参数数组中的索引;如果当前读取到的为特殊符号,包括begin、end、小括号、大括号、双引号、分号,则将当前特殊符号对应的出现次数变量加1,并且在顺序链表L0的尾部增加一个结点,将当前特殊符号的代码添加到尾部结点中;第二模块,用于语法检查和代码优化;具体为:所述语法检查包括:检验关键字和特殊符号对应的出现次数变量的值是否与顺序链表L0中相应关键字和特殊符号出现次数相同;根据顺序链表L0中具有配对关系的特殊符号的出现次数和位置检验配对关系是否正常;如果语法检查有错误,则停止编译并返回相应错误码;所述代码优化为:将所述第一参数数组中的元素转化为参数链表中的结点,采用参数链表结点地址代替顺序链表L0中的第一参数数组索引;释放第一参数数组空间;第三模块,用于实现目标代码生成;具体为:逐个访问顺序链表L0中的每个结点,如果当前结点为关键字且没有参数,则直接根据目标码生成规则生成目标码,如果当前结点为关键字且有参数,则根据结点中记录的参数链表结点地址,从参数链表中提取参数,将关键字与参数组合后根据目标码生成规则生成目标码;如果当前结点为特殊符号,则直接 根据目标码生成规则生成目标码。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航天测控技术有限公司,未经北京航天测控技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210560608.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种新型机械式气动侧规
- 下一篇:零件可一体印刷的注塑结构