一种类java语言基于JVM的函数式编程语法实现方法技术

技术编号:33502824 阅读:38 留言:0更新日期:2022-05-19 01:12
本发明专利技术公开了一种类java语言基于JVM的函数式编程语法实现方法,包括以下具体步骤:S1:语法解析,转化为语法中间表示层对象,S2:在解析的过程中,将代码分解为左侧表达式、符号和右侧表达式三部分,S3:解析符号。本发明专利技术通过语法解析,将公式分为左侧表达式、符号和右侧表达式三个部分,先对左侧表达式进行处理并通过右侧表达式推断出类型以及赋予默认值,然后再对右侧表达式进行处理,避免了空指针错误的发生,让使用平台的非专业人员可配置处高质量无空指针的逻辑,提高了平台操作的便捷性。提高了平台操作的便捷性。提高了平台操作的便捷性。

【技术实现步骤摘要】
一种类java语言基于JVM的函数式编程语法实现方法


[0001]本专利技术涉及程序语言编译
,特别涉及一种类java语言基于JVM的函数式编程语法实现方法。

技术介绍

[0002]java语言通过JVM虚拟机技术实现了跨平台特性,通过一套字节码作为中间表示层,在运行时翻译成目标平台的机器码执行。在此基础上业界诞生了许多基于JVM的前端语言,例如kotlin、scala、groovy。JVM在执行字节码时主要是通过栈进行解释执行的,通过局部变量表、操作数栈来存取修改数据。
[0003]class文件是一种文件格式作为JVM的标准执行输入,定义了一套承载字节码的二进制规范。
[0004]Antlr是一个语言工具,可以将符合BNF范式的语法自动生成对应的词法语法解析器。
[0005]ASM是一个通用java字节码操作框架,常用在动态系统中使用,同样也可以用于编译器中,例如OpenJDK中lambda表达式的实现、Groovy编译器 、Kotlin编译器。
[0006]IR Node 中间表示层是在编译中常见的与本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种类java语言基于JVM的函数式编程语法实现方法,其特征在于,包括以下具体步骤:S1:语法解析,转化为语法中间表示层对象;S2:在解析的过程中,将代码分解为左侧表达式、符号和右侧表达式三部分;S3:解析符号,处理步骤如下:S31:对左侧表达式进行处理,计算出左侧表达式在locals中的位置x,并根据左侧表达式推断出类型添加load指令;S32:解析符号,对符号左侧执行判断是否为null的跳转指令;S33:此时会生成一个跳转标记label1和一个跳出标记label2,写入非null跳转指令ifnonull label1;S34:左侧表达式为null时顺序执行,此时需要根据左侧表达式推断出类型所占字节长度写入pop、pop2,将load_x在栈内的值弹出;S35:根据右侧表达式推断出的类型赋予默认值;S36:此时左侧表达式为null的情况已执行完,需要写入无条件跳转指令goto label2,并标记label1为当前所在位置;S37:对右侧表达式进行处理,根据方法调用和对象引用写入正常调用指令;S38:整体表达式已执行完,标记label2为当前所在位置,此位置表示表达式整体执行结束。2.根据权利要求1所述的一种类java语言基于JVM的函数式编程语法实现方法,其特征在于,在所述步骤S31中,每当解析到一组{}时,qLang编译器会生成一个对应的作用域对象,同时在当前作用域里的IR Node都会持有此作用域的引用,当解析到定义节点时会将定义的类型和变量名称记录到当前作用域中。3.根据权利要求1所述的一种类java语言基于JVM的函数式编程语法实现方法,其特征在于,在所...

【专利技术属性】
技术研发人员:王三明王聪明王圆博
申请(专利权)人:启业云大数据南京有限公司
类型:发明
国别省市:

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

1