【技术实现步骤摘要】
本专利技术属于软件编译算法领域,特别涉及一种应用于高速数字IO波形引擎的小型编译器。
技术介绍
在传统意义上,仪器厂商为用户提供控制程序或者驱动程序都以函数和属性为单位,这些函数和属性都偏重于实现某一项或几项特定功能,用户仅可固定使用厂商提供的控制方式而不能将更底层的功能按照自己的需求任意组合,这样就对用户的使用方式做出了限制,无法满足用户更高层次的需求。例如,用户需要使用高速数字IO模块提供的原有函数实现多个波形带有多个marker标记,同时满足多个触发条件,还要实现N层循环嵌套和条件分支,这几乎是不可能实现的。本申请人于2011年12月20日提出了一项专利申请“一种用于任意波形产生系统的处理器”(申请号为201110430689. 8),该申请提供了一种精简指令集的高速数字IO波形引擎,该引擎只采用Generate、Repeat/end Repeat、If/endIf、Wait、Clear这几条简单的指令即可覆盖波形引擎的绝大部分功能需求。在采用上述精简指令集进行程序代码编写完成后,需要对程序代码进行编译,从而转化为二进制目标码。一般编译过程分为词法分析,语 ...
【技术保护点】
一种应用于高速数字IO波形引擎的小型编译器,其特征在于,该编译器包括第一模块、第二模块和第三模块;第一模块,用于关键字和变量的识别及分类处理;具体为:读取待编译程序,进行逐字处理;如果当前读取到的为关键字,则按照预先设定的关键字使用规则,先对关键字的前后词句进行检查,看其是否符合语法定义;如果不符合,则停止编译并返回相应错误码;如果符合,则将当前关键字对应的出现次数变量加1,并且在顺序链表L0的尾部增加一个结点,将当前关键字的代码添加到尾部结点中;如果当前关键字具有参数,则将参数记录到第一参数数组,并在当前关键字的链表结点中记录参数在第一参数数组中的索引;如果当前读取到的为 ...
【技术特征摘要】
1.一种应用于高速数字IO波形引擎的小型编译器,其特征在于,该编译器包括第一模块、第二模块和第三模块; 第一模块,用于关键字和变量的识别及分类处理;具体为 读取待编译程序,进行逐字处理; 如果当前读取到的为关键字,则按照预先设定的关键字使用规则,先对关键字的前后词句进行检查,看其是否符合语法定义;如果不符合,则停止编译并返回相应错误码;如果符合,则将当前关键字对应的出现次数变量加1,并且在顺序链表LO的尾部增加一个结点,将当前关键字的代码添加到尾部结点中;如果当前关键字具有参数,则将参数记录到第一参数数组,并在当前关键字的链表结点中记录参数在第一参数数组中的索引; 如果当前读取到的为特殊符号,包括begin、end、小括号、大括号、双引号、分号,则将当前特殊符号对应的出现次数变量加1,并且在顺序链表LO的尾部增加一个结点,将当前特殊符号的代码添加到尾部结点中; 第二模块,用于语法检查和代码优化;具体为 所述语法检查包括检验关键字和特殊符号对应的出现次数变量的值是否与顺序链表LO中相应关键字...
【专利技术属性】
技术研发人员:王凯,王石记,刘金川,史浩,辛丽霞,
申请(专利权)人:北京航天测控技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。