最开始没有想过搞什么语言之类的。我是一个好大喜功而且有点懒的那种怪人,我最初只学了lexer的基本逻辑,也就只搓过三次lexer,parser即便是相对简单的递归下降对我来说也难如登天梯。
偶然在某次qq水群时发现有个人拿正则搓解释器,甚至还敢放github上,给我带来的震撼不亚于全过程vibe无tests的项目直接扔force push到远程main分支(我这个人有点洁癖,不管是现实还是虚拟都喜欢干净标准的)
在憋了一段时间后,我实现了我的第一个解释器~~(事实上只是拉了托大的罢了)~~技术栈是jv21+mvn 附上源码~~(史)~~: TrackLock
在外浪迹了一段时间后我有话回归了老本行开始码代码。然后推出了用kt+mvn重构出来的Rosenfield语言。很可惜依旧是史一坨,而且也不太好放出来了,就算了罢。
不久前我染上了对ml语言家族和函数式编程。因此我现在正在维护的这一版 Suma-lang 受到了很多影响,好比类型推断 类型后置 函数一等公民这样。值得一提的是,Suma-lang又推翻了以前的技术栈,这次我用了uv和py3.9+。并且甚至写了很多测试,还支持ci跑了静态检查和pip audit,默认也使用了仓库的github pages部署了mkdocs文档页。质量不知道比以前那些破玩意好了多少。
并且一改之前的解释器作风,我把Suma-lang写成了编译型语言。具体参考项目的README.md。
说实话我文笔并不好,读这篇文章很显然有股史臭味。