CN110908668A - 用于编译电池检测系统脚本程序的编译器 - Google Patents
用于编译电池检测系统脚本程序的编译器 Download PDFInfo
- Publication number
- CN110908668A CN110908668A CN201911148877.4A CN201911148877A CN110908668A CN 110908668 A CN110908668 A CN 110908668A CN 201911148877 A CN201911148877 A CN 201911148877A CN 110908668 A CN110908668 A CN 110908668A
- Authority
- CN
- China
- Prior art keywords
- battery detection
- script program
- compiler
- compiling
- program
- 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/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种用于编译电池检测系统脚本程序的编译器,包括词法分析器、语法分析器、语义分析器、中间代码生成器、目标代码生成器,本发明的有益效果在于:通过编写脚本程序的方式自定义电池测试的方法及参数,利用本发明提供的编译器将脚本程序编译成设备可执行的目标程序,再加载到设备中运行,完成测试,从而提高电池检测系统的灵活性,实现更多更复杂的功能;同时修改或增加测试方法时无需生产厂商对系统进行修改,减少大量的时间和维护成本;保护了用户的技术、工艺、参数等。
Description
【技术领域】
本发明涉及一种电池检测技术领域/计算机领域,尤其涉及一种用于编译电池检测系统脚本程序的编译器。
【背景技术】
随着科学技术的发展,信息和微电子工业的迅猛发展带来的大量民用、工业用、医疗用等便携式电子产品的问世,电动自行车和新能源汽车研制和开发,人们对更安全、大容量、小体积、重量轻、无污染的电池需求更加迫切。国内外针对电池性能检测的系统层出不穷,电池的性能指标主要有电压、容量、内阻、能量、功率、输出效率、自放电率、使用寿命等,检测电池性能指标对电池研究有着不可忽视的作用。一般电池检测系统是预先在上位机软件上设置好电池测试的若干方法和参数,测试设备同时进行对应的方法及参数识别和执行,用户在上位机软件上选择预置的方法的组合,修改测试参数,再下发到设备中执行,从而完成电池测试。但是测试方法及参数是预置好的,用户无法自行修改,无法扩展测试方法,有很大的局限性。当用户需要添加新的功能时,需要向设备厂商提出需求,厂商再根据需求评估,重新修改或增加新的功能,到调试、发布,期间需要花费大量的时间、人力和物力。
【发明内容】
本发明的目的在于解决目前电池检测系统是预先在上位机软件上预置好电池测试的若干方法和参数,用户无法自行修改,无法扩展测试方法,有很大的局限性,重新修改或增加新的功能浪费大量的时间、人力和物力的不足而提供的一种新型的用于编译电池检测系统脚本程序的编译器。
本发明是通过以下技术方案来实现的:
一种用于编译电池检测系统脚本程序的编译器,包括词法分析器、语法分析器、语义分析器、中间代码生成器、目标代码生成器,编译器将编写好的脚本程序编译成电池检测设备可执行的目标程序,所述目标程序以二进制的形式存在,能够被加载到电池检测设备中的虚拟机直接运行,从而控制电池检测设备,按设定的模式进行测试,所述词法分析器识别C语言风格的脚本程序中的内置变量、标准库函数、自定义变量、自定义函数;
所述语法分析器分析脚本程序中的脚本专用语法,构建语法树;
所述语义分析器对语法中的语法单元进行检查和转换;
所述中间代码生成器根据语法分析器输出把脚本程序翻译成中间代码;
所述目标代码生成器将中间代码生成为与电池检测设备虚拟机的CPU、虚拟寄存器列表、虚拟指令集相匹配的目标程序。
进一步地,所述脚本程序是指采用类C语言编写的测试流程文件,由内置变量、标准库函数、自定义变量、自定义函数、关键字、特殊符号构成。
进一步地,所述内置变量是指可直接利用的反应电池测试的电流、电压、时间、容量的基本变量。
进一步地,所述标准库函数是指预置的用于控制电池检测设备输入/输出的基本函数。
进一步地,所述自定义变量是指常数或与内置变量运算得到的结果。
进一步地,所述自定义函数是指用于实现自定义的测试方法,中间含有标准库函数,实现具体测试功能。
进一步地,所述虚拟机是指通过软件方式将电池检测设备中的处理器虚拟成的一台专用的计算机,专用的计算机包含CPU、虚拟寄存器列表、虚拟指令集。
本发明的有益效果在于:
(1)通过编写脚本程序的方式自定义电池测试的方法及参数,利用本发明提供的编译器将脚本程序编译成设备可执行的目标程序,再加载到设备中运行,完成测试,从而提高电池检测系统的灵活性,实现更多更复杂的功能;
(2)同时修改或增加测试方法时无需生产厂商对系统进行修改,减少大量的时间和维护成本;由于电池测试的方法是用户自行编写的,无需对外公开,保护了用户的技术、工艺、参数等。
【附图说明】
图1为本发明用于编译电池检测系统脚本程序的编译器的示意图;
图2为现有的传统模式的示意图;
附图标记:1、编译器;11、词法分析器;12、语法分析器;13、语义分析器;14、中间代码生成器;15、目标代码生成器;2、脚本程序;21、内置变量;22、标准库函数;23、自定义变量;24、自定义函数;3、目标程序;4、虚拟机。
【具体实施方式】
下面结合附图及具体实施方式对本发明做进一步描述:
如图1所示,一种用于编译电池检测系统脚本程序的编译器,包括词法分析器11、语法分析器12、语义分析器13、中间代码生成器14、目标代码生成器15,编译器1将编写好的脚本程序2编译成电池检测设备可执行的目标程序3,所述目标程序3以二进制的形式存在,能够被加载到电池检测设备中的虚拟机4直接运行,从而控制电池检测设备,按设定的模式进行测试,所述词法分析器11识别C语言风格的脚本程序2中的内置变量21、标准库函数22、自定义变量23、自定义函数24;
所述语法分析器12分析脚本程序2中的脚本专用语法,构建语法树;
所述语义分析器13对语法中的语法单元进行检查和转换;
所述中间代码生成器14根据语法分析器输出把脚本程序2翻译成中间代码;
所述目标代码生成器15将中间代码生成为与电池检测设备虚拟机4的CPU、虚拟寄存器列表、虚拟指令集相匹配的目标程序。
优选地,所述脚本程序2是指采用类C语言编写的测试流程文件,由内置变量21、标准库函数22、自定义变量23、自定义函数24、关键字、特殊符号构成。
优选地,所述内置变量21是指可直接利用的反应电池测试的电流、电压、时间、容量的基本变量。
优选地,所述标准库函数22是指预置的用于控制电池检测设备输入/输出的基本函数。
优选地,所述自定义变量23是指常数或与内置变量运算得到的结果。
优选地,所述自定义函数24是指用于实现自定义的测试方法,中间含有标准库函数,实现具体测试功能。
优选地,所述虚拟机4是指通过软件方式将电池检测设备中的处理器虚拟成的一台专用的计算机,专用的计算机包含CPU、虚拟寄存器列表、虚拟指令集。
实施例2
如图2所示为现有的传统模式的电池检测系统是预先在上位机软件上设置好电池测试的若干方法和参数,测试设备同时进行对应的方法及参数识别和执行,用户在上位机软件上选择预置的方法的组合,修改测试参数,再下发到设备中执行,从而完成电池测试,这种模式结构简单,功能单一,操作简单。
根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行适当的变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对本发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。
Claims (7)
1.一种用于编译电池检测系统脚本程序的编译器,包括词法分析器、语法分析器、语义分析器、中间代码生成器、目标代码生成器,编译器将编写好的脚本程序编译成电池检测设备可执行的目标程序,所述目标程序以二进制的形式存在,能够被加载到电池检测设备中的虚拟机直接运行,从而控制电池检测设备,按设定的模式进行测试,其特征在于:所述词法分析器识别C语言风格的脚本程序中的内置变量、标准库函数、自定义变量、自定义函数;
所述语法分析器分析脚本程序中的脚本专用语法,构建语法树;
所述语义分析器对语法中的语法单元进行检查和转换;
所述中间代码生成器根据语法分析器输出把脚本程序翻译成中间代码;
所述目标代码生成器将中间代码生成为与电池检测设备虚拟机的CPU、虚拟寄存器列表、虚拟指令集相匹配的目标程序。
2.根据权利要求1所述的用于编译电池检测系统脚本程序的编译器,其特征在于:所述脚本程序是指采用类C语言编写的测试流程文件,由内置变量、标准库函数、自定义变量、自定义函数、关键字、特殊符号构成。
3.根据权利要求1所述的用于编译电池检测系统脚本程序的编译器,其特征在于:所述内置变量是指可直接利用的反应电池测试的电流、电压、时间、容量的基本变量。
4.根据权利要求1所述的用于编译电池检测系统脚本程序的编译器,其特征在于:所述标准库函数是指预置的用于控制电池检测设备输入/输出的基本函数。
5.根据权利要求1所述的用于编译电池检测系统脚本程序的编译器,其特征在于:所述自定义变量是指常数或与内置变量运算得到的结果。
6.根据权利要求1所述的用于编译电池检测系统脚本程序的编译器,其特征在于:所述自定义函数是指用于实现自定义的测试方法,中间含有标准库函数,实现具体测试功能。
7.根据权利要求1所述的用于编译电池检测系统脚本程序的编译器,其特征在于:所述虚拟机是指通过软件方式将电池检测设备中的处理器虚拟成的一台专用的计算机,专用的计算机包含CPU、虚拟寄存器列表、虚拟指令集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911148877.4A CN110908668A (zh) | 2019-11-21 | 2019-11-21 | 用于编译电池检测系统脚本程序的编译器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911148877.4A CN110908668A (zh) | 2019-11-21 | 2019-11-21 | 用于编译电池检测系统脚本程序的编译器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110908668A true CN110908668A (zh) | 2020-03-24 |
Family
ID=69818437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911148877.4A Pending CN110908668A (zh) | 2019-11-21 | 2019-11-21 | 用于编译电池检测系统脚本程序的编译器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908668A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391877A (zh) * | 2021-05-12 | 2021-09-14 | 联合汽车电子有限公司 | 刷新脚本解析系统 |
WO2023133932A1 (zh) * | 2022-01-14 | 2023-07-20 | 上海御渡半导体科技有限公司 | 一种基于动态传递参数的ate装置和传输方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024029A (ja) * | 2000-07-11 | 2002-01-25 | Toshiba Corp | コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN1688976A (zh) * | 2002-09-17 | 2005-10-26 | 洁能氏公司 | 控制燃料电池测试设备的系统和方法 |
CN103123590A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 指令表il程序到c语言程序的编译方法 |
CN104750533A (zh) * | 2013-12-31 | 2015-07-01 | 上海海尔集成电路有限公司 | C程序编译方法及编译器 |
CN106526360A (zh) * | 2016-10-31 | 2017-03-22 | 国网福建省电力有限公司 | 一种基于mms远程调控保护装置的测试方法 |
CN107193628A (zh) * | 2017-04-07 | 2017-09-22 | 万达百汇科技(深圳)有限公司 | 支付终端应用仿真方法和装置 |
EP3333746A1 (en) * | 2016-12-12 | 2018-06-13 | AO Kaspersky Lab | System and method of execution of code by an interpreter |
CN108809741A (zh) * | 2017-04-27 | 2018-11-13 | 长城汽车股份有限公司 | Can总线的测试方法及装置 |
CN109254776A (zh) * | 2018-09-29 | 2019-01-22 | 深圳市雷赛控制技术有限公司 | 多语言代码编译方法及编译器 |
CN109613448A (zh) * | 2018-11-15 | 2019-04-12 | 珠海许继电气有限公司 | 智能电源动态环境测试方法及系统 |
CN109871368A (zh) * | 2018-12-15 | 2019-06-11 | 中国平安人寿保险股份有限公司 | 数据库检测方法、装置、计算机装置及存储介质 |
-
2019
- 2019-11-21 CN CN201911148877.4A patent/CN110908668A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002024029A (ja) * | 2000-07-11 | 2002-01-25 | Toshiba Corp | コンパイラ、コンパイル方法及びコンパイルプログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN1688976A (zh) * | 2002-09-17 | 2005-10-26 | 洁能氏公司 | 控制燃料电池测试设备的系统和方法 |
CN103123590A (zh) * | 2011-11-18 | 2013-05-29 | 中国科学院沈阳计算技术研究所有限公司 | 指令表il程序到c语言程序的编译方法 |
CN104750533A (zh) * | 2013-12-31 | 2015-07-01 | 上海海尔集成电路有限公司 | C程序编译方法及编译器 |
CN106526360A (zh) * | 2016-10-31 | 2017-03-22 | 国网福建省电力有限公司 | 一种基于mms远程调控保护装置的测试方法 |
EP3333746A1 (en) * | 2016-12-12 | 2018-06-13 | AO Kaspersky Lab | System and method of execution of code by an interpreter |
CN107193628A (zh) * | 2017-04-07 | 2017-09-22 | 万达百汇科技(深圳)有限公司 | 支付终端应用仿真方法和装置 |
CN108809741A (zh) * | 2017-04-27 | 2018-11-13 | 长城汽车股份有限公司 | Can总线的测试方法及装置 |
CN109254776A (zh) * | 2018-09-29 | 2019-01-22 | 深圳市雷赛控制技术有限公司 | 多语言代码编译方法及编译器 |
CN109613448A (zh) * | 2018-11-15 | 2019-04-12 | 珠海许继电气有限公司 | 智能电源动态环境测试方法及系统 |
CN109871368A (zh) * | 2018-12-15 | 2019-06-11 | 中国平安人寿保险股份有限公司 | 数据库检测方法、装置、计算机装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
李剑等: "脚本引擎的简单实现" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391877A (zh) * | 2021-05-12 | 2021-09-14 | 联合汽车电子有限公司 | 刷新脚本解析系统 |
WO2023133932A1 (zh) * | 2022-01-14 | 2023-07-20 | 上海御渡半导体科技有限公司 | 一种基于动态传递参数的ate装置和传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110716715B (zh) | 一种应用程序开发方法、装置、设备及介质 | |
Fursin et al. | MILEPOST GCC: machine learning based research compiler | |
JP5735714B2 (ja) | コンピューティングデバイス用の動的な電力最適化 | |
JP3894698B2 (ja) | 資源の消費を最小限にするハイブリッド式ジャストインタイム・コンパイラ | |
CN110908668A (zh) | 用于编译电池检测系统脚本程序的编译器 | |
CN104503754A (zh) | 一种机器人图形化编程系统中编程及编译的设计方法 | |
CN100562879C (zh) | 一种用于嵌入式处理器功能验证的动态仿真平台方法 | |
CN110990019B (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
CN111309292B (zh) | 一种基于MATLAB/Simulink的全模型可执行程序构建方法 | |
CN103116513B (zh) | 一种异构多核处理器编译器 | |
CN109739512B (zh) | 一种解析型语言文本式分析转换方法 | |
WO2012051844A1 (zh) | 智能网平台、业务执行方法和分析业务异常的方法 | |
Tanaka et al. | mruby--Rapid Software Development for Embedded Systems | |
CN101551748B (zh) | 一种优化的编译方法 | |
CN103984539A (zh) | 一种家电设备运行方法及系统 | |
CN111338605A (zh) | 一种仪器功能开发和运行流程自动执行的方法 | |
JP2003202994A (ja) | Javaコンパイラ、及び、当該Javaコンパイラが使用するコンパイル情報の生成装置 | |
CN104570913A (zh) | 一种变频器的plc控制处理方法 | |
CN101710375B (zh) | 反病毒软件中的反病毒装置及其反病毒方法 | |
CN113010177A (zh) | 软件定义的仪器和信息采集方法、计算机、存储介质 | |
Papadimitriou | Scientific programming with Java classes supported with a scripting interpreter | |
CN112463613A (zh) | 一种基于adb的测试驱动系统、方法及存储介质 | |
CN111025166A (zh) | 用于电池检测系统的调试器 | |
CN106777710A (zh) | 一种在fpga上实现的cuda内核的方法 | |
Hao et al. | Integration Analysis of Multiple Languages on Integration Platform about Internet of Things |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |