一种转换执行制造技术

技术编号:39601975 阅读:11 留言:0更新日期:2023-12-03 20:02
本申请提出了一种转换执行

【技术实现步骤摘要】
一种转换执行SAS语言的方法、装置及应用


[0001]本申请涉及代码解析领域,特别是涉及一种转换执行
SAS
语言的方法

装置及应用


技术介绍

[0002]科研工作离不开高效的数据统计

不管是理工科还是文科,皆是如此

高效的统计是开展高质量科研工作与写作优质论文的重要依托
。SAS
软件
(
全称
STATISTICAL ANALYSIS SYSTEM
,简称
SAS)
,乃是科研统计分析中一款非常主流的软件

[0003]然而美国
SAS
软件的源代码并不对外公开,而目前市面上暂无可兼容
SAS
代码的其他数据分析软件,导致若是需要使用
SAS
语言执行各类数据分析统计功能时,必须使用并依托于美国
SAS
软件

而其他开源的数据统计分析软件,比如
Python/R
,对海量数据处理时存在耗时久

占有内存大

运行效率低等致命问题

[0004]综上所述,亟需一种可对
SAS
语言进行转换执行并实现自由编译
SAS
语言的方案以适配于海量数据统计分析需求


技术实现思路

[0005]本申请实施例提供了一种转换执行
SAS
言的方法

装置及应用,将
SAS
语言转移为
C++
语言并实现
SAS
代码对应的函数功能,实现全面地兼容
SAS
语言的效果

[0006]第一方面,本申请实施例提供了一种转换执行
SAS
语言的方法,所述方法包括:
[0007]获取
SAS
语言表示的待运行
SAS
代码,构建待运行代码库;
[0008]识别所述待运行
SAS
代码的字符串以获取不同词类的关键词以及宏代码字段,标记所述关键词的词类得到分词结果,其中所述词类至少包括功能词;
[0009]将所述分词结果按照所述待运行
SAS
代码的代码顺序逐步放入所述待运行代码库,其中将位于两个所述宏代码字段之间的宏指令代码展开后存入待运行代码库;
[0010]每当所述待运行代码库中组成单句代码时,获取单句代码的运行方式,且当识别到所述待运行代码库中再次出现相同功能词的关键词时,执行两个相同功能词的关键词之间的单句代码组成的代码段,并在执行完毕后清除已执行的代码段

[0011]第二方面,本申请实施例提供了一种转换执行
SAS
语言的装置,包括:
[0012]获取模块:获取
SAS
语言表示的待运行
SAS
代码,构建待运行代码库;
[0013]分词模块:识别所述待运行
SAS
代码的字符串以获取不同词类的关键词以及宏代码字段,标记所述关键词的词类得到分词结果,其中所述词类至少包括功能词;
[0014]转存模块:将所述分词结果按照所述待运行
SAS
代码的代码顺序逐步放入所述待运行代码库,其中将位于两个所述宏代码字段之间的宏指令代码展开后存入待运行代码库;
[0015]执行模块:每当所述待运行代码库中组成单句代码时,获取单句代码的运行方式,且当识别到所述待运行代码库中再次出现相同功能词的关键词时,执行两个相同功能词的
关键词之间的单句代码组成的代码段,并在执行完毕后清除已执行的代码段

[0016]第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以一种转换执行
SAS
语言的方法

[0017]第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括一种转换执行
SAS
语言的方法

[0018]本专利技术的主要贡献和创新点如下:
[0019]本申请实施例将分析
SAS
语言的功能并通过
C++
语言来实现对应功能,使得本方案也可完美地兼容
SAS
语言从而进行大数据分析,使得数据统计分析更为灵活便捷且可满足日常的数据统计分析需求

本申请根据
SAS
代码不同词类的关键词进行分词标记得到分词结果,且区分
SAS
代码中的宏指令关键词,并将分词结果转逐句存入构建好的待运行代码库中,从而可以更好的理解
SAS
代码的含义,更好的通过
C++
语言来实现
SAS
代码的效果;再对待运行代码库中的代码进行逐句分析执行,并清除已执行的代码从而使得本方案可以在占用少量内存的前提下对
SAS
代码进行准确解析;构建宏临时库来存放宏指令关键词所包含的宏指令代码,当分词时遇到宏指令时再调用宏临时库中的宏指令,这样可以保证正确运行每一宏指令,增加
SAS
代码转换执行的准确性

[0020]本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征

目的和优点更加简明易懂

附图说明
[0021]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定

在附图中:
[0022]图1是根据本申请实施例的一种转换执行
SAS
语言的方法的流程图;
[0023]图2是根据本申请实施例的一种转换执行
SAS
语言的方法的流程示意图;
[0024]图3是根据本申请实施例的一种转换执行
SAS
语言装置的结构框图;
[0025]图4是根据本申请实施例的电子装置的硬件结构示意图

具体实施方式
[0026]这里将详细地对示例性实施例进行说明,其示例表示在附图中

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素

以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式

相反,它们仅是与如所附权利要求书中所详述的

本说明书一个或多个实施例的一些方面相一致的装置和方法的例子

[0027]需要说明的是:在其他实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种转换执行
SAS
代码的方法,其特征在于,包括以下步骤:获取
SAS
语言表示的待运行
SAS
代码,构建待运行代码库;识别所述待运行
SAS
代码的字符串以获取不同词类的关键词以及宏代码字段,标记所述关键词的词类得到分词结果,其中所述词类至少包括功能词;将所述分词结果按照所述待运行
SAS
代码的代码顺序逐步放入所述待运行代码库,其中将位于两个所述宏代码字段之间的宏指令代码展开后存入待运行代码库;每当所述待运行代码库中组成单句代码时,获取单句代码的运行方式,且当识别到所述待运行代码库中再次出现相同功能词的关键词时,执行两个相同功能词的关键词之间的单句代码组成的代码段,并在执行完毕后清除已执行的代码段
。2.
根据权利要求1所述的一种
SAS
代码解析方法,其特征在于,在“对所述待运行
SAS
代码进行分词获得分词结果”步骤中,构建宏临时库,所述宏临时库用来存储两个所述宏代码字段之间的宏指令代码,当在所述分词结果中遇到%
macro
和%
mend
时,将%
macro
和%
mend
之间的宏指令代码内容存入所述宏临时库中
。3.
根据权利要求1所述的一种
SAS
代码解析方法,其特征在于,在“每当所述待运行代码库中组成单句代码时,获取单句代码的运行方式”步骤中,以分号对所述待运行代码库中的代码进行逐句切分得到单句代码,并分析每一单句代码的含义从而得到每一单句代码的运行方式
。4.
根据权利要求2所述的一种
SAS
代码解析方法,其特征在于,在“将所述分词结果按照所述待运行
SAS
代码的代码顺序逐步放入所述待运行代码库,其中将位于两个所述宏代码字段之间的宏指令代码展开后存入待运行代码库”步骤中,若遇到
word macro
宏指令,则在所述宏临时库中获取与所述
word macro
宏指令对应的宏指令代码,并将所述宏指令代码展开放入所述待运行代码库
。5.
根据权利要求1所述的一种
SAS
代码解析方法,其特征在于,在“当识别到所述待运行代码库中再次出现相同功能词的关键词时,执行两个相同功能词的关键词之间的单句代码组成的代码段”步骤中,所述相同功能词的关键词包括但不限于:定...

【专利技术属性】
技术研发人员:吴思榕沈绍良
申请(专利权)人:杭州启维软件有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1