CN110908668A - 用于编译电池检测系统脚本程序的编译器 - Google Patents

用于编译电池检测系统脚本程序的编译器 Download PDF

Info

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
Application number
CN201911148877.4A
Other languages
English (en)
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.)
Shenzhen New Weier Electronics Co Ltd
Shenzhen Xinweier Electronics Co Ltd
Original Assignee
Shenzhen New Weier Electronics Co Ltd
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 Shenzhen New Weier Electronics Co Ltd filed Critical Shenzhen New Weier Electronics Co Ltd
Priority to CN201911148877.4A priority Critical patent/CN110908668A/zh
Publication of CN110908668A publication Critical patent/CN110908668A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-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、虚拟寄存器列表、虚拟指令集。
CN201911148877.4A 2019-11-21 2019-11-21 用于编译电池检测系统脚本程序的编译器 Pending CN110908668A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国平安人寿保险股份有限公司 数据库检测方法、装置、计算机装置及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
李剑等: "脚本引擎的简单实现" *

Cited By (2)

* Cited by examiner, † Cited by third party
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