发明名称 |
可变目标的协议数据单元编解码代码自动生成的实现方法 |
摘要 |
本发明公开了一种可变目标的协议数据单元编解码代码自动生成的实现方法。首先需要编写目标平台特性描述文件,该文件描述特定目标平台的基本常规特性,接着,编写PDU描述文件,描述PDU内部元素的组成,系统自动分析PDU描述文件,并根据其内容生成与目标平台无关的抽象语法树,然后,系统遍历抽象语法树,并利用目标平台特性表生成与目标平台相关的数据字典;最后,编写代码模板库,生成针对特定目标平台的PDU编解码代码。使用该方法设计的系统,可以方便地生成支持各种目标平台的PDU编解码代码,特别是可以在不修改代码生成系统的情况下,由用户完全定制目标平台和生成代码的模板。 |
申请公布号 |
CN101841515A |
申请公布日期 |
2010.09.22 |
申请号 |
CN200910080458.1 |
申请日期 |
2009.03.19 |
申请人 |
北京理工大学 |
发明人 |
李海;张钦;郑哲;侯舒娟;吴嗣亮;孙昕 |
分类号 |
H04L29/06(2006.01)I;G06F9/44(2006.01)I |
主分类号 |
H04L29/06(2006.01)I |
代理机构 |
北京理工大学专利中心 11120 |
代理人 |
张利萍;李爱英 |
主权项 |
可变目标的协议数据单元编解码代码自动生成的实现方法,其特征在于:采用本发明设计的系统自动分析目标平台特性描述文件,并建立相应的目标平台特性表;本发明提供的方法进行代码自动生成:第1步:编写PDU描述文件,描述PDU内部元素的组成;第2步:系统自动分析PDU描述文件,并根据其内容生成与目标平台无关的抽象语法树;第3步:系统遍历第2步所产生的抽象语法树,并利用事先建立的目标平台特性表生成与目标平台相关的数据字典;整个遍历的过程可以分为以下几个子步骤:第3.1步:判断目标平台的SORT属性是否为TRUE,如果为TRUE则分析各类型定义的依赖关系,将不依赖于其他类型的类型定义排在前面,依赖其他类型的类型定义排在后面;如果SORT属性为FALSE,则忽略本步骤;第3.2步:遍历抽象语法树,检查每个节点的元素名和组合类型名的是否需要进行字符转换,如果需要,按照表中的REPLACENAME项定义的规则进行替换;第3.3步:遍历抽象语法树,检查每个节点的类型,使用目标平台类型表中的该节点类型所对应的类型定义、编码函数和解码函数来填充该节点所对应的字典中的item_type、item_encode和item_decode项;第3.4步:遍历抽象语法树,根据每个节点的属性生成字典项,每个基本元素节点对应一个字典,组合元素节点下的各子节点生成子字典;以上的第3.2、3.3和3.4步可以同时进行,也可以依照一定次序先后进行;第4步:编写代码模板库,该代码模板库在编解码代码中嵌入模板变量和模板函数;代码模板库通常和PDU编码规则有关;第5步:模板引擎利用第3步生成的数据字典替换第4步产生的代码模板库中的模板变量和模板函数,生成针对特定目标平台的PDU编解码代码;以上步骤中的第4步也可以在第1步之前完成。 |
地址 |
100081 北京市海淀区中关村南大街5号 |