本发明涉及软件开发领域,特别涉及一种基于函数树的编程语句执行方法、装置、设备及介质。
背景技术:
1、在日常开发中,开发人员经常会使用自定义插件和函数来实现功能,以提高维护性和可用性。但是随着版本的更新迭代或者需求变迁,函数以线性方式定义和调用的,函数之间的关系通常通过参数传递和返回值来实现,传统的线性代码结构在表达复杂逻辑和算法时可能变得冗长和难以理解。在某些情况下,这种线性结构可能难以满足复杂的变成需求。对于定制化的函数维护成本也越来越高,函数之间的耦合度也越来越高。
2、为了解决这些问题,已有研究方向致力于通过丰富函数库和强化函数管理来提高开发效率和降低维护成本。然而,当前方法仅单独使用函数的功能,无法解决线性代码结构的单一性问题。函数树的逻辑仅限于简单的嵌套调用,难以提供链式可视化和函数调用优先级,增加了排错工作量。此外,函数定义缺乏统一规范,改变已有函数行为困难,函数缺乏轻量化、灵活性和可读性等特点。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于函数树的编程语句执行方法、装置、设备及介质,能够针对不同逻辑类型的函数进行不同的处理,有效地处理复杂的链式语法结构,解析清晰,定义明确,可视化效果好地实现了对自定义编程语言的解析和执行。其具体方案如下:
2、第一方面,本技术公开了一种基于函数树的编程语句执行方法,包括:
3、判断待执行函数树编程语句对应的函数逻辑结构类型,若所述函数逻辑结构类型为符合预设简单逻辑结构特点的类型,则根据预先定义的语法规则对所述待执行函数树编程语句进行解析,以生成目标函数树;
4、基于所述目标函数树从预先创建的函数库中提取目标函数列表,对所述目标函数列表进行注册,以生成注册列表,并基于创建的函数工厂以及所述注册列表获取所述待执行函数树编程语句的执行结果;
5、若所述函数逻辑结构类型为符合预设复杂逻辑结构特点的类型,则基于预先定义的目标原子类型对所述待执行函数树编程语句进行解析,获取所述待执行函数树编程语句的各原子层内容;
6、分别对各所述原子层内容进行检验,若各所述原子层内容均检验通过,则执行所述待执行函数树编程语句,以获取所述执行结果。
7、可选的,所述判断待执行函数树编程语句对应的函数逻辑结构类型之前,还包括:
8、对语法规则进行定义,以对所述待执行函数树编程语句不同模式下的相应解析规则进行定义;所述模式包括赋值语句模式和函数调用模式。
9、可选的,所述判断待执行函数树编程语句对应的函数逻辑结构类型之前,还包括:
10、提供函数树的原子类型以及定制化原子类型泛化模板,以便基于所述函数树的原子类型和定制化原子类型泛化模板定义所述待执行函数树编程语句需要的所述目标原子类型的结构。
11、可选的,所述判断待执行函数树编程语句对应的函数逻辑结构类型之前,还包括:
12、判断所述待执行函数树编程语句是否为首次执行;
13、若否,则直接对所述待执行函数树编程语句进行调用执行,以获取相应的所述执行结果;
14、若是,则进入所述判断待执行函数树编程语句对应的函数逻辑结构类型的步骤。
15、可选的,所述基于创建的函数工厂以及所述注册列表获取所述待执行函数树编程语句的执行结果,包括:
16、通过所述函数工厂对所述待执行函数树编程语句需要的函数包进行加载,并将所述函数包中的目标函数放入所述注册列表;
17、通过所述函数工厂将所述注册列表中的函数进行初始化,以生成相应的函数实例,基于所述函数实例执行所述待执行函数树编程语句,以获取相应的所述执行结果。
18、可选的,所述分别对各所述原子层内容进行检验之后,还包括:
19、拼接各所述原子层内容的执行顺序,确定最终执行顺序,以便根据所述最终执行顺序执行所述待执行函数树编程语句,获取所述执行结果。
20、可选的,所述分别对各所述原子层内容进行检验之后,还包括:
21、若各所述原子层内容未全部通过所述校验,则提示所述待执行函数树编程语句异常,并调整所述待执行函数树编程语句,重新跳转至所述基于预先定义的目标原子类型对所述待执行函数树编程语句进行解析的步骤。
22、第二方面,本技术公开了一种基于函数树的编程语句执行装置,包括:
23、目标函数树生成模块,用于判断待执行函数树编程语句对应的函数逻辑结构类型,若所述函数逻辑结构类型为符合预设简单逻辑结构特点的类型,则根据预先定义的语法规则对所述待执行函数树编程语句进行解析,以生成目标函数树;
24、第一执行结果获取模块,用于基于所述目标函数树从预先创建的函数库中提取目标函数列表,对所述目标函数列表进行注册,以生成注册列表,并基于创建的函数工厂以及所述注册列表获取所述待执行函数树编程语句的执行结果;
25、原子层内容获取模块,用于若所述函数逻辑结构类型为符合预设复杂逻辑结构特点的类型,则基于预先定义的目标原子类型对所述待执行函数树编程语句进行解析,获取所述待执行函数树编程语句的各原子层内容;
26、第二执行结果获取模块,用于分别对各所述原子层内容进行检验,若各所述原子层内容均检验通过,则执行所述待执行函数树编程语句,以获取所述执行结果。
27、第三方面,本技术公开了一种电子设备,包括:
28、存储器,用于保存计算机程序;
29、处理器,用于执行所述计算机程序以实现前述的基于函数树的编程语句执行方法。
30、第四方面,本技术公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的基于函数树的编程语句执行方法。
31、本技术在执行基于函数树的编程语句时,首先判断待执行函数树编程语句对应的函数逻辑结构类型,若所述函数逻辑结构类型为符合预设简单逻辑结构特点的类型,则根据预先定义的语法规则对所述待执行函数树编程语句进行解析,以生成目标函数树;然后基于所述目标函数树从预先创建的函数库中提取目标函数列表,对所述目标函数列表进行注册,以生成注册列表,并基于创建的函数工厂以及所述注册列表获取所述待执行函数树编程语句的执行结果;若所述函数逻辑结构类型为符合预设复杂逻辑结构特点的类型,则基于预先定义的目标原子类型对所述待执行函数树编程语句进行解析,获取所述待执行函数树编程语句的各原子层内容;最后分别对各所述原子层内容进行检验,若各所述原子层内容均检验通过,则执行所述待执行函数树编程语句,以获取所述执行结果。可见,本技术针对不同逻辑类型的函数进行不同的处理,能够有效地处理复杂的链式语法结构,解析清晰,定义明确,可视化效果好;从语法规则和基本函数实现逻辑两个方面建模,建立底层原子库,不仅可以及时按需修改语法规则,还能实现原子类型的再扩展,实现人人易懂,人人可参与的开发效果,具有更强的灵活性和可扩展性;另外使用函数树的开发模式,开发人员可以轻松定义适用于特定领域的自定义编程语言,同时这些编程语言可以针对具体领域的需求进行优化,提高开发效率和代码质量。