Lua 强语言的设计与实现
摘要
MLN是一款基于Lua的跨平台框架,伴随着使用范围的不断扩大,我们充分体会到跨平台框架给项目开发带来的灵活性和便捷性。但由于Lua语言是一种动态解释的轻量级语言,他自身的语法和语义都比较简单,也不支持面向对象,因此在使用MLN开发项目时,会遇到一些Lua语言本身的限制,比如不支持类型检查,不支持类和继承,不支持泛型,不支持重载等等,这些限制会给开发带来一些困难。尽管我们可以通过一些技巧来解决这些问题,比如通过元表来实现类和继承,通过闭包来实现泛型,通过函数指针来实现重载等等,但是这些技巧都有一些不可避免的限制,也给代码开发产生了许多麻烦,所以我们需要一种更加强大的方式来解决这些问题。
因此我们设计出一套基于Lua的强语言,他的语法接近于现代的Kotlin语言,支持类型检查,类和继承,泛型,重载等特性,并在Lua强语言的基础上,重新设计MLN的项目结构,提供对应的语言开发插件,从而让开发者能够更加专注于业务逻辑的开发,而不是在繁琐的代码实现上浪费太多的精力。在设计过程中,我们还考虑到了和旧项目的兼容问题,提供与Lua进行混合编译的能力,从而让开发者可以在不改动旧项目的情况下,逐步迁移项目到Lua强语言的实现上。
本文章会介绍Lua强语言的设计思路和编译器的具体实现,希望能够给大家带来一些启发。
欢迎在评论区写下你对这篇文章的看法。