nelua.io
Nelua (обозначает n - e- extensible lua ) является минимальным, эффективным, статически типичным и метапрограммируемым языком программирования систем, вдохновленным Lua, который компилируется для C и нативного кода.
ПРИМЕЧАНИЕ: язык находится в Альфа -состоянии и все еще развивается.
#showcase на сервере Discord.После установки вы, возможно, захотите проверить избранный пример, игра Snake, использующая знаменитую библиотеку SDL2:
nelua examples/snakesdl.neluaNelua-это системы системного программирования для чувствительных к производительности приложений, где LUA не будет эффективным, например, операционные системы, приложения в реальном времени и игровые двигатели. Несмотря на то, что он имеет синтаксис и семантику, аналогичную LUA, в первую очередь он фокусируется на создании эффективного C-кода и обеспечении поддержки очень оптимизируемого программирования низкого уровня. Использование идиомов Nelua, таких как записи, массивы, ручное управление памятью и указатели, должно привести к эффективности, как чистое C; С другой стороны, при использовании идиомов LUA, таких как таблицы, метеологические и нетипированные переменные, компилятор будет испечь библиотеку времени выполнения для такого рода динамической функциональности в программу, которая может понести некоторые накладные расходы во время выполнения.
Нелуа может делать метапрограммирование во время компиляции через препроцессорные конструкции, написанные в LUA; Поскольку сам компилятор также записан в LUA, это означает, что предоставленный пользователем код препроцессора может взаимодействовать в любую точку с внутренним компилятором и AST исходного кода. Такая система допускает специальную реализацию конструкций высокого уровня, таких как классы, дженерики и полиморфизм, и все это без необходимости добавлять их в основную спецификацию, тем самым сохраняя язык, расширяемый и компактный язык. Точно так же, как объектно-ориентированные шаблоны Lua не встроены в язык, но, тем не менее, могут быть достигнуты через метеологические, в Nelua вы сами можете реализовать аналогичную функциональность, которая полностью решается во время компиляции или динамически отправлено во время выполнения.
Nelua может выполнять расширяемое программирование, поскольку программист может добавить расширения к языку, таким как новые грамматики, определения AST, семантика, проверки типов, генерация кода и поведение компилятора во время компиляции через препроцессор.
Nelua обеспечивает поддержку как созданного мусора, так и ручного управления памятью таким образом, чтобы разработчик мог легко выбрать между использованием сбора мусора или полностью отключением сбора мусора или смешивания обоих.
Nelua сначала компилируется для C, затем выполняет C -компилятор C для создания собственного кода. Таким образом, существующий C -код и библиотеки могут быть использованы, и могут быть созданы новые библиотеки C. Другое преимущество заключается в том, что Nelua может достичь тех же целевых платформ, что и компиляторы C99, такие как GCC или Clang, а также пользоваться современными оптимизациями компилятора.
Первоначальная мотивация для его создания состояла в том, чтобы заменить части C/C ++ проектов, которые в настоящее время используют LUA языком, который имеет синтаксис и семантику, аналогичную LUA, но позволяет выполнять мелкозернистые оптимизации производительности и не теряет способности идти на низкий уровень, поэтому объединяет синтаксис и семантику на обоих скомпилированных и динамических языках.
Вы можете поддерживать или внести свой вклад в Nelua во многих отношениях, предоставляя проекту звезду на GitHub, проверяя его функции, сообщая об ошибках, обсуждая идеи, помогая другим пользователям, распространяя его в мир, обмениваясь проектами, создаваемыми с ним на GitHub, создавая учебные пособия или посты в блоге, улучшая его документацию, пожертвование или спонсорство.
Nelua - это открытый исходный код, но не очень открыт для взносов в форме запросов на притяжение, если вы хотите, чтобы что -то было исправлено или реализовано на основном языке, попробуйте сначала отправить отчет об ошибке или открыть обсуждение вместо пиара. Авторы предпочитают это таким образом, так что идеальное решение всегда предоставляется, без нежелательных последствий для проекта, тем самым сохраняя качество программного обеспечения.
Узнайте больше о участии на странице.
MIT Лицензия