对于一个源码文件而言,里面的内容只是一个个字符,机器是无法识别的,而词法分析器的作用类似于转义器,将一个个字符拆成若干个有特定意义的词,而这一过程称为词法分析,此时它也不能被机器(或者这个虚拟机)识别
这篇文章将会是一个系列,更新会比源码慢,文档写的也不会写的很完全,名字暂定
typelang
, C syntax-like
早在2019之前就想开发一门脚本语言,一是加深编译原理的理解,二是觉得程序员不应该消耗在语言特性上,也一直想为自己的服务端框架 skynet-x 写一门dsl,现在是用lua作为服务的脚本端。但由于的若约束性导致在开发的时候很多同时并不够优雅,总是以一种奇怪的方式来解决问题,Lua本身并没有任何问题,它被设计之初是为了修补C的不足,但它的语法设计却并不符合我的预期。
尽管它的性能是脚本语言中顶尖的,但是一些隐式写法并不能保证它的预期性能,如混合table
,过多的函数调用栈,字符串操作以及无类型系统。
关于类型系统有利有弊,但我个人的观点是宁愿多出30%的开发时间,从而减少70%的bug。