CN102541614A - 基于代码分析的计算模块输入输出数据自动解析方法 - Google Patents

基于代码分析的计算模块输入输出数据自动解析方法 Download PDF

Info

Publication number
CN102541614A
CN102541614A CN2011104570689A CN201110457068A CN102541614A CN 102541614 A CN102541614 A CN 102541614A CN 2011104570689 A CN2011104570689 A CN 2011104570689A CN 201110457068 A CN201110457068 A CN 201110457068A CN 102541614 A CN102541614 A CN 102541614A
Authority
CN
China
Prior art keywords
computing module
constant
input
analyzer
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011104570689A
Other languages
English (en)
Other versions
CN102541614B (zh
Inventor
胡迪
闾国年
温永宁
盛业华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Panzhi Geographic Information Industry Research Institute Co., Ltd.
Original Assignee
Nanjing Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Normal University filed Critical Nanjing Normal University
Priority to CN201110457068.9A priority Critical patent/CN102541614B/zh
Publication of CN102541614A publication Critical patent/CN102541614A/zh
Application granted granted Critical
Publication of CN102541614B publication Critical patent/CN102541614B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开一种基于代码分析的计算模块输入输出数据自动解析方法,属于计算机和信息技术领域。针对计算模块输入输出数据说明手工编写繁琐和自动生成不够详细的问题,基于本发明提出的计算模块输入输出要素模型,包括过程、变量、常量和格式四种对象,针对不同的程序设计语言分别构造面向计算模块输入输出要素的词法分析器和语法分析器。以计算模块实例源代码为输入,利用面向计算模块输入输出要素的词法分析器和语法分析器对其进行词法分析和语法分析,自动生成输入输出数据说明,包括数据的名称、类型、结构和格式,输入输出类别、设备名称和位置。本发明主要用于计算模块的共享和重用,提高了计算模块输入输出数据说明编写的效率和信息粒度。

Description

基于代码分析的计算模块输入输出数据自动解析方法
技术领域
本发明属于计算机和信息技术领域,特别涉及计算模块输入输出数据解析的方法。
背景技术
随着计算机和信息技术的发展,各种程序设计语言不断出现、发展和更新,各行业根据该领域的特点,选用不同的语言,开发了大量的计算机程序或软件。其中,一些程序中关于数据处理和计算的部分或模块在行业领域较为基础和实用。虽然DCOM、CORBA、Web服务等分布式技术为计算模块的共享和重用提供了有效的技术,XML作为网络上通用的数据交换格式,为计算模块间的数据交换提供有效的方法。但是,计算模块的有效共享和正确运行的关键在于其输入输出数据的说明。由于计算模块本身输入输出数据的结构和格式各异,大多由模块编写者或发布者手工编写输入输出数据的说明,有的计算模块甚至没有任何说明。一些集成开发环境和工具,如Visual Studio、Eclipse,能够根据代码生成部分注释或说明,其缺点在于生成的注释或说明主要是函数或方法名称、输入输出数据名称及类型。当输入输出数据是复杂类型或文件时,并不涉及数据具体的结构和格式。从而,造成了大量计算模块的闲置、无法或难以共享和重用,相同或相近功能计算模块的重复开发。
词法分析和语法分析是编译过程的两个阶段,可以实现程序设计语言单词结构和语法结构的识别与处理。词法分析是指将字符序列转换为标记序列的过程。进行词法分析的程序或者函数叫做词法分析器。语法分析是指根据某种给定的形式文法对标记序列进行分析并确定其语法结构的过程。进行语法分析的程序或者函数叫做语法分析器。语法分析器通常使用一个独立的词法分析器从输入字符中分离出一个个标记,并将标记流作为其输入。实际应用中,词法分析器和语法分析器可以手工编写,也可以使用工具自动生成。其中,Lex类和Yacc类工具分别是词法分析器和语法分析器自动生成工具中应用最为广泛的工具。目前,尚未见到将词法分析和语法分析方法、技术应用到计算模块输入输出数据的结构和格式解析方面。
发明内容
为了解决当前计算模块共享和重用过程中,计算模块编写者或发布者手工编写输入输出数据说明繁琐、采用注释生成工具生成的计算模块输入输出数据说明不够详细,仅包括输入输出数据及其类型,而不包括输入输出数据的具体结构和格式的问题,本发明的目的是提供一种计算模块输入输出数据自动解析方法,该方法不仅能够自动解析、生成计算模块源代码中输入输出数据的说明,而且生成的输入输出数据说明包括数据的名称、类型、结构和格式信息,能够满足计算模块共享和重用过程中对输入输出数据说明的要求。
本发明解决其技术问题所采用的技术方案是:
基于代码分析的计算模块输入输出数据自动解析方法,包括以下两个阶段:
第一阶段,针对不同的程序设计语言分别构造面向计算模块输入输出要素的词法分析器和语法分析器;其中,计算模块输入输出要素模型包括过程、变量、常量和格式四种实体,过程实体包括名称、类型、父过程和子过程集合属性;变量和常量实体均包括名称、类型、维度、值和所在过程属性;格式实体包括格式项、项格式描述和控制格式描述属性;格式项为常量或变量,或者是两者的组合;
(1)面向计算模块输入输出要素的词法分析器构造,包括下列步骤:
a) 标记分类:基于所述计算模块输入输出要素模型,将计算模块采用的程序设计语言所涉及的字符分为标识符、整型常数、实型常数、数据类型关键字、控制结构关键字、文件操作关键字、读写操作关键字、数据格式描述符、控制格式描述符、注释、空白字符和其它字符;
b) 定义词法标记:根据计算模块程序设计语言的词法规则,将所述标识符、整型常数、实型常数、数据格式描述符、控制格式描述符、注释和空白字符分别定义为一种标记;将所述数据类型关键字、控制结构关键字、文件操作关键字和读写操作关键字,每个关键字定义为一种标记;
c) 对标记添加词法动作:对于语法分析有用的标记,包括标识符、整型常数、实型常数、数据类型关键字、控制结构关键字、文件操作关键字、读写操作关键字、数据格式描述符和控制格式描述符标记,记录并将标记值传递给语法分析器,返回标记类型;对语法分析无用的标记,包括注释、空白字符标记和其它字符作丢弃处理;
d) 根据上述词法标记及其词法动作,通过编程或词法分析器自动化生成工具的方式实现面向计算模块输入输出要素的词法分析器;
(2)面向计算模块输入输出要素的语法分析器构造,包括下列步骤:
i) 基于所述计算模块输入输出要素模型,找出计算模块输入输出要素相关语法结构,包括程序结构、变量定义语句、常量定义语句、循环结构、文件操作语句、读写操作语句和格式语句;
ii) 描述计算模块输入输出要素相关语法结构;
iii) 对计算模块输入输出要素相关语法结构添加语义动作:
在程序结构语法描述中,提取过程信息,包括名称和类型,将该过程加入过程表并设置为当前过程;
在变量定义语法描述中,提取变量信息,包括名称、类型和所在过程,将该变量加入变量表;
在常量定义语法描述中,提取常量信息,包括名称、类型和所在过程,将该常量加入常量表;
在循环结构语法描述中,在循环结构开始处,计算循环次数,设置循环计数器为循环次数,若循环次数为变量,则设置为自定义默认循环次数;在循环结构结束处,设置循环计数器为0;
在打开文件语句语法描述中,提取所打开文件的信息,包括文件名和路径,在指定目录创建同名文件,并设置该文件为当前文件;
在关闭文件语句语法描述中,设置当前文件为空;
在读操作语法描述中,提取当前读操作的设备、读操作实体列表、数据格式描述符和控制格式描述符;在变量表和常量表中查找读操作实体列表中的变量和常量,进行处理和重组织后,将读操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
在写操作语法描述中,提取当前写操作的设备、写操作实体列表、数据格式描述符和控制格式描述符;在变量表和常量表中查找写操作实体列表中的变量和常量,进行处理和重组织后,将写操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
iv) 根据上述计算模块输入输出要素相关语法结构的描述及其语义动作,通过编程或语法分析器自动化生成工具的方式实现语法分析器;
第二阶段,计算模块实例输入输出数据解析阶段:以所述计算模块实例源代码为输入,利用第一阶段构造的面向计算模块输入输出要素的词法分析器和语法分析器对其进行词法分析和语法分析,自动生成输入输出数据说明,具体步骤如下:
1) 根据计算模块实例所采用的程序设计语言,选择第一阶段中构造的相应语言的面向计算模块输入输出要素的词法分析器和语法分析器;如果没有相应语言的词法分析器和语法分析器,则重复第一阶段所有步骤;
2) 读取计算模块源代码文件到字符流中;
3) 创建词法分析器实例,以字符流作为输入;
4) 调用词法分析器实例词法分析操作,返回结果为标记流;
5) 创建语法分析器实例,以标记流为输入;
6) 调用语法分析器实例语法分析操作,返回结果为生成计算模块输入输出数据说明。
所述面向计算模块输入输出要素的词法分析器和语法分析器构造阶段和计算模块实例输入输出数据解析阶段是两个顺序、独立的过程;如果已经构造了或获取了计算模块实例所需的面向计算模块输入输出要素的词法分析器和语法分析器,则可跳过第一阶段,直接进入第二阶段。
本发明基于代码分析的计算模块的输入输出数据自动解析方法,所述面向计算模块输入输出要素的词法分析器和语法分析器,可以根据不同计算模块所采用的程序设计语言,设计适用于不同程序设计语言的词法分析器和语法分析器。因此,本发明基于代码分析的计算模块的输入输出数据自动解析方法,广泛适用于各种程序设计语言编写的计算模块。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1为本发明提出的计算模块输入输出要素模型图。
图2为本发明的计算模块输入输出数据自动解析方法的流程图。
具体实施方式
下面对本发明实例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供基于代码分析的计算模块输入输出数据自动解析方法,该方法提出的计算模块输入输出要素模型包括过程、变量、常量和格式四种实体,过程实体包括名称、类型、父过程和子过程集合属性;变量和常量实体均包括名称、类型、维度、值和所在过程属性;格式实体包括格式项、项格式描述和控制格式描述属性;格式项为常量或变量,或者是两者的组合,如图1所示。基于上述计算模块输入输出要素模型,本发明基于代码分析的计算模块输入输出数据自动解析方法包括两个阶段,如图2所示。本实施例计算模块采用Fortran语言编写,具体步骤包括:1、面向计算模块输入输出要素的词法分析器和语法分析器构造阶段:基于本发明提出的计算模块输入输出要素模型,针对该计算模块采用的程序设计语言Fortran分别构造面向计算模块输入输出要素的词法分析器和语法分析器;2、计算模块实例输入输出数据解析阶段:以计算模块源代码为输入,利用面向计算模块输入输出要素的词法分析器和语法分析器对其进行词法分析和语法分析,自动生成输入输出数据说明。在第一阶段中,本实施例采用Lex类工具自动生成词法分析器、Yacc类工具自动生成语法分析器。
本实施例计算模块实例源代码如下:
! Math Caculator
program MathCalc
       integer i
       integer number
       integer sum
       open(10,File='FileIO.txt')
       do i = 1, 10
              read(10,*) number
              sum = sum + number
       enddo
       close(100)
       write(*,*),sum
       write(*,'("sumResult",4XI2)'),sum
end program
       第一阶段:面向计算模块输入输出要素的词法分析器与语法分析器构造
       1、面向计算模块输入输出要素的词法分析器构造,包括下列步骤:
a) 标记分类:基于所述计算模块输入输出要素模型,将本实施例计算模块采用的程序设计语言Fortran中所涉及的字符分为标识符、整型常数、实型常数、数据类型关键字、控制结构关键字、文件操作关键字、读写操作关键字、数据格式描述符、控制格式描述符、注释、空白字符和其它字符;
       b) 定义词法标记:创建Lex词法文件,命名为LexFortran.lex。根据Fortran语言的语言规范,定义的词法标记包括标识符(identifier)、整型常数(int_const)、实型常数(real_const)、数据类型关键字(integer、real、character)、程序结构关键字(program、end)、控制结构关键字(do、enddo)、文件操作关键字(open、close)、读写操作关键字(read、write)、数据格式描述符(data_fmt_desc)、控制格式描述符(ctrl_fmt_desc)、注释(comment)和空白字符(whitespace)。将所述标记的定义按照Lex语法规范进行表达并保存到LexFortran.lex文件中。
下面是comment、whitespace、int_const、identifier和integer标记的定义
comment             ^!.*$
whitespace          \s
int_const             [0-9]+
identifier             [a-zA-Z_][a-zA-Z0-9_]*
integer                 integer
       c) 对标记添加词法动作:对于语法分析有用的标记,包括标识符(identifier)、整型常数(int_const)、实型常数(real_const)、数据类型关键字(integer、real、character)、程序结构关键字(program、end)、控制结构关键字(do、enddo)、文件操作关键字(open、close)、读写操作关键字(read、write)、数据格式描述符(data_fmt_desc)、控制格式描述符(ctrl_fmt_desc),将标记值yytext进行适当的类型转换,赋值给yylvalue,并返回标记枚举类型的整数代号;对语法分析无用的标记,包括注释(comment)、空白字符(whitespace)标记以及其它字符作丢弃处理。yytext是词法分析器中表示标记值的属性,yylvalue是在语法分析器中表示标记值的属性,标记枚举类型在Yacc源程序中进行定义。将所述标记的词法动作按Lex语法规范进行表达,添加到相应的词法标记处,并保存到LexFortran.lex文件中。
d) 采用支持C#语言的Lex类词法分析器自动生成工具,将Lex词法文件FortranLexer.lex自动生成面向计算模块输入输出要素的词法分析器FortranLexer。
2、面向计算模块输入输出要素的语法分析器构造,包括下列步骤:
       a) 基于所述计算模块输入输出要素模型,找出计算模块输入输出要素相关语法结构,包括程序结构、变量定义语句、常量定义语句、循环结构、文件操作语句、读写操作语句和格式语句;
       b) 定义语义值类型和标记枚举类型:
创建Yacc语法文件,命名为PGFortran.y;
       定义语义值类型为union类型,包括intValue、realValue和strValue元素;
定义标记枚举类型,包括INT_CONST、REAL_CONST、INTEGER、REAL、CHARACTER、PROGRAM、PROCESS、END、DO、ENDDO、IF、ENDIF、THEN、ELSE、OPEN、CLOSE、READ、WRITE、FILE、LP、RP、ASTERISK、COMMA、DOT、EQ、IDENTIFIER
将所述语义值类型和标记枚举类型的定义按照Yacc语法规范进行表达,添加到PGFortran.y文件的相应的部分,并进行保存;
       c) 描述计算模块输入输出要素相关语法结构:本实施例采用Yacc语法规范对计算模块实例中所涉及的计算模块输入输出要素相关语法结构进行描述,包括程序结构、变量定义语句、循环结构、文件操作语句、读写操作语句和格式语句;
       程序结构语法结构描述
excutable_program: /* empty */
       | excutable_program program_unit
       ;
program_unit: program_stmt program_part end_program_stmt
       ;
program_stmt: PROGRAM IDENTIFIER
       ;
end_program_stmt: END PROGRAM
       ;
program_part:      /* empty */
       | program_part declaration_part
       | program_part execution_part
       ;
变量定义语句语法结构描述
declaration_part:type_spec IDENTIFIER
       ;
type_spec: INTEGER | REAL | CHARACTER
       ;
循环结构语法结构描述
do_construct:do_stmt do_block end_do
       ;      
do_stmt: DO IDENTIFIER EQ INT_CONST COMMA INT_CONST
       ;
end_do: ENDDO
       ;      
do_block:     /* empty */
       | execution_part
       ;
       打开文件操作语句语法结构描述
open_stmt:OPEN LP INT_CONST COMMA FILE EQ file_name RP
       ;
file_name: IDENTIFIER DOT IDENTIFIER
       ;
关闭文件操作语句语法结构描述 
close_stmt:CLOSE LP INT_CONST RP 
       ;      
       读操作语句语法结构描述
read_stmt: READ LP INT_CONST COMMA ASTERISK RP IDENTIFIER
       ;
write_stmt: WRITE LP ASTERISK COMMA ASTERISK RP COMMA IDENTIFIER
       ;
       d) 对计算模块输入输出要素相关语法结构添加语义动作:
定义语义动作辅助类、辅助类实例、辅助变量,包括过程类Process、变量类Variable、过程实例列表processList、变量实例列表variableList、循环计数器loopTimes、当前程序currentProgram、当前文件currentFile、文件流实例fs和写入流实例sw;     过程类Process包括Name、Type、Parent和Children属性;变量类Variable包括Name、Type、Demension、HValue和LocProcess属性;
在程序结构语法描述中,嵌套语义动作,提取过程信息,包括名称和类型,实例化过程类并将其添加到过程实例列表processList中;设置当前过程实例currentProcess为此过程实例;
       在变量定义语句语法描述中,嵌套语义动作,提取变量信息,包括名称、类型、所在过程,实例化变量类并将其添加到变量实例列表variabelList中;
       在循环结构语法描述中,嵌套语语义动作,在循环结构开始处,计算循环次数,设置循环计数器loopTimes为循环次数,若循环次数为变量,则设置为自定义默认循环次数;在循环结构结束处,设置循环计数器loopTimes为0,即loopTimes=0;
       在打开文件语句语法描述中,嵌套语义动作,提取所打开文件的信息,包括文件名和路径,在指定目录创建同名文件,并设置当前文件currentFile为此文件;
       在关闭文件语句语法描述中,嵌套语义动作,设置当前文件currentFile为空,关闭文件流实例fs;
在读操作语法描述中,嵌套语义动作,提取当前读操作的设备、读操作实体列表、数据格式描述符和控制格式描述符;若读操作设备为键盘,则设置当前文件currentFile为标准输入设备stdin,即currentFile= "stdin";在变量实例列表variableList中查找读操作实体列表中的变量,进行处理和重组织后,将读操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
在写操作语法描述中,嵌套语义动作,提取当前写操作的设备、写操作实体列表、数据格式描述符和控制格式描述符;若写操作设备为键盘,则设置当前文件currentFile为标准输出设备stdout,即currentFile= "stdout";在变量实例列表variableList中查找写操作实体列表中的变量,进行处理和重组织后,将写操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
       d) 采用支持C#语言的Yacc类语法分析器自动生成工具,设置生成命令参数使语法分析器与词法分析器配合使用,将编写的Yacc语法文件PGFortran.y自动生成面向计算模块输入输出要素的语法分析器Parser;
       第二阶段:计算模块实例输入输出数据解析
本实施例采用C#语言编写一个控制台程序实现计算模块输入输出数据的自动解析,具体步骤为:
1、选择、采用本实施例第一阶段所构造的面向计算模块输入输出要素的词法分析器FortranLexer和语法分析器Parser;
       2、读取计算模块源代码文件到字符流file中;
       3、创建词法分析器实例scnr,以字符流file作为输入;
4、创建语法分析器实例parser;
5、设置语法分析器实例parser的扫描器属性Scanner为步骤3中创建的词法分析器实例scnr;
6、调用语法分析器实例parser的语法分析操作Parse,将在内部自动调用词法分析器实例scnr的词法分析操作yylex,最终返回结果为生成计算模块输入输出数据说明。

Claims (1)

1.基于代码分析的计算模块输入输出数据自动解析方法,其特征在于,包括以下两个阶段:
第一阶段,针对不同的程序设计语言分别构造面向计算模块输入输出要素的词法分析器和语法分析器;其中,计算模块输入输出要素模型包括过程、变量、常量和格式四种实体,过程实体包括名称、类型、父过程和子过程集合属性;变量和常量实体均包括名称、类型、维度、值和所在过程属性;格式实体包括格式项、项格式描述和控制格式描述属性;格式项为常量或变量,或者是两者的组合;
(1)面向计算模块输入输出要素的词法分析器构造,包括下列步骤:
a) 标记分类:基于所述计算模块输入输出要素模型,将计算模块采用的程序设计语言所涉及的字符分为标识符、整型常数、实型常数、数据类型关键字、控制结构关键字、文件操作关键字、读写操作关键字、数据格式描述符、控制格式描述符、注释、空白字符和其它字符;
    b) 定义词法标记:根据计算模块程序设计语言的词法规则,将所述标识符、整型常数、实型常数、数据格式描述符、控制格式描述符、注释和空白字符分别定义为一种标记;将所述数据类型关键字、控制结构关键字、文件操作关键字和读写操作关键字,每个关键字定义为一种标记;
    c) 对标记添加词法动作:对于语法分析有用的标记,包括标识符、整型常数、实型常数、数据类型关键字、控制结构关键字、文件操作关键字、读写操作关键字、数据格式描述符和控制格式描述符标记,记录并将标记值传递给语法分析器,返回标记类型;对语法分析无用的标记,包括注释、空白字符标记和其它字符作丢弃处理;
    d) 根据上述词法标记及其词法动作,通过编程或词法分析器自动化生成工具的方式实现面向计算模块输入输出要素的词法分析器;
(2)面向计算模块输入输出要素的语法分析器构造,包括下列步骤:
    i) 基于所述计算模块输入输出要素模型,找出计算模块输入输出要素相关语法结构,包括程序结构、变量定义语句、常量定义语句、循环结构、文件操作语句、读写操作语句和格式语句;
    ii) 描述计算模块输入输出要素相关语法结构;
    iii) 对计算模块输入输出要素相关语法结构添加语义动作:
    在程序结构语法描述中,提取过程信息,包括名称和类型,将该过程加入过程表并设置为当前过程;
    在变量定义语法描述中,提取变量信息,包括名称、类型和所在过程,将该变量加入变量表;
    在常量定义语法描述中,提取常量信息,包括名称、类型和所在过程,将该常量加入常量表;
    在循环结构语法描述中,在循环结构开始处,计算循环次数,设置循环计数器为循环次数,若循环次数为变量,则设置为自定义默认循环次数;在循环结构结束处,设置循环计数器为0;
    在打开文件语句语法描述中,提取所打开文件的信息,包括文件名和路径,在指定目录创建同名文件,并设置该文件为当前文件;
    在关闭文件语句语法描述中,设置当前文件为空;
    在读操作语法描述中,提取当前读操作的设备、读操作实体列表、数据格式描述符和控制格式描述符;在变量表和常量表中查找读操作实体列表中的变量和常量,进行处理和重组织后,将读操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
    在写操作语法描述中,提取当前写操作的设备、写操作实体列表、数据格式描述符和控制格式描述符;在变量表和常量表中查找写操作实体列表中的变量和常量,进行处理和重组织后,将写操作实体列表中的各个变量、常量的名称、类型、数据格式描述符和控制格式描述符,写入当前文件中;
    iv) 根据上述计算模块输入输出要素相关语法结构的描述及其语义动作,通过编程或语法分析器自动化生成工具的方式实现语法分析器;
第二阶段,计算模块实例输入输出数据解析阶段:以所述计算模块实例源代码为输入,利用第一阶段构造的面向计算模块输入输出要素的词法分析器和语法分析器对其进行词法分析和语法分析,自动生成输入输出数据说明,具体步骤如下:
1) 根据计算模块实例所采用的程序设计语言,选择第一阶段中构造的相应语言的面向计算模块输入输出要素的词法分析器和语法分析器;如果没有相应语言的词法分析器和语法分析器,则重复第一阶段所有步骤;
2) 读取计算模块源代码文件到字符流中;
3) 创建词法分析器实例,以所述字符流作为输入;
4) 调用词法分析器实例词法分析操作,返回结果为标记流;
5) 创建语法分析器实例,以所述标记流为输入;
6) 调用语法分析器实例语法分析操作,返回结果为生成计算模块输入输出数据说明。
CN201110457068.9A 2011-12-31 2011-12-31 基于代码分析的计算模块输入输出数据自动解析方法 Active CN102541614B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110457068.9A CN102541614B (zh) 2011-12-31 2011-12-31 基于代码分析的计算模块输入输出数据自动解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110457068.9A CN102541614B (zh) 2011-12-31 2011-12-31 基于代码分析的计算模块输入输出数据自动解析方法

Publications (2)

Publication Number Publication Date
CN102541614A true CN102541614A (zh) 2012-07-04
CN102541614B CN102541614B (zh) 2014-05-28

Family

ID=46348581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110457068.9A Active CN102541614B (zh) 2011-12-31 2011-12-31 基于代码分析的计算模块输入输出数据自动解析方法

Country Status (1)

Country Link
CN (1) CN102541614B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981836A (zh) * 2012-11-06 2013-03-20 无锡江南计算技术研究所 异构系统的编译方法和编译器
CN103077064A (zh) * 2012-12-31 2013-05-01 北京配天大富精密机械有限公司 一种解析并执行程序语言方法及解释装置
CN104267967A (zh) * 2014-10-15 2015-01-07 北京国双科技有限公司 软件的程序代码的生成方法及装置
CN109284088A (zh) * 2018-08-02 2019-01-29 北京天元创新科技有限公司 一种信令大数据处理方法及电子设备
CN112560038A (zh) * 2020-12-24 2021-03-26 深信服科技股份有限公司 一种数据解析方法、装置、设备及计算机可读存储介质
CN116643734A (zh) * 2023-07-27 2023-08-25 北京云庐科技有限公司 多物理场的机器可执行有限元程序代码的生成方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
US20100125836A1 (en) * 2008-11-20 2010-05-20 Ali Sazegari Compiling techniques for providing limited accuracy and enhanced performance granularity
CN102222004A (zh) * 2011-07-01 2011-10-19 福建富士通信息软件有限公司 交换机专用语言转换为c语言的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
US20100125836A1 (en) * 2008-11-20 2010-05-20 Ali Sazegari Compiling techniques for providing limited accuracy and enhanced performance granularity
CN102222004A (zh) * 2011-07-01 2011-10-19 福建富士通信息软件有限公司 交换机专用语言转换为c语言的方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981836A (zh) * 2012-11-06 2013-03-20 无锡江南计算技术研究所 异构系统的编译方法和编译器
CN102981836B (zh) * 2012-11-06 2015-08-12 无锡江南计算技术研究所 异构系统的编译方法和编译器
CN103077064A (zh) * 2012-12-31 2013-05-01 北京配天大富精密机械有限公司 一种解析并执行程序语言方法及解释装置
CN103077064B (zh) * 2012-12-31 2016-03-02 北京配天技术有限公司 一种解析并执行程序语言方法及解释装置
CN104267967A (zh) * 2014-10-15 2015-01-07 北京国双科技有限公司 软件的程序代码的生成方法及装置
CN104267967B (zh) * 2014-10-15 2018-06-26 北京国双科技有限公司 软件的程序代码的生成方法及装置
CN109284088A (zh) * 2018-08-02 2019-01-29 北京天元创新科技有限公司 一种信令大数据处理方法及电子设备
CN109284088B (zh) * 2018-08-02 2022-04-26 北京天元创新科技有限公司 一种信令大数据处理方法及电子设备
CN112560038A (zh) * 2020-12-24 2021-03-26 深信服科技股份有限公司 一种数据解析方法、装置、设备及计算机可读存储介质
CN116643734A (zh) * 2023-07-27 2023-08-25 北京云庐科技有限公司 多物理场的机器可执行有限元程序代码的生成方法和系统

Also Published As

Publication number Publication date
CN102541614B (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
Lämmel et al. Semi‐automatic grammar recovery
Van den Brand et al. Generation of components for software renovation factories from context-free grammars
CN102541614B (zh) 基于代码分析的计算模块输入输出数据自动解析方法
Marcotty et al. The world of programming languages
Combemale et al. Concern-oriented language development (COLD): Fostering reuse in language engineering
CN104267654A (zh) 梯形图程序转换成指令表程序及其编译的方法与系统
CN102289593A (zh) 多学科虚拟实验交互式仿真解算系统
Aiken et al. A toolkit for constructing type-and constraint-based program analyses
Burke et al. Translating formal software specifications to natural language: a grammar-based approach
Fischer et al. Abstract syntax trees-and their role in model driven software development
Barnier et al. FaCiLe: a functional constraint library
Cunningham et al. Experience using GATE for NLP R&D
Lapierre et al. Datrix™ source code model and its interchange format: lessons learned and considerations for future work
JP6982920B1 (ja) ソースコード変換装置、及びプログラム
Akers et al. Case study: Re-engineering C++ component models via automatic program transformation
Ohtsuki et al. A source code generation support system using design pattern documents based on sgml
Dennis General parallel computation can be performed with a cycle-free heap
CN109597624A (zh) 一种sql格式化的方法
Muhammad et al. Automatic model translation to UML from software product lines model using UML profile
Chaudhary et al. Intelligent virtual research environment for natural language processing (IvrE-NLP)
Jourdan et al. Application development with the FNC-2 attribute grammar system
CN101916179A (zh) 控制寄存器中的标志位的存取方法
Loveman The DEC High Performance Fortran 90 Compiler Front End
Sow et al. Parsing Fortran-77 with proprietary extensions
Agrawal et al. Model based software engineering, graph grammars and graph transformations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190312

Address after: 210023 No. 18 Lingshan North Road, Qixia District, Nanjing City, Jiangsu Province, 4 Blocks 102

Patentee after: Nanjing Panzhi Geographic Information Industry Research Institute Co., Ltd.

Address before: No. 1 Wenyuan Road, Qixia District, Nanjing City, Jiangsu Province

Patentee before: Nanjing Normal University