专门为机器学习开发的jpy语言

这本来是一个为工科教学专门开发的附属品,并不是说Python或Java有多不好,根本上它就是一个Java工程教材,但又要结合人工智能。因此,出现了这样一个包容性的怪胎,可以用python一样的语法与Java一起编写。

没流行起来的一个致命原因,它是基于Eclipse开发的一套DSL语言,胎生于xText技术,我甚至还开发了VsCode插件。Xtext - Language Engineering Made Easy!

python 复制代码
var a = np.arange(24).reshape(2,3,4)
let a1 = a.shape[0]
println("维度:"+a1)

var c = new int[]{1,2}
println("数组:"+c[0])

var b = a[:-1,2]
b[0] = 9
b.dump

使用jpy语言,可让你像Python一样对数组进行各种维度的切割,还支持对一纬和多维数组的矩阵运算,用起来简直和Python的Numpy一样。

自夸一下,Java版本的Numpy也是我实现的,结合jpy语言用起来还是挺爽的!毕竟我们很多人是来搬砖的,现在给你一辆货车把Python代码都搬过来,生活不要太惬意!

python 复制代码
var a= np.arange(12).reshape(3,4)
var b= a[2:][1]

开发的历程还是挺艰难的,我要和欧洲的大神们在论坛交流。国内熟悉XText技术的程序员很少,官网的Demo也实在是太简单,是我研究了很久才扩展实现了jpy的一整套语法,其中的实现逻辑也是躺了不少坑的,后面会详细解释:

python 复制代码
JpySingleStatement returns XExpression:
	XSwitchExpression |
	XIfExpression |
	XForLoopExpression |
	XBasicForLoopExpression |
	XWhileExpression |
	XTryCatchFinallyExpression |
	XSynchronizedExpression |
	JpyBranchingStatement |
	XExpressionOrVarDeclaration |
	XDoWhileExpression |
	XReturnExpression |
	XThrowExpression |
	XSynchronizedExpression |
	JpyWithOpenAs
;

JpyBranchingStatement returns XExpression:
	{JpyContinueStatement} "continue" |
	{JpyBreakStatement} "break"
;

@Override 
IdOrSuper :
	FeatureCallID | 'super' | 'open'
;

尽管自我感觉很厉害的样子,但至今无人问津少有关注,我也两年没更新维护。说句实在的,Eclipse为什么养一帮人搞xText技术啊,根本是没人用的东西! 毕竟很多人也不是研究编译语言的,甚至开发DSL也鲜有人想到使用Eclipse吧。

先写到这,稍后我再分享实现的jpy语言的技术细节。

相关推荐
好望角雾眠14 小时前
第四阶段C#通讯开发-1:通讯基础理论,串口,通讯模式,单位转换,代码示例
开发语言·笔记·c#·串口·通讯
不一样的故事12614 小时前
学习Python是一个循序渐进的过程,结合系统学习、持续实践和项目驱动,
开发语言·python·学习
@HNUSTer14 小时前
Python数据可视化科技图表绘制系列教程(七)
python·数据可视化·科技论文·专业制图·科研图表
shizidushu14 小时前
How to work with merged cells in Excel with `openpyxl` in Python?
python·microsoft·excel·openpyxl
eqwaak014 小时前
科技信息差(9.13)
大数据·开发语言·人工智能·华为·语言模型
郝学胜-神的一滴14 小时前
深入探索 Python 元组:从基础到高级应用
运维·服务器·开发语言·python·程序人生
一只乔哇噻14 小时前
java后端工程师进修ing(研一版‖day44)
java·开发语言·学习·算法
技术程序猿华锋14 小时前
深度解码OpenAI的2025野心:Codex重生与GPT-5 APIKey获取调用示例
人工智能·vscode·python·gpt·深度学习·编辑器
Ares-Wang14 小时前
Vue3》》eslint Prettier husky
开发语言·javascript·ecmascript
EveryPossible15 小时前
静态箭头连线
开发语言·javascript·ecmascript