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