nelua.io
Nelua(代表Nive e Xtensible Lua )是一种最小,高效,静态和元编程的系统编程语言,受LUA的启发,该语言受LUA的启发,该语言将其编译为C和本机代码。
注意:该语言处于alpha状态,仍在不断发展。
#showcase频道。安装后,您可能需要查看特色示例,即一个蛇游戏,利用著名的SDL2库:
nelua examples/snakesdl.neluaNelua是一种用于性能敏感应用程序的系统编程语言,其中LUA不会有效,例如操作系统,实时应用程序和游戏引擎。尽管它具有类似于LUA的语法和语义,但它主要着重于生成有效的C代码,并为高度可观的低级编程提供了支持。使用Nelua成语,例如记录,阵列,手动内存管理和指针,应导致性能与纯C一样有效;另一方面,当使用LUA成语(例如表,MetaTables和Untyped变量)时,编译器将在程序中烘烤用于此类动态功能的运行时库,这可能会引起某些运行时的开销。
Nelua可以在编译时通过用LUA编写的预处理器进行元编程;由于编译器本身也在LUA中编写,因此意味着用户提供的预处理器代码可以在任何时候与编译器的内部和源代码的AST进行交互。这样的系统允许临时实施高级构造,例如类,仿制药和多态性,而无需将它们添加到核心规范中,从而使语言保持简单,可扩展和紧凑。就像Lua的面向对象的模式不是在语言中内置的那样,而是可以通过MetaTables实现的方式,在Nelua中,您可以自己实现类似的功能,该功能在编译时完全决定或在运行时动态派遣。
Nelua可以执行可扩展的编程,因为程序员可能会在语言中添加扩展名,例如新的语法,AST定义,语义,类型的Checkers,Copchers,代码生成和行为,并通过预处理程序在编译时间为编译器。
Nelua可以通过开发人员可以在使用垃圾收集或完全禁用垃圾收集或混合两者之间的方式方面为垃圾收集和手动存储器管理提供了支持。
Nelua首先将其编译为C,然后执行C编译器以生成本机代码。可以利用这种现有的C代码和库,并可以创建新的C库。另一个好处是,Nelua可以与C99编译器(例如GCC或Clang)达到相同的目标平台,同时还可以享受他们提供的最先进的编译器优化。
其创建的最初动机是替换项目的C/C ++部分,这些项目当前使用LUA的语言和语义类似于LUA的语言,但允许进行精细的性能优化,并且不会失去较低水平的能力,因此统一了编译和动态语言的语法和语法。
您可以在许多方面为Nelua提供支持或为Nelua提供贡献,在Github上为该项目提供一颗星星,测试其功能,报告错误,讨论想法,帮助其他用户,将其传播给世界,并在Github上与该项目共享项目,创建教程或博客文章,改进其文档或通过捐赠或捐赠或捐赠或赞助。
Nelua是开源的,但并不是要以拉动请求的形式开放,如果您想在核心语言中固定或实施的内容,请首先提交错误报告或开设讨论而不是进行PR。作者更喜欢这种方式,以便始终提供理想的解决方案,而不会对项目产生不必要的后果,从而保持软件的质量。
阅读有关在贡献页面中贡献的更多信息。
麻省理工学院许可证