原转为java的项目版本已迁移至个人,请访问:
https://github.com/maopao-691515082/larva-lang_4j
本项目计划重构,一个是因为打算将其改造成方便服务器开发使用的语言,而不是仅针对个人刷题
另一个是因为这是个人第一个正式语言项目,可能有些不成熟的地方:
1 原版本虽然理论上可以提供java之外的编译目标,但部分设计理念太贴近java了,如果转其他语言,不是很方便
2 反过来为了快速适应java后端环境而且不希望速度损失太多,有一些语法打了折扣,这次计划先转go,有可能的话再考虑C++,由于后端有指针支持,语法空间更大
3 编译器代码有些乱,希望做一个整体改进
4 功能取舍不够,部分高级语法与Python像,但是似是而非反而有反效果
5 类型推导只覆盖了int,而且改动了语法,但又感觉比较鸡肋,计划重做算法,覆盖基础类型
6 coc开发过程中,对于静态类型语言的类型系统的前端分析的复杂性表示不太耐烦,虽然也做完了
7 顺利的话,test case和doc尽量不太监:)
先暂停更新吧,可能是转golang做得runtime等设计不太好,性能较差,但我也怀疑是golang interface等特性导致