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。作者更喜歡這種方式,以便始終提供理想的解決方案,而不會對項目產生不必要的後果,從而保持軟件的質量。
閱讀有關在貢獻頁面中貢獻的更多信息。
麻省理工學院許可證