[发明专利]基于代码分析的计算模块输入输出数据自动解析方法有效
申请号: | 201110457068.9 | 申请日: | 2011-12-31 |
公开(公告)号: | CN102541614A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 胡迪;闾国年;温永宁;盛业华 | 申请(专利权)人: | 南京师范大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
地址: | 210046 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 代码 分析 计算 模块 输入输出 数据 自动 解析 方法 | ||
1.基于代码分析的计算模块输入输出数据自动解析方法,其特征在于,包括以下两个阶段:
第一阶段,针对不同的程序设计语言分别构造面向计算模块输入输出要素的词法分析器和语法分析器;其中,计算模块输入输出要素模型包括过程、变量、常量和格式四种实体,过程实体包括名称、类型、父过程和子过程集合属性;变量和常量实体均包括名称、类型、维度、值和所在过程属性;格式实体包括格式项、项格式描述和控制格式描述属性;格式项为常量或变量,或者是两者的组合;
(1)面向计算模块输入输出要素的词法分析器构造,包括下列步骤:
a) 标记分类:基于所述计算模块输入输出要素模型,将计算模块采用的程序设计语言所涉及的字符分为标识符、整型常数、实型常数、数据类型关键字、控制结构关键字、文件操作关键字、读写操作关键字、数据格式描述符、控制格式描述符、注释、空白字符和其它字符;
b) 定义词法标记:根据计算模块程序设计语言的词法规则,将所述标识符、整型常数、实型常数、数据格式描述符、控制格式描述符、注释和空白字符分别定义为一种标记;将所述数据类型关键字、控制结构关键字、文件操作关键字和读写操作关键字,每个关键字定义为一种标记;
c) 对标记添加词法动作:对于语法分析有用的标记,包括标识符、整型常数、实型常数、数据类型关键字、控制结构关键字、文件操作关键字、读写操作关键字、数据格式描述符和控制格式描述符标记,记录并将标记值传递给语法分析器,返回标记类型;对语法分析无用的标记,包括注释、空白字符标记和其它字符作丢弃处理;
d) 根据上述词法标记及其词法动作,通过编程或词法分析器自动化生成工具的方式实现面向计算模块输入输出要素的词法分析器;
(2)面向计算模块输入输出要素的语法分析器构造,包括下列步骤:
i) 基于所述计算模块输入输出要素模型,找出计算模块输入输出要素相关语法结构,包括程序结构、变量定义语句、常量定义语句、循环结构、文件操作语句、读写操作语句和格式语句;
ii) 描述计算模块输入输出要素相关语法结构;
iii) 对计算模块输入输出要素相关语法结构添加语义动作:
在程序结构语法描述中,提取过程信息,包括名称和类型,将该过程加入过程表并设置为当前过程;
在变量定义语法描述中,提取变量信息,包括名称、类型和所在过程,将该变量加入变量表;
在常量定义语法描述中,提取常量信息,包括名称、类型和所在过程,将该常量加入常量表;
在循环结构语法描述中,在循环结构开始处,计算循环次数,设置循环计数器为循环次数,若循环次数为变量,则设置为自定义默认循环次数;在循环结构结束处,设置循环计数器为0;
在打开文件语句语法描述中,提取所打开文件的信息,包括文件名和路径,在指定目录创建同名文件,并设置该文件为当前文件;
在关闭文件语句语法描述中,设置当前文件为空;
在读操作语法描述中,提取当前读操作的设备、读操作实体列表、数据格式描述符和控制格式描述符;在变量表和常量表中查找读操作实体列表中的变量和常量,进行处理和重组织后,将读操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
在写操作语法描述中,提取当前写操作的设备、写操作实体列表、数据格式描述符和控制格式描述符;在变量表和常量表中查找写操作实体列表中的变量和常量,进行处理和重组织后,将写操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
iv) 根据上述计算模块输入输出要素相关语法结构的描述及其语义动作,通过编程或语法分析器自动化生成工具的方式实现语法分析器;
第二阶段,计算模块实例输入输出数据解析阶段:以所述计算模块实例源代码为输入,利用第一阶段构造的面向计算模块输入输出要素的词法分析器和语法分析器对其进行词法分析和语法分析,自动生成输入输出数据说明,具体步骤如下:
1) 根据计算模块实例所采用的程序设计语言,选择第一阶段中构造的相应语言的面向计算模块输入输出要素的词法分析器和语法分析器;如果没有相应语言的词法分析器和语法分析器,则重复第一阶段所有步骤;
2) 读取计算模块源代码文件到字符流中;
3) 创建词法分析器实例,以所述字符流作为输入;
4) 调用词法分析器实例词法分析操作,返回结果为标记流;
5) 创建语法分析器实例,以所述标记流为输入;
6) 调用语法分析器实例语法分析操作,返回结果为生成计算模块输入输出数据说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京师范大学,未经南京师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110457068.9/1.html,转载请声明来源钻瓜专利网。