CN110928535A - 衍生变量部署方法、装置、设备及可读存储介质 - Google Patents

衍生变量部署方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN110928535A
CN110928535A CN201911265512.XA CN201911265512A CN110928535A CN 110928535 A CN110928535 A CN 110928535A CN 201911265512 A CN201911265512 A CN 201911265512A CN 110928535 A CN110928535 A CN 110928535A
Authority
CN
China
Prior art keywords
code
target
variable
data set
sas
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
CN201911265512.XA
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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201911265512.XA priority Critical patent/CN110928535A/zh
Publication of CN110928535A publication Critical patent/CN110928535A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种衍生变量部署方法、装置、设备及可读存储介质,方法包括:获取目标数据集和目标数据集对应的SAS代码;基于离线环境运行SAS代码对目标数据集进行处理,得到参考衍生变量;根据预设预处理语法分析器对SAS代码进行分析,得到目标代码;基于虚拟线上环境运行目标代码对目标数据集进行处理,得到检验衍生变量;对比参考衍生变量和检验衍生变量之间的差异,以确定目标代码是否可靠;若目标代码可靠,则将目标代码在线上部署,部署后的目标代码用于生成目标衍生变量。这样,可以不需要IT人员另外地根据数据集内容编写目标代码以及检验目标代码的过程,从而提高开发效率。

Description

衍生变量部署方法、装置、设备及可读存储介质
技术领域
本发明涉及金融科技(Fintech)的衍生变量处理技术领域,尤其涉及一种衍生变量部署方法、装置、设备及可读存储介质。
背景技术
随着金融科技的发展,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、区块链Blockchain、人工智能等)应用在金融领域,但金融业也对技术提出了更高的要求,如对金融风险进行预测有了较高的要求。衍生变量在金融风险建模是很常见的数据处理方式,如在制作信用评分卡模型时少不了这一个环节。衍生变量作为变量加工的一种,需要建模人员通过一定的经验与领域知识,挖掘出新的变量,增强数据的维度。
目前,针对数据源的目标代码开发部署时,需要由多个人参与,如IT开发人员开发编写目标代码,建模人员人工验证目标代码的可靠性,导致开发效率低的问题。
发明内容
本发明的主要目的在于提供一种衍生变量部署方法、装置、设备及可读存储介质,旨在解决现有技术中的针对数据源的目标代码开发部署时,需要由多人参与,导致开发效率低的技术问题。
为实现上述目的,本发明提供一种衍生变量部署方法,其特征在于,所述方法包括:
获取目标数据集和所述目标数据集对应的SAS代码;
基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量;
根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码;
基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量;
对比所述参考衍生变量和所述检验衍生变量之间的差异,以确定所述目标代码是否可靠;
若所述目标代码可靠,则将所述目标代码在线上部署,部署后的所述目标代码用于生成目标衍生变量。
进一步地,所述所述离线环境包括SAS程序;
所述基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量的步骤,包括:
将所述目标数据集加载至内存数据库;
从所述内存数据库中将所述目标数据集导出为CSV格式的数据文件,并将所述CSV格式的数据文件导入至所述SAS程序;
在所述SAS程序中运行所述SAS代码对所述目标数据集进行处理得到所述参考衍生变量。
进一步地,所述获取目标数据集和所述目标数据集对应的SAS代码的步骤,包括:
获取数据集,并对所述数据集进行预处理,以获得按预设表格形式进行存储的目标数据集,以及所述目标数据集对应的SAS代码。
进一步地,所述基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量的步骤,包括:
将所述目标数据集加载至内存数据库;
从所述内存数据库中将所述目标数据集导出为JSON格式的数据文件;
将所述JSON格式的数据文件导入至所述虚拟线上环境中,并运行所述目标代码,以使所述目标代码对所述JSON格式的数据文件进行处理,从而得到检验衍生变量。
进一步地,所述基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量的步骤,包括:
将所述目标数据集加载至内存数据库;
从所述内存数据库中将所述目标数据集导出为JSON格式的数据文件;
将所述JSON格式的数据文件导入至所述虚拟线上环境中,在所述虚拟线上环境中运行所述目标代码对所述JSON格式的数据文件进行处理,得到所述检验衍生变量。
进一步地,所述根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码的步骤,包括:
将所述SAS代码输入所述预设预处理语法分析器,输出第一中间代码;
将所述第一中间代码输入预设宏语言语法分析器中,以对所述第一中间代码中的宏语言进行解析,输出第二中间代码;
将所述第二中间代码输入预设数据与过程步语法分析器中,以对所述中间代码中的数据步与过程步进行解析,输出所述目标代码。
进一步地,所述将所述第二中间代码输入所述预设数据与过程步语法分析器中,以对所述中间代码中的数据步与过程步进行解析,输出所述目标代码的步骤,包括:
将所述第二中间代码输入所述预设数据与过程步语法分析器中,以对所述第二中间代码中的注释语句进行选择性过滤;
对过滤后的所述第二中间代码进行队列匹配,获得一个或者多个代码队列;
对各所述代码队列进行语法解析,获得所述目标代码。
进一步地,所述对比所述参考衍生变量和所述检验衍生变量之间的差异,以确定所述目标代码是否可靠的步骤,包括:
将所述参考衍生变量中的字符型变量和所述检验衍生变量的字符型变量进行对比,若所述参考衍生变量中的字符型变量和所述检验衍生变量的字符量相同,则确定所述目标代码可靠;和/或,
计算所述参考衍生变量中的数值型变量和所述检验衍生变量的数值型变量的差值,若所述参考衍生变量中的数值型变量和所述检验衍生变量的数值型变量的差值小于或等于预设误差值,则确定所述目标代码可靠。
本发明还提供一种衍生变量部署装置,所述装置包括:
获取模块,用于获取目标数据集和所述目标数据集对应的SAS代码;
运行模块,用于基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量;
分析模块,用于根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码;
处理模块,用于基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量;
对比模块,用于对比所述参考衍生变量和所述检验衍生变量之间的差异,以确定所述目标代码是否可靠;
部署模块,用于若所述目标代码可靠,则将所述目标代码在线上部署,部署后的所述目标代码用于生成目标衍生变量。
本发明还提供一种衍生变量部署设备,所述衍生变量部署设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述衍生变量部署程序被所述处理器执行时实现如上述的衍生变量部署方法的步骤。
本发明还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的衍生变量部署方法的步骤。
本发明提出的衍生变量部署方法,通过获取目标数据集和目标数据集对应的SAS代码;基于离线环境运行SAS代码对目标数据集进行处理,得到参考衍生变量;根据预设预处理语法分析器对SAS代码进行分析,得到目标代码;基于虚拟线上环境运行目标代码对目标数据集进行处理,得到检验衍生变量;对比参考衍生变量和检验衍生变量之间的差异,以确定目标代码是否可靠;若目标代码可靠,则将目标代码在线上部署,部署后的目标代码用于生成目标衍生变量。这样,基于离线环境运行SAS代码对目标数据集进行处理,得到参考衍生变量,以及虚拟线上环境中生成检验衍生变量,其中将SAS代码转换为目标代码,通过对比参考衍生变量和检验衍生变量的差异从而判断在虚拟线上环境运行的目标代码是否可靠,若可靠,则基于可靠的目标代码在线上部署。从而减免了IT人员需要另外地根据数据集内容编写目标代码以及检验目标代码的过程,从而提高开发效率。
附图说明
图1是本发明实施例方案涉及的硬件运行的设备的结构示意图;
图2是本发明一种衍生变量部署方法第一实施例的流程示意图;
图3是本发明一种衍生变量部署的流程示意图;
图4是本发明一种衍生变量部署方法中SAS代码转换为JAVA代码的流程示意图;
图5是本发明一种衍生变量部署方法中过程步语法分析器语法分析树的示意图;
图6是本发明一种衍生变量部署方法中数据步实现流程的示意图;
图7是本发明一种衍生变量部署装置一实施例的框架结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,该衍生变量部署设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
可选地,该衍生变量部署设备还可以包括矩形用户接口、网络接口、摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。矩形用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的衍生变量部署设备中,处理器1001用于执行存储器1005中存储的衍生变量部署程序,实现上述任一项所述的衍生变量部署方法的步骤。
本发明衍生变量部署设备具体实施方式与上述衍生变量部署方法各实施例基本相同,在此不再赘述。
参照图2,本发明基于上述设备硬件结构,提出本发明方法各个实施例。
本发明提供一种衍生变量部署方法,衍生变量部署方法应用于衍生变量部署设备,在衍生变量部署方法第一实施例中,参照图2,该衍生变量部署方法包括:
步骤S10,获取目标数据集和所述目标数据集对应的SAS代码;
设备获取目标数据集和建模人员根据目标数据集编写的对应的SAS(StatisticalAnalysis System,数据管理与分析语言)代码。其中,目标数据集指的是目标数据集合,例如,多个目标用户的征信信息。在本实施例中,通过获取目标数据集,并存储于特定存储位置,以供调用,例如,将数据集存储于文件或来自于http请求。
步骤S20,基于离线环境运行SAS代码对目标数据集进行处理,得到参考衍生变量;
设备基于离线环境运行SAS代码对目标数据集进行处理,得到参考衍生变量。其中,离线环境指的是不接入互联网的硬件和/或软件的环境,是与线上环境相对应,且离线环境可以包括SAS程序。
步骤S30,根据预设预处理语法分析器对SAS代码进行分析,得到目标代码;
设备根据预设预处理语法分析器对SAS代码进行分析,得到目标代码。其中,目标代码指的是SAS代码以外的其他语言代码,例如通过其他编程语言进行编写的程序代码,比如,C、C++、JAVA等等。在本实施例中,将SAS代码转换成JAVA代码。JAVA代码能够在线上运行,例如,将JAVA代码在设备运行,并能够与互联网上的其他设备进行通信交互。
可选地,SAS代码得到目标代码可分为两步:第一步是语法分析,将SAS代码依次输入至若干个语法分析器中,以进行语义分析,并获得中间代码;第二步是生成目标代码,将中间代码输入至最后一个语法分析器,并重构生成目标代码。
步骤S40,基于虚拟线上环境运行目标代码对目标数据集进行处理,得到检验衍生变量;
设备基于虚拟线上环境运行目标代码对目标数据数据集进行处理,得到检验衍生变量。其中,该虚拟环境是指通过在本设备中构建模拟真实的在线运行环境,该虚拟线上环境与真实的在线运行环境相同。
在本实施例中,JAVA代码均可在虚拟线上环境和线上运行环境中被调用运行。例如,目标代码在虚拟线上环境中被调用运行,数据集在目标代码的分析处理下,从而可生成检验衍生变量。
步骤S50,对比参考衍生变量和检验衍生变量之间的差异,以确定目标代码是否可靠;
设备判断参考衍生变量和检验衍生变量之间的差异是否满足预设误差范围,若参考衍生变量和检验衍生变量满足预设误差范围,则确定目标代码是可靠,若参考衍生变量和检验衍生变量不满足预设误差范围,则确定目标代码不是可靠。其中,衍生变量可包括字符型变量和数值型变量。在本实施例中,该参考衍生变量为标准参照数据,则检验衍生变量是以参考衍生变量作为标准参照数据进行对比,判断参考衍生变量和检验衍生变量之间的差异是否满足预设误差范围,若满足,则确定目标代码是可靠。
可选地,步骤S50可具体包括:
步骤S51,将参考衍生变量中的字符型变量和检验衍生变量的字符型变量进行对比,若参考衍生变量中的字符型变量和检验衍生变量的字符量相同,则确定目标代码可靠;和/或,
步骤S52,计算参考衍生变量中的数值型变量和检验衍生变量的数值型变量的差值,若参考衍生变量中的数值型变量和检验衍生变量的数值型变量的差值小于或等于预设误差值,则确定目标代码可靠。
当参考衍生变量中的数值型变量与检验衍生变量的数值型变量的差值小于或等于预设误差值时,和/或,当参考衍生变量中的字符型变量与检验衍生变量中的字符型变量相同时,则参考衍生变量和检验衍生变量的差异满足预设误差范围。可选地,预设误差值是0.0001。
在本实施例中,需要理解的是当参考衍生变量中的字符型变量与检验衍生变量中的字符型变量不相同时,和/或当参考衍生变量中的数值型变量和检验衍生变量的数值型变量的差值大于预设误差值时,则参考衍生变量和检验衍生变量的差异不满足预设误差范围。
步骤S60,若目标代码可靠,则将目标代码在线上部署,部署后的目标代码用于生成目标衍生变量。
设备确定目标代码是可靠,即若检验衍生变量和参考衍生变量之间的差异满足预设误差范围时,则将目标代码在线上部署,部署后的目标代码用于生成目标衍生变量。其中,线上部署是指把目标代码部署到互联网或局域网中,从而可与位于互联网或局域网的其他设备进行交互,以给用户进行使用。
在本实施例中,通过获取目标数据集和目标数据集对应的SAS代码;基于离线环境运行SAS代码对目标数据集进行处理,得到参考衍生变量;根据预设预处理语法分析器对SAS代码进行分析,得到目标代码;基于虚拟线上环境运行目标代码对目标数据集进行处理,得到检验衍生变量;
对比参考衍生变量和检验衍生变量之间的差异,以确定目标代码是否可靠;若目标代码可靠,则将目标代码在线上部署,部署后的目标代码用于生成目标衍生变量。这样,基于离线环境运行SAS代码对目标数据集进行处理,得到参考衍生变量,以及虚拟线上环境中生成检验衍生变量,其中将SAS代码转换为目标代码,通过对比参考衍生变量和检验衍生变量的差异从而判断在虚拟线上环境运行的目标代码是否可靠,若可靠,则基于可靠的目标代码在线上部署。从而减免了IT人员需要另外地根据数据集内容编写目标代码以及检验目标代码的过程,从而提高开发效率。
进一步地,上述第一实施例步骤S20,所述所述基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量的步骤,包括:
步骤S21,将目标数据集加载至内存数据库;
步骤S22,从内存数据库中将目标数据集导出为CSV格式的数据文件,并将CSV格式的数据文件导入至SAS程序;
步骤S23,在SAS程序中运行SAS代码对目标数据集进行处理得到参考衍生变量。
在本实施例中,可以将JSON格式的数据文件转化为CSV格式的数据文件,可以先针对目标数据集创建对象关系映射,并配置数据库为内存数据库。有了关系型数据库和业务实体对象之间的映射,对于JSON格式的数据文件转CSV格式的数据文件,可以用通用的JSON工具解析输入的JSON数据,转换成实体对象,并存储在内存数据库中。最后把内存数据库中的每一个表导出为CSV格式的数据文件即可。SAS程序是一个模块化、集成化的大型应用软件系统,基于SAS程序提供的功能,可对数据进行分析处理。进一步地,SAS代码是指根据SAS编程语言,按生成衍生变量的逻辑过程而编写SAS代码,该SAS代码可以在SAS程序的环境中进行编译,并在SAS程序中被调用运行。
将目标数据集导入至SAS程序,在SAS程序中运行SAS代码以调用数据集,从而生成参考衍生变量,具体地,设备可调用并运行SAS程序,将目标数据集导入至SAS程序,在SAS程序的运行环境中,调用运行SAS代码,其中SAS代码对数据集进行分析处理,并生成参考衍生变量。
例如,表1中存储有小明的年龄,表2中存储有小明的月工资,表1与表2是通过主键进行关联,并将表1和表2导入至SAS程序中,并在SAS代码的分析处理下,从而可提取出衍生变量或记录条:小明-年龄-月工资,并可将该衍生变量存储于表3。
进一步地,步骤S10可具体包括:
步骤S11,获取数据集,并对数据集进行预处理,以获得按预设表格形式进行存储的目标数据集,以及所述目标数据集对应的SAS代码。
设备获取数据集,并对数据集进行预处理,以获得目标数据集,其中,将数据集按预设表格形式进行存储。例如,预设表格形式是包括有用户姓名、性别、年龄和职业信息,则在获取到数据集时,提取数据集中的用户姓名、性别、年龄和职业信息,并用表格的形式进行存储。也就是说,将数据集按预设表格形式进行存储以形成目标数据集,并且标代码在线上部署之后,可分别对相同表格形式的多个数据集进行分析处理,从而生成相对应的目标衍生变量,其中数据集可以是表格形式相同,但内容是全新的。因此,可对相同表格形式的多个数据集进行线上部署并获得相应的目标衍生变量,提高目标代码的复用率。
进一步地,上述第一实施例步骤S40,基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量的步骤,包括:
步骤S41,将所述目标数据集加载至内存数据库;
步骤S42,从内存数据库中将目标数据集导出JSON格式的数据文件;
步骤S43,将JSON格式的数据文件导入至虚拟线上环境中,在虚拟线上环境中运行目标代码对JSON格式的数据文件进行处理,得到检验衍生变量。
在本实施例中,设备将目标数据集加载至内存数据库,从内存数据库中将目标数据集导出JSON格式的数据文件,将JSON格式的数据文件导入至虚拟线上环境中,并运行目标代码,以使目标代码对JSON格式的数据文件进行处理,从而得到检验衍生变量。同理地,对于CSV格式的数据文件转化成JSON格式的数据文件,可以将CSV格式的数据文件导入内存数据库中,并用通用的JSON工具格式化实体对象,输出JSON格式的数据文件。
基于上述实施例,需要说明的是,在运行SAS程序时,输入的目标数据集是以CSV格式的数据文件导入至SAS程序中,若只有JSON格式的数据文件,则根据关系型数据库和业务实体对象之间的映射,将JSON格式的数据文件转换成实体对象并存储在内存数据库中,再把内存数据库中的每一个表导出为CSV格式的数据文件,并导入至SAS程序中,运行SAS代码以调用目标数据集,从而生成参考衍生变量;在虚拟线上环境中,将SAS代码转换为目标代码,若输入的数据是以JSON格式的数据文件,则运行目标代码以调用目标数据集,从而生成检验衍生变量,对比参考衍生变量和检验衍生变量之间的差异,以确定目标代码是否可靠。
为了辅助理解本实施例的技术方案,可参照图3,图3是衍生变量部署的流程示意图。
进一步地,上述第一实施例步骤S30,所述根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码的步骤,包括:
步骤S31,将SAS代码输入预设预处理语法分析器,输出第一中间代码;
在本实施例中,需要说明的是,预设预处理语法分析器包括SAS代码词法分析器和SAS代码语法分析器,其中,SAS代码词法分析器与SAS代码语法分析器是通过自定义的多个语法文件,采用自动化语言识别工具ANTLR工具生成的,SAS代码是以字符串的形式输入到预设预处理语法分析器中的。
接收SAS代码,并将SAS代码输入预设预处理语法分析器,输出第一中间代码,具体地,接收用户输入的SAS代码,并将SAS代码输入预设预处理语法分析器,以通过SAS代码词法分析器将SAS代码中的字符转化为SAS代码词法符号,进而通过SAS代码语法分析器将词法符号识别成SAS代码语法节点,合成SAS代码语法分析树,进而通过遍历SAS代码语法分析树中的各语法节点,对SAS代码中的部分歧义语句进行过滤与处理,获得第一中间代码,其中,过滤的部分歧义语句包括块注释语法/**/,处理的部分歧义语句的目的主要是识别宏函数括号后是否有分号,没有的话加上分号,以统一各语句的终止符,减少后面语法分析器的解析压力。
步骤S32,将第一中间代码输入预设宏语言语法分析器中,以对第一中间代码中的宏语言进行解析,输出第二中间代码;
在本实施例中,需要说明的是,预设宏语言语法分析器是通过自定义的多个语法文件,采用自动化语言识别工具ANTLR工具生成的,预设宏语言语法分析器包括宏语法分析器、宏变量取值分析器和宏函数调用语法分析器。
将第一中间代码输入预设宏语言语法分析器中,以对第一中间代码中的宏语言进行解析,输出第二中间代码,具体地,首先将第一中间代码输入宏语法分析器中,对宏语法进行识别和处理,获得第一宏阶段代码,进而将第一宏阶段代码输入宏变量取值分析器中,对第一宏阶段代码中的宏变量进行解析,取出宏变量中的值,获得第二宏阶段代码,最后,将第二宏阶段代码输入宏函数调用语法分析器中,对第二宏阶段代码中的宏函数的函数类型与传入参数进行解析,并运行函数,获得第二中间代码。
其中,预设宏语言语法分析器包括宏语法分析器、宏变量取值分析器和宏函数调用语法分析器,
将第一中间代码输入预设宏语言语法分析器中,以对第一中间代码中的宏语言进行解析,输出第二中间代码的步骤包括:
步骤S321,将第一中间代码输入所述宏语法分析器,对第一中间代码中的宏语法进行解析,获得第一宏阶段代码;
在本实施例中,需要说明的是,预设宏语言语法分析器是通过自定义的多个语法文件,采用自动化语言识别工具ANTLR工具生成的,预设宏语言语法分析器包括宏语法分析器、宏变量取值分析器和宏函数调用语法分析器。
将第一中间代码输入预设宏语言语法分析器中,以对第一中间代码中的宏语言进行解析,输出第二中间代码,具体地,首先将第一中间代码输入宏语法分析器中,对宏语法进行识别和处理,获得第一宏阶段代码,进而将第一宏阶段代码输入所述宏变量取值分析器中,对第一宏阶段代码中的宏变量进行解析,取出宏变量中的值,获得第二宏阶段代码,最后,将第二宏阶段代码输入宏函数调用语法分析器中,对第二宏阶段代码中的宏函数的函数类型与传入参数进行解析,并运行函数,获得第二中间代码。
其中,预设宏语言语法分析器包括宏语法分析器、宏变量取值分析器和宏函数调用语法分析器,
将第一中间代码输入预设宏语言语法分析器中,以对第一中间代码中的宏语言进行解析,输出第二中间代码的步骤包括:
步骤S3211,将第一中间代码输入所述宏语法分析器,以基于预设语法模式识别宏定义和宏控制语句;
在本实施例中,需要说明的是,需要说明的是预设语法模式包括宏定义和宏控制语句语法模式和其他字符语法模式。
将第一中间代码输入宏语法分析器,以基于预设语法模式识别宏定义和宏控制语句,具体地,将第一中间代码输入宏语法分析器,以基于宏定义和宏控制语句语法模式识别宏定义和宏控制语句,基于其他字符语法模式以文本形式识别和处理其他字符,其中,宏定义和宏控制语句包括%LET语句、%IF语句、%ELSE语句、%DO语句、%PUT语句、%DO %TO语句、%DO %WHILE语句、%DO %UNTIL语句、宏函数定义和数据与过程步语法语句等。
步骤S3212,对宏定义和宏控制语句进行语言转换,生成宏定义和宏控制语句对应的python语言,获得宏语法处理代码;
在本实施例中,对宏定义和宏控制语句进行语言转换,生成宏定义和宏控制语句对应的python语言,获得宏语法处理代码,具体地,基于宏定义和宏控制语句与python语言语句的对应关系,对宏定义和宏控制语句进行语言转换,生成宏定义和宏控制语句对应的python语言,例如,“%DO x=1%TO3;”宏语句转换成“for x in range(1,4):”的python语言代码,“%macro func();”宏语句转换成“def func():”的python语言代码,进而获得宏语法处理代码,其中,宏语法处理代码包括所述python语言对应的字符和其他字符,对于其他字符,则会调用下一个语法分析器的接口,等待下个阶段处理。
步骤S3213,将宏语法处理代码与预设固定语句进行拼接,获得第一宏阶段代码。
在本实施例中,将宏语法处理代码与预设固定语句进行拼接,获得第一宏阶段代码,具体地,将宏语法处理代码与预设固定语句进行拼接,其中,预设固定语句包括第三方模块的代码和初始化对象对应的代码等,即可构成一个完整的python程序,进一步地,由于python动态语言的特点,使用exec函数应用到生成的语句中,运行宏语法分析器输出python程序,获得第一宏阶段代码。
步骤S322,将第一宏阶段代码输入宏变量取值分析器,对第一宏阶段代码中的宏变量进行解析,获得第二宏阶段代码;
在本实施例中,需要说明的是,宏变量取值分析器包括第一宏阶段代码词法分析器和第一宏阶段代码语法分析器,且第一宏阶段代码是以字符串的形式输入宏语法分析器中的,其中,本实施例中在将上一个语法分析器的字符传递给下一个语法分析器时,会把上一个语法分析器中的全局变量与局部变量也传递过去,且将与下一个语法分析器的全局变量与局部变量合并一起。
将第一宏阶段代码输入宏变量取值分析器,对第一宏阶段代码中的宏变量进行解析,获得第二宏阶段代码,具体地,将第一宏阶段代码输入宏变量取值分析器,以通过第一宏阶段代码词法分析器将第一宏阶段代码中的字符转换为第一宏阶段代码词法符号,进而通过第一宏阶段代码语法分析器将所述第一宏阶段代码词法符号识别成语法节点,进而合成第一宏阶段代码语法分析树,进一步地,遍历第一宏阶段代码语法分析树的中各语法节点,判断宏变量是否定义在外层,当宏变量定义在外层时,则宏变量为全局变量,则更新并返回所述全局变量,当述宏变量未定义在外层时,则宏变量为局部变量,对于局部变量将不会保存,也即,对第一宏阶段代码中的宏变量进行解析,获得第二宏阶段代码。
步骤S323,将所述第二宏阶段代码输入宏函数调用语法分析器,对所述第二宏阶段代码中的宏函数进行解析,获得所述第二中间代码。
在本实施例中,需要说明的是,所述宏函数调用语法分析器包括第二宏阶段代码词法分析器和第二宏阶段代码语法分析器,且所述第二宏阶段代码是以字符串的形式输入宏函数调用语法分析器中的,所述宏函数调用语法分析器作用是解析宏函数的函数类型与传入参数,并运行函数,所述第二宏阶段代码对应有第二宏阶段代码语法分析树。
将所述第二宏阶段代码输入宏函数调用语法分析器,对所述第二宏阶段代码中的宏函数进行解析,获得所述第二中间代码,具体地,将所述第二宏阶段代码输入宏函数调用语法分析器,通过遍历所述第二宏阶段代码语法分析树的各语法节点,对宏函数的函数类型传入参数进行解析,其中,对所述传入参数的解析支持常量与宏变量、常量和变量间的四项运算,对函数类型的解析即为对函数名为%EVAL的系统函数进行分类处理,并转换成python对应的eval函数运行,也即,对所述第二宏阶段代码中的宏函数进行解析,获得所述第二中间代码。
步骤S33,将第二中间代码输入预设数据与过程步语法分析器中,以对中间代码中的数据步与过程步进行解析,输出目标代码。
在本实施例中,需要说明的是,预设数据与过程步语法分析器包括第二中间代码词法分析器和第二中间代码语法分析器,且预设数据与过程步语法分析器是通过自定义的多个语法文件,采用自动化语言识别工具ANTLR工具生成的,如图5所示,第二中间代码对应有第二中间代码语法分析树,也即,预设数据与过程步语法分析器对应有数据与过程步语法分析器语法分析树,其中,parse是根节点,dataProcStmt表示多个相同结构的代码块,L1、L2和L3为语法分析树的叶子节点所在的树层,其中,叶子节点包括dataStep节点、setStmt节点和ifStmt节点等,每一个代码块表示一个数据步或一个过程步,目标代码指的是SAS代码以外的其他语言代码。
将第二中间代码输入预设数据与过程步语法分析器中,以对第二中间代码中的数据步与过程步进行解析,输出目标代码,具体地,将第二中间代码输入预设数据与过程步语法分析器中,通过根节点以深度优先顺序遍历第二中间代码语法分析树的各个节点,进一步地,每个节点会遍历子节点,直到叶子节点,并返回目标代码,也即,对第二中间代码中的数据步与过程步进行解析,输出目标代码。
本实施例通过接收SAS代码,并将SAS代码输入预处理语法分析器,输出第一中间代码,进而将第一中间代码输入预设宏语言语法分析器中,以对第一中间代码中的宏语言进行解析,输出第二中间代码,最后将第二中间代码输入预设数据与过程步语法分析器中,以对第二中间代码中的数据步与过程步进行解析,输出目标代码。也即,本实施例首先通过接收用户输入的SAS代码,并将所述SAS代码输入预设预设预处理语法分析器,进行第一中间代码的获取,进而将第一中间代码输入预设宏语言语法分析器中,进行第二中间代码的获取,最后将第二中间代码输入预设数据与过程步语法分析器中,进行目标代码的获取。也即,本实施例只需通过预设预设预处理语法分析器、预设宏语言语法分析器和预设数据与过程步语法分析器对SAS代码中的宏语言、数据步和过程步分别进行语法解析,则可获得目标代码,所以,本实施例衍生变量部署方法在进行语言转化时,开发人员开发工作量小,且目标代码并不局限于机器码,易于阅读和维护,所以,解决了现有技术中语言转化开发与维护困难的技术问题。
进一步地,在本发明的另一实施例中,将第二中间代码输入预设数据与过程步语法分析器中,以对第二中间代码中的数据步与过程步进行解析,输出目标代码的步骤包括:
步骤S331,将第二中间代码输入预设数据与过程步语法分析器中,以对第二中间代码中的注释语句进行选择性过滤;
在本实施例中,将第二中间代码输入预设数据与过程步语法分析器中,以对第二中间代码中的注释语句进行选择性过滤,具体地,将第二中间代码输入预设数据与过程步语法分析器中,通过第二中间代码词法分析器对第二中间代码进行检测,判断第二中间代码是否存在注释语句,若存在,则对注释语句进行过滤,其中,判断第二中间代码是否存在注释语句的方法之一为建立一个长度为3的队列,把每一个流过队列的字符添加到队列中,其中,旧的字符会被新字符代替,若满足如下三种情况之一就即为注释语句:(a)刚进队列的字符为“*”时,队列为1或2;(b)队列长度为3,并且队列中“*”前第一个或第二个字符为“;”;(c)队列长度为3时,并且队列中“*”前第一个字符属于“\r\n\t”,前第二个字符为“*”。
步骤S332,对过滤后的第二中间代码进行队列匹配,获得一个或者多个代码队列;
在本实施例中,对过滤后的第二中间代码进行队列匹配,获得一个或者多个代码队列,具体地,通过第二中间代码语法分析器,对过滤后的第二中间代码进行检测,判断是否匹配到run/quit词法符号,当匹配到run/quit词法符号时,则将run/quit词法符号为代码块结束标记,此时,将从上一结束标记至本次结束标记之间的所有字符作为一个代码块,其中,若无上一结束标记,则将第二中间代码第一个字符至本次结束标记之间的所有字符作为一个代码块,其中,代码块包括第一个字符,也即,获得一个队列,当未匹配到run/quit词法符号时,则继续进行匹配,直到匹配到run/quit词法符号。
步骤S333,对各代码队列进行语法解析,获得目标代码。
在本实施例中,对各代码队列进行语法解析,获得目标代码,具体地,将各队列中的字符取出,建立第二中间代码语法分析树,其中,一队列对应以代码块,通过遍历第二中间代码语法分析树中的各节点,对各代码队列进行语法解析,获得目标代码。
其中,预设数据与过程步语法分析器包括第二中间代码词法分析器和第二中间代码语法分析器,
对各代码队列进行语法解析,获得目标代码的步骤包括:
步骤S3311,通过第二中间代码词法分析器将队列中的字符转化为词法符号,并将各词法符号发送给第二中间代码语法分析器;
在本实施例中,通过第二中间代码词法分析器将队列中的字符转化为词法符号,并将各词法符号发送给第二中间代码语法分析器,具体地,通过第二中间代码词法分析器将队列中的字符进行组合,进而将字符组合为有效的单词,也即,转化为词法符号,进一步地,将各词法符号发送给所述第二中间代码语法分析器。
步骤S3332,通过第二中间代码语法分析器对各词法符号进行识别,获得语法节点;
在本实施例中,通过第二中间代码语法分析器对各词法符号进行识别,获得语法节点,具体地,通过第二中间代码语法分析器对各词法符号进行语法分析,也即,将各词法符号作为输入来分析各词法符号组成的代码是否符合预设语法规则,进一步地,若符合预设语法规则,则对各所述词法符号组成的代码在预设语法规则下的语义,获得中间代码,也即,获得语法节点。
步骤S3333,基于语法节点,合成语法分析树,并遍历语法分析树的各语法节点,获得目标代码。
在本实施例中,基于语法节点,合成语法分析树,并遍历语法分析树的各语法节点,获得目标代码,具体地,基于语法节点,合成第二中间代码对应的语法分析树,并遍历语法分析树的各语法节点,也即,对中间代码进行优化,获得目标代码。
进一步地,在本实施例中,目标代码包括python代码、c语言代码、JAVA代码等其他非SAS代码,在SAS语言中,数据步对数据的处理方法对应的一些数据处理步骤,数据步实现流程中的步骤对应的是其他语言在实现数据处理步骤所需的步骤流程。例如,如图6所述示为JAVA代码在实现所述数据处理步骤所需的步骤流程图,也即,JAVA代码在实现数据处理步骤所需的数据步实现流程图,其中,数据步实现流程图中的步骤包括:(1)引用或创建数据源;(2)数据条件筛选;(3)插入新增变量;(4)每次取一行数据进行操作;(5)判断是否输出当前行;(6)再一次筛选数据;(7)保留数据到内存数据库。
在上述功能中,(1)引用或创建数据源,这一功能可通过JAVA中的类进行实现。(2)数据条件筛选,这一功能可通过JAVA代码实现set句型中的keep/drop/rename/where等语句。(3)插入新增变量,这一功能可通过在JAVA中声明数据类型,在新增变量时在描述表对象中插入字段的信息,例如包括名称和类型。(4)每次取一行数据进行操作,这一功能对每一行的数据进行加工处理,可通过条件控制、算术运算、循环、字符处理、日期格式化、等数据处理语句去实现,这些语句可在JAVA运行时库中找到相应的模板来使用。(5)判断是否输出当前行,这一功能可通过JAVA中的输出代码去实现。(6)再一次筛选数据,这一功能可通过JAVA代码实现set句型中的keep/drop/rename/where等语句。(7)保留数据到内存数据库,这一功能即对应着JAVA代码中的保存代码。
在将过程步编译转换为JAVA代码时,具有多种实现方式。在一种实现方式中,通过运行SQL语句即可实现相应的功能。例如,SAS代码中的ProcSort语句,可以通过执行SQL中的“ORDER BY”,从而实现相应功能。在另一种实现方式中,将数据都加载至JAVA中的表对象,对数据进行自定义加工,或者结合运行SQL语句,从而进行复杂的数据处理操作。例如,包含有NODUP/NODUPKEY、DUPOUT等关键字的Proc Sort语句在编译的过程中,首先运行SQL中的“ORDER BY”语句,得到已排序的表对象,再在表对象中循环比较每一行与相邻行的数据是否一样,对于一样的行则存放在一个表对象,不一样的则存放在另一个表对象,最后分别将两个表对象存储到内存数据库中。再例如,Proc Summary的语句地编译过程中,由于需要统计百分位等统计值,通过SQL语句无法实现,因此,需要把数据导到表对象中,并按分组条件分成多个组,从而计算统计量,最后把多个分组的所有行合并到一个表中。在将过程步编译转换为JAVA代码时,需要采用SQL引擎。
为了让JAVA代码能实现SAS代码的功能,在JAVA代码中通过自定义类表示SAS代码中的数据集,其中,类的成员可包含表元数据和表数据,SAS代码的数据类型中数值类型与JAVA代码中的Integer、Long或Double型相对应,SAS代码的数据类型中的字符类型与JAVA代码中的String类型相对应。类实例化后即可将数据存储在表对象中。
进一步地,为了生成JAVA代码,可建立JAVA运行时库,JAVA运行时库封装有运行JAVA代码时所使用到的类和函数。JAVA代码的生成无需从底层开始构建JAVA代码,可调用已封装好的接口功能即可。例如,JAVA运行时库包含有如下功能的代码:(1)描述SAS代码数据集的类,并提供逐行扫描的方法;(2)字符型数据和数值型数据的处理函数;(3)逻辑判断语句,支持对空值的判断;(4)自动化的数据库操作,例如,运行SQL语句、通过JAVA代码自动地在内存数据库中创建数据表功能、清空内存数据库功能等;(5)对表对象的操作,例如,重命名字段名称,增加与添加字段等;(6)数据导入导出功能,支持CSV格式的数据文件和JSON格式的数据文件。
在一个实施例中,如图7所示,图7是本发明一种衍生变量部署一实施例的框架结构示意图,包括:获取模块、导入模块、转换模块、运行模块、判断模块以及部署模块,其中:
获取模块,用于获取目标数据集和所述目标数据集对应的SAS代码;
运行模块,用于基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量;
分析模块,用于根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码;
处理模块,用于基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量;
对比模块,用于对比所述参考衍生变量和所述检验衍生变量之间的差异,以确定所述目标代码是否可靠;
部署模块,用于若所述目标代码可靠,则将所述目标代码在线上部署,部署后的所述目标代码用于生成目标衍生变量。
关于衍生变量部署装置的具体限定可以参见上文中对于衍生变量部署方法的限定,在此不再赘述。上述衍生变量部署装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明提供了一种可读存储介质,所述可读存储介质为计算机可读存储可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的衍生变量部署方法的步骤。
本发明可读存储介质具体实施方式与上述衍生变量部署方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台设备设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种衍生变量部署方法,其特征在于,所述方法包括:
获取目标数据集和所述目标数据集对应的SAS代码;
基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量;
根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码;
基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量;
对比所述参考衍生变量和所述检验衍生变量之间的差异,以确定所述目标代码是否可靠;
若所述目标代码可靠,则将所述目标代码在线上部署,部署后的所述目标代码用于生成目标衍生变量。
2.如权利要求1所述的衍生变量部署方法,其特征在于,所述离线环境包括SAS程序;
所述基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量的步骤,包括:
将所述目标数据集加载至内存数据库;
从所述内存数据库中将所述目标数据集导出为CSV格式的数据文件,并将所述CSV格式的数据文件导入至所述SAS程序;
在所述SAS程序中运行所述SAS代码对所述目标数据集进行处理得到所述参考衍生变量。
3.如权利要求1所述的衍生变量部署方法,其特征在于,所述获取目标数据集和所述目标数据集对应的SAS代码的步骤,包括:
获取数据集,并对所述数据集进行预处理,以获得按预设表格形式进行存储的目标数据集,以及所述目标数据集对应的SAS代码。
4.如权利要求1所述的衍生变量部署方法,其特征在于,所述基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量的步骤,包括:
将所述目标数据集加载至内存数据库;
从所述内存数据库中将所述目标数据集导出为JSON格式的数据文件;
将所述JSON格式的数据文件导入至所述虚拟线上环境中,在所述虚拟线上环境中运行所述目标代码对所述JSON格式的数据文件进行处理,得到所述检验衍生变量。
5.如权利要求1所述的衍生变量部署方法,其特征在于,所述根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码的步骤,包括:
将所述SAS代码输入所述预设预处理语法分析器,输出第一中间代码;
将所述第一中间代码输入预设宏语言语法分析器中,以对所述第一中间代码中的宏语言进行解析,输出第二中间代码;
将所述第二中间代码输入预设数据与过程步语法分析器中,以对所述中间代码中的数据步与过程步进行解析,输出所述目标代码。
6.如权利要求5所述的衍生变量部署方法,其特征在于,所述将所述第二中间代码输入所述预设数据与过程步语法分析器中,以对所述中间代码中的数据步与过程步进行解析,输出所述目标代码的步骤,包括:
将所述第二中间代码输入所述预设数据与过程步语法分析器中,以对所述第二中间代码中的注释语句进行选择性过滤;
对过滤后的所述第二中间代码进行队列匹配,获得一个或者多个代码队列;
对各所述代码队列进行语法解析,获得所述目标代码。
7.如权利要求1所述的衍生变量部署方法,其特征在于,所述对比所述参考衍生变量和所述检验衍生变量之间的差异,以确定所述目标代码是否可靠的步骤,包括:
将所述参考衍生变量中的字符型变量和所述检验衍生变量的字符型变量进行对比,若所述参考衍生变量中的字符型变量和所述检验衍生变量的字符量相同,则确定所述目标代码可靠;和/或,
计算所述参考衍生变量中的数值型变量和所述检验衍生变量的数值型变量的差值,若所述参考衍生变量中的数值型变量和所述检验衍生变量的数值型变量的差值小于或等于预设误差值,则确定所述目标代码可靠。
8.一种衍生变量部署装置,其特征在于,所述装置包括:
获取模块,用于获取目标数据集和所述目标数据集对应的SAS代码;
运行模块,用于基于离线环境运行所述SAS代码对所述目标数据集进行处理,得到参考衍生变量;
分析模块,用于根据预设预处理语法分析器对所述SAS代码进行分析,得到目标代码;
处理模块,用于基于虚拟线上环境运行所述目标代码对所述目标数据集进行处理,得到检验衍生变量;
对比模块,用于对比所述参考衍生变量和所述检验衍生变量之间的差异,以确定所述目标代码是否可靠;
部署模块,用于若所述目标代码可靠,则将所述目标代码在线上部署,部署后的所述目标代码用于生成目标衍生变量。
9.一种衍生变量部署设备,其特征在于,所述衍生变量部署包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序,所述衍生变量部署程序被所述处理器执行时实现如权利要求1至7中任一项所述衍生变量部署的互动方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的衍生变量部署方法的步骤。
CN201911265512.XA 2019-12-10 2019-12-10 衍生变量部署方法、装置、设备及可读存储介质 Pending CN110928535A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911265512.XA CN110928535A (zh) 2019-12-10 2019-12-10 衍生变量部署方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911265512.XA CN110928535A (zh) 2019-12-10 2019-12-10 衍生变量部署方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN110928535A true CN110928535A (zh) 2020-03-27

Family

ID=69858812

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911265512.XA Pending CN110928535A (zh) 2019-12-10 2019-12-10 衍生变量部署方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110928535A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688030A (zh) * 2021-07-14 2021-11-23 上海浦东发展银行股份有限公司 基于文件驱动的sas自动数据验证方法及验证系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113688030A (zh) * 2021-07-14 2021-11-23 上海浦东发展银行股份有限公司 基于文件驱动的sas自动数据验证方法及验证系统

Similar Documents

Publication Publication Date Title
US10162610B2 (en) Method and apparatus for migration of application source code
CN107704265B (zh) 一种面向业务流可配置的规则生成方法
CN110998516B (zh) 用于异构编程数据处理系统的自动化依赖性分析器
CN112394922B (zh) 决策配置方法、业务决策方法和决策引擎系统
CN107644323B (zh) 一种面向业务流的智能审核系统
EP2979176B1 (en) Method for transforming first code instructions in a first programming language into second code instructions in a second programming language
US20140282373A1 (en) Automated business rule harvesting with abstract syntax tree transformation
Castelo Branco et al. Matching business process workflows across abstraction levels
CN106537333A (zh) 用于软件产物的数据库的系统和方法
CN110673854A (zh) Sas语言编译方法、装置、设备及可读存储介质
CN109241104B (zh) 决策型分布式数据库系统中aisql的解析器及其实现方法
CN109857641A (zh) 对程序源文件进行缺陷检测的方法及装置
US11294665B1 (en) Computerized software version control with a software database and a human database
Pérez-Castillo et al. Process mining through dynamic analysis for modernising legacy systems
CN117389541B (zh) 基于对话检索生成模板的配置系统及设备
CN115639980A (zh) 一种低代码平台可拖拽的前端逻辑编排方法及装置
Rouhi et al. Towards a formal model of patterns and pattern languages
CN113064811B (zh) 基于工作流的自动化测试方法、装置以及电子设备
CN110928535A (zh) 衍生变量部署方法、装置、设备及可读存储介质
CN116755669A (zh) 一种基于dsl语言操作模型的低代码开发方法和工具
CN116755667A (zh) 一种低代码dsl语言开发方法及装置
Wille et al. Identifying variability in object-oriented code using model-based code mining
Jiménez et al. On the design of an advanced business rule engine
Ignaim EvoSPL: An evolutionary approach for adopting software product lines in the automotive industry
El Beggar et al. Getting objects methods and interactions by extracting business rules from legacy systems

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