CN103186377A - 代码智能生成系统及方法 - Google Patents
代码智能生成系统及方法 Download PDFInfo
- Publication number
- CN103186377A CN103186377A CN201110456009XA CN201110456009A CN103186377A CN 103186377 A CN103186377 A CN 103186377A CN 201110456009X A CN201110456009X A CN 201110456009XA CN 201110456009 A CN201110456009 A CN 201110456009A CN 103186377 A CN103186377 A CN 103186377A
- Authority
- CN
- China
- Prior art keywords
- variable
- user
- name
- grand
- macro
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种代码智能生成方法。该方法通过用户在宏界面内添加变量以及为变量指定数据类型,调用指定目录下的功能函数,智能输出符合预定语法规则的语言代码。本发明还提供一种代码智能生成系统。使用该系统及方法可以避免因用户不懂代码而导致的出错。
Description
技术领域
本发明涉及一种智能编程系统及方法,尤其是关于一种代码智能生成系统及方法。
背景技术
在执行工件量测作业时,量测人员往往需要对较多工件进行量测,手动量测浪费工时,而且量测误差偏大。利用量测软件量测较多种工件时,通常需要使用编辑器内学习模式下记录的操作代码。然而,这些操作代码不能满足所有量测人员的量测需求,大多时候还是需要量测人员手动编写代码。例如:针对量测数据分析时,需要编写符合VB规则的语言代码,但不是所有的量测人员都懂得VB语言,不精通此语言的量测人员在编辑代码的时候效率慢且易出错。
发明内容
鉴于以上内容,有必要提出一种代码智能生成系统及方法,其可以智能地生成符合预定语言规则的量测代码。
所述的代码智能生成方法运行于一个数据处理装置中。该数据处理装置包括一个量测软件。该量测软件包括一个脚本编辑器。所述脚本编辑器的宏选项被选择时,弹出一个宏界面。所述数据处理装置的一个指定目录下或者一个宏文件夹内包含多个功能函数。该方法包括:初始化宏界面内的数据类型列表及宏名称列表,将所有的数据类型导入到所述数据类型列表中,及将所述数据处理装置中指定目录下或者宏文件夹内的所有功能函数的名称导入到宏名称列表中;接收用户于宏界面内输入的变量名称;接收用户在宏界面内选择或者输入的数据类型;当用户输入的变量名称或者数据类型符合预定的语法规则时,根据用户输入的变量名称及数据类型生成一条或者多条变量声明,并将所有的变量名称添加到宏界面的宏结果列表中;接收用户从宏名称列表中选择的功能函数及从宏结果列表中指定的变量名称;生成赋予结果的功能函数;接收用户于变量声明中选择的需要添加到上述功能函数中的变量;从所述数据处理装置的指定目录下或者宏文件夹内调用上述功能函数,执行该功能函数,并输出执行结果;及根据上述所有的操作生成脚本程序,并显示在脚本编辑器。
所述的代码智能生成系统运行于一个数据处理装置中。该数据处理装置包括一个量测软件。该量测软件包括一个脚本编辑器。所述脚本编辑器的宏选项被选择时,弹出一个宏界面。所述数据处理装置的一个指定目录下或者一个宏文件夹内包含多个功能函数。该代码智能生成系统包括:初始化模块,用于初始化宏界面内的数据类型列表及宏名称列表,将所有的数据类型导入到所述数据类型列表中,及将所述数据处理装置中指定目录下或者宏文件夹内的所有功能函数的名称导入到宏名称列表中;接收模块,用于接收用户于宏界面内输入的变量名称;所述接收模块还用于接收用户在宏界面内选择或者输入的数据类型;生成模块,用于当用户输入的变量名称或者数据类型符合预定的语法规则时,根据用户输入的变量名称及数据类型生成一条或者多条变量声明,并将所有的变量名称添加到宏界面的宏结果列表中;上述接收模块还用于接收用户从宏名称列表中选择的功能函数及从宏结果列表中指定的变量名称;上述生成模块还用于生成赋予结果的功能函数;上述接收模块还用于接收用户于变量声明中选择的需要添加到上述功能函数中的变量;执行模块,用于执行模块从所述数据处理装置的指定目录下或者宏文件夹内调用上述功能函数,执行该功能函数,并输出执行结果;及上述执行模块还用于根据上述所有的操作生成脚本程序,并显示在脚本编辑器。
相较于现有技术,本发明所提供的代码智能生成系统及方法只需用户添加变量以及为变量指定数据类型,调用指定目录下的宏,就能智能生成符合预定语言规则的量测代码,避免因不懂语言规则而出现的错误。
附图说明
图1是本发明代码智能生成系统较佳实施例的应用环境图。
图2是本发明代码智能生成系统较佳实施例的功能模块图。
图3A与图3B是本发明代码智能生成方法较佳实施例的方法流程图。
图4演示了一个宏界面的示意图。
主要元件符号说明
数据处理装置 | 1 |
量测软件 | 2 |
脚本编辑器 | 20 |
代码智能生成系统 | 21 |
处理单元 | 3 |
存储单元 | 4 |
初始化模块 | 210 |
接收模块 | 211 |
判断模块 | 212 |
生成模块 | 213 |
执行模块 | 214 |
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
参阅图1所示,是本发明代码智能生成系统较佳实施例的应用环境图。该代码智能生成系统21应用于量测软件2的脚本编辑器(Script Editor)20中。所述量测软件2安装在一台数据处理装置1中,如计算机、服务器等。该数据处理装置1还包括处理单元3及存储单元4等其他元件。
所述代码智能生成系统21包括由程序化代码组成的各个功能模块(详见图2),用于根据用户输入的变量以及为变量指定数据类型,在指定目录下调用的宏,智能生成符合预定语言规则的量测代码。
处理单元3用于执行所述代码智能生成系统21的程序化代码,提供代码智能生成系统21的各功能(详见图3中描述)。
存储单元4用于存储所述代码智能生成系统21的程序化代码。该存储单元4可以为智能媒体卡(smart mediac ard)、安全数字卡(secure digital card)、快闪存储器卡(flash card)等储存设备。
参阅图2所示,是本发明代码智能生成系统21较佳实施例的功能模块图。该代码智能生成系统21包括初始化模块210、接收模块211、判断模块212、生成模块213、及执行模块214。以下结合图3A与图3B说明功能模块210~214的各功能。
参阅图3A与图3B所示,是本发明代码智能生成方法较佳实施例的方法流程图。根据不同的需求,该3A与图3B所示流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S10,在数据处理装置1中运行量测软件2。
步骤S11,量测软件2的脚本编辑器20被开启。
步骤S12,用户在脚本编辑器20内编写一段常用的功能函数,将该功能函数保存为.bas格式,并将该.bas格式的函数存储到数据处理装置1中的指定目录或者一个Macro(宏)文件夹内。所述的功能函数也可以称为宏,是一段可执行某种功能,如计算长度,测量角度等的程序段。例如,某一功能函数kk可以是:
Function kk(a As Integer,b As Integer)As Integer;
Return a+b;
End Function。
步骤S13,用户判断是否还有其他功能函数需要编写。若判断结果为是,则流程返回上述的步骤S11。否则,若判断结果为否,则流程执行下述的步骤S14。
这里需要说明书的是,存储在指定目录或者Macro文件夹内的各个功能函数可供以后多次调用。因此,当用户所需要的功能函数都已经存储在所述指定目录或者Macro文件夹内时,图3A中的步骤S11至步骤S13可以省略。
步骤S14,量测软件2的脚本编辑器20被开启。
步骤S15,脚本编辑器20中的宏选项被选择,并弹出宏界面,如图4所示。
步骤S16,初始化模块210初始化宏界面内的数据类型列表及宏名称列表。本实施例中,所述初始化是指将所有可能的数据类型导入到该数据类型列表中,及将所述数据处理装置1中指定目录下或者Macro文件夹内的所有功能函数的名称导入到宏名称列表中。所述数据类型可以包括整型(Integer)、长整型(Long)、单精度浮点型(Single)、双精度浮点型(Double)等。
在步骤S17,接收模块211接收用户于宏界面内输入的变量名称。例如,所述变量名称可以是变量a、b、或者c等。
步骤S18,接收模块211接收用户在宏界面内选择或者输入的数据类型。如上所述,初始化模块210已经将所有可能的数据类型导入到该宏界面内的数据类型列表中,因此,用户可以从数据类型列表中选择所需要的数据类型。然而,若数据类型列表中没有所需要的数据类型,则用户可以手动输入其所需要的数据类型。若用户选择或者输入的数据类型为整型(Integer),则表示变量a、b、或者c为整型(Integer)。
步骤S19,接收模块211根据用户的操作判断是否还有其他变量需要输入。当用户在该宏界面内输入了另一个变量名称时,则接收模块211判断还有其他变量需要输入,则流程返回上述的步骤S17。否则,若用户没有在该宏界面内输入另一个变量名称,则接收模块211判断没有其他变量需要输入,则流程执行下述的步骤S20。
在步骤S20中,判断模块212判断上述用户输入的变量名称或者数据类型是否符合预定的语法规则。例如,若上述功能函数都是以VB语言编写,则判断模块212判断上述用户输入的变量名称或者数据类型是否符合VB语法规则。若不符合预定的语法规则,则执行步骤S21,判断模块212生成一个错误提示对话框,以提示错误。步骤S21之后返回上述的步骤S17。否则,若符合预定的语法规则,则流程执行下述的步骤S22。
在步骤S22中,生成模块213根据用户输入的变量名称及数据类型生成一条或者多条变量声明,并将所有的变量名称添加到宏界面的宏结果列表中。应该可以理解,一个变量声明对应一个变量。该变量声明包括如下格式:Dim_变量名称_As_数据类型,如,Dim_a_As_Integer;Dim_b_As_Integer;Dim_c_As_Integer等。
步骤S23,接收模块211接收用户从宏名称列表中选择的功能函数及从宏结果列表中指定的变量名称。例如,用户可以从宏名称列表中选择功能函数“kk”,及从宏结果列表中指定变量名称为c。
步骤S24,生成模块213生成赋予结果的功能函数,如c=LoadMacro(“kk”)。
步骤S25,接收模块211接收用户于变量声明中选择的需要添加到上述功能函数中的变量,如选择Dim_a_As_Integer及Dim_b_As_Integer。
步骤S26,执行模块214从所述数据处理装置1的指定目录下或者Macro文件夹内调用上述功能函数,执行该功能函数,并输出执行结果。其中,若上述功能函数可以执行计算长度的功能,则输出的执行结果为所计算出来的长度。若上述功能函数可以执行测量角度的功能,则输出的执行结果为所测量出来的角度。
步骤S27,生成模块213根据上述所有的操作生成脚本程序,并显示在脚本编辑器20中。该脚本程序包括上述用户输入的变量名称、数据类型,所调用的功能函数等。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种代码智能生成方法,运行于一个数据处理装置中,该数据处理装置包括一个量测软件,该量测软件包括一个脚本编辑器,所述脚本编辑器的宏选项被选择时,弹出一个宏界面,其特征在于,所述数据处理装置的一个指定目录下或者一个宏文件夹内包含多个功能函数,及该方法包括:
初始化宏界面内的数据类型列表及宏名称列表,将所有的数据类型导入到所述数据类型列表中,及将所述数据处理装置中指定目录下或者宏文件夹内的所有功能函数的名称导入到宏名称列表中;
接收用户于宏界面内输入的变量名称;
接收用户在宏界面内选择或者输入的数据类型;
当用户输入的变量名称或者数据类型符合预定的语法规则时,根据用户输入的变量名称及数据类型生成一条或者多条变量声明,并将所有的变量名称添加到宏界面的宏结果列表中;
接收用户从宏名称列表中选择的功能函数及从宏结果列表中指定的变量名称;
生成赋予结果的功能函数;
接收用户于变量声明中选择的需要添加到上述功能函数中的变量;
从所述数据处理装置的指定目录下或者宏文件夹内调用上述功能函数,执行该功能函数,并输出执行结果;及
根据上述所有的操作生成脚本程序,并显示在脚本编辑器。
2.如权利要求1所述的代码智能生成方法,其特征在于,该方法还包括:
当用户输入的变量名称或者数据类型不符合预定的语法规则时,给出错误提示。
3.如权利要求1所述的代码智能生成方法,其特征在于,所述预定的语法规则为VB语法规则。
4.如权利要求1所述的代码智能生成方法,其特征在于,所述变量声明包括如下格式:Dim_变量名称_As_数据类型。
5.如权利要求1所述的代码智能生成方法,其特征在于,所述脚本程序包括用户所输入的变量名称、数据类型,及所调用的功能函数。
6.一种代码智能生成系统,运行于一个数据处理装置中,该数据处理装置包括一个量测软件,该量测软件包括一个脚本编辑器,所述脚本编辑器的宏选项被选择时,弹出一个宏界面,其特征在于,所述数据处理装置的一个指定目录下或者一个宏文件夹内包含多个功能函数,及该代码智能生成系统包括:
初始化模块,用于初始化宏界面内的数据类型列表及宏名称列表,将所有的数据类型导入到所述数据类型列表中,及将所述数据处理装置中指定目录下或者宏文件夹内的所有功能函数的名称导入到宏名称列表中;
接收模块,用于接收用户于宏界面内输入的变量名称;
所述接收模块还用于接收用户在宏界面内选择或者输入的数据类型;
生成模块,用于当用户输入的变量名称或者数据类型符合预定的语法规则时,根据用户输入的变量名称及数据类型生成一条或者多条变量声明,并将所有的变量名称添加到宏界面的宏结果列表中;
上述接收模块还用于接收用户从宏名称列表中选择的功能函数及从宏结果列表中指定的变量名称;
上述生成模块还用于生成赋予结果的功能函数;
上述接收模块还用于接收用户于变量声明中选择的需要添加到上述功能函数中的变量;
执行模块,用于执行模块从所述数据处理装置的指定目录下或者宏文件夹内调用上述功能函数,执行该功能函数,并输出执行结果;及
上述执行模块还用于根据上述所有的操作生成脚本程序,并显示在脚本编辑器。
7.如权利要求6所述的代码智能生成系统,其特征在于,该系统还包括:
判断模块,用于判断上述用户输入的变量名称或者数据类型是否符合预定的语法规则,及当用户输入的变量名称或者数据类型不符合预定的语法规则时,给出错误提示。
8.如权利要求6所述的代码智能生成系统,其特征在于,所述预定的语法规则为VB语法规则。
9.如权利要求6所述的代码智能生成系统,其特征在于,所述变量声明包括如下格式:Dim_变量名称_As_数据类型。
10.如权利要求6所述的代码智能生成系统,其特征在于,所述脚本程序包括用户所输入的变量名称、数据类型,及所调用的功能函数。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456009XA CN103186377A (zh) | 2011-12-30 | 2011-12-30 | 代码智能生成系统及方法 |
TW101101016A TW201327211A (zh) | 2011-12-30 | 2012-01-11 | 代碼智慧生成系統及方法 |
US13/670,456 US20130174119A1 (en) | 2011-12-30 | 2012-11-07 | Computing device and method for automatically generating measuring programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110456009XA CN103186377A (zh) | 2011-12-30 | 2011-12-30 | 代码智能生成系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103186377A true CN103186377A (zh) | 2013-07-03 |
Family
ID=48677556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110456009XA Pending CN103186377A (zh) | 2011-12-30 | 2011-12-30 | 代码智能生成系统及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130174119A1 (zh) |
CN (1) | CN103186377A (zh) |
TW (1) | TW201327211A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857679A (zh) * | 2019-04-29 | 2020-10-30 | 西门子(中国)有限公司 | 用于生成脚本程序的方法、装置及脚本程序处理系统 |
CN112764731A (zh) * | 2021-01-19 | 2021-05-07 | 上海擎昆信息科技有限公司 | 一种软件接口维护方法、系统、计算机设备及存储介质 |
CN112764731B (zh) * | 2021-01-19 | 2024-07-05 | 上海擎昆信息科技有限公司 | 一种软件接口维护方法、系统、计算机设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677313B2 (en) * | 2009-11-30 | 2014-03-18 | Accenture Global Services Limited | Functional design creation tool |
CN103645907B (zh) * | 2013-11-29 | 2016-12-07 | 广州视源电子科技股份有限公司 | 历史需求编译方法以及历史需求编译器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6608623B1 (en) * | 1999-05-24 | 2003-08-19 | Parametric Technology Corporation | Feature-based macro language for definition of customized analytic and customized geometric functionality |
US20070266015A1 (en) * | 2006-05-12 | 2007-11-15 | Microsoft Corporation | User Created Search Vertical Control of User Interface |
US8316314B2 (en) * | 2010-06-30 | 2012-11-20 | Thermo Electron Scientific Instruments Llc | Intelligent multi-functional macros language for analytical measurements |
-
2011
- 2011-12-30 CN CN201110456009XA patent/CN103186377A/zh active Pending
-
2012
- 2012-01-11 TW TW101101016A patent/TW201327211A/zh unknown
- 2012-11-07 US US13/670,456 patent/US20130174119A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857679A (zh) * | 2019-04-29 | 2020-10-30 | 西门子(中国)有限公司 | 用于生成脚本程序的方法、装置及脚本程序处理系统 |
CN111857679B (zh) * | 2019-04-29 | 2024-03-15 | 西门子(中国)有限公司 | 用于生成脚本程序的方法、装置及脚本程序处理系统 |
CN112764731A (zh) * | 2021-01-19 | 2021-05-07 | 上海擎昆信息科技有限公司 | 一种软件接口维护方法、系统、计算机设备及存储介质 |
CN112764731B (zh) * | 2021-01-19 | 2024-07-05 | 上海擎昆信息科技有限公司 | 一种软件接口维护方法、系统、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW201327211A (zh) | 2013-07-01 |
US20130174119A1 (en) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mitschele-Thiel | Systems Engineering with SDL: Developing Performance-Critical Communication | |
CN110990019B (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
CN102375778A (zh) | 实现数字信号处理器自动测试的方法及系统 | |
CN102567193A (zh) | 测试用例转化为自动化测试脚本的方法及系统 | |
JP2014186407A (ja) | テストケース生成方法、テストケース生成装置およびプログラム | |
CN101251800A (zh) | 图形用户界面生成方法及装置 | |
CN112395253B (zh) | 索引文件生成方法、终端设备、电子设备及介质 | |
CN109446753A (zh) | 检测盗版应用程序的方法、装置、计算机设备及存储介质 | |
CN104375934A (zh) | 一种Android手机软件可靠性测试方法 | |
CN110888756A (zh) | 一种诊断日志生成方法及装置 | |
CN101373406A (zh) | 带扩展功能的输入方法及其系统 | |
CN110531985A (zh) | Sdk初始化方法及系统、电子设备、存储介质 | |
CN103544298A (zh) | 组件的日志分析方法和分析装置 | |
CN103186377A (zh) | 代码智能生成系统及方法 | |
CN107797996B (zh) | 一种词条翻译方法及装置 | |
US20190087160A1 (en) | System and method for creating domain specific language | |
CN106649210A (zh) | 一种数据转换方法及装置 | |
Liberti et al. | A good recipe for solving MINLPs | |
CN111427582B (zh) | Rtl代码的管理方法、装置、设备及计算机可读存储介质 | |
CN116595967A (zh) | 一种基于文本的自然语言规则编写方法及相关装置 | |
CN113805861B (zh) | 基于机器学习的代码生成方法、代码编辑系统及存储介质 | |
CN104375993A (zh) | 一种数据处理的方法及装置 | |
CN104199689A (zh) | 综合前端系统的安装方法及装置 | |
CN110597536B (zh) | 一种软件升级方法、系统及终端设备 | |
CN105243022B (zh) | 主机应用软件系统的性能数据分析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130703 |