nelua.io
NELUA (signifie N ative e xtensible Lua ) est un langage de programmation de systèmes statiquement typiquement, efficace, statique
Remarque: La langue est à l'état alpha et en évolution toujours.
#showcase dans le serveur Discord.Après l'installation, vous voudrez peut-être consulter l'exemple en vedette, un jeu de serpent tirant parti de la célèbre bibliothèque SDL2:
nelua examples/snakesdl.neluaNELUA est un langage de programmation de systèmes pour les applications sensibles à la performance où LUA ne serait pas efficace, comme les systèmes d'exploitation, les applications en temps réel et les moteurs de jeu. Bien qu'il ait une syntaxe et une sémantique similaires à LUA, il se concentre principalement sur la génération de code C efficace et fournit une prise en charge d'une programmation de bas niveau hautement optimisable. L'utilisation des idiomes de Nelua tels que les enregistrements, les tableaux, la gestion manuelle de la mémoire et les pointeurs devraient entraîner des performances aussi efficaces que Pure C; D'un autre côté, lors de l'utilisation des idiommes LUA tels que des tables, des métaturables et des variables non typées, le compilateur fera cuire une bibliothèque d'exécution pour ce type de fonctionnalité dynamique dans le programme, ce qui pourrait encourir certaines frais généraux d'exécution.
Nelua peut faire de la méta-programmation au temps de compilation grâce à des constructions de préprocesseurs écrites en Lua; Étant donné que le compilateur lui-même est également écrit en LUA, cela signifie que le code pré-incessant fourni par l'utilisateur peut interagir à tout moment avec les internes du compilateur et l'AST du code source. Un tel système permet la mise en œuvre ad hoc de constructions de haut niveau telles que les classes, les génériques et le polymorphisme, le tout sans avoir à les ajouter dans la spécification centrale, gardant ainsi le langage simple, extensible et compact. De la même manière que les modèles orientés objet de Lua ne sont pas intégrés dans la langue, mais peuvent néanmoins être réalisés par le biais de métatables, dans NELUA, vous pourriez vous implémenter vous-même une fonctionnalité similaire qui est entièrement décidée au moment de la compilation ou en dynamique à l'exécution.
NELUA peut effectuer une programmation extensible car le programmeur peut ajouter des extensions au langage telles que de nouvelles grammaires, des définitions AST, de la sémantique, des vérificateurs de type, de la génération de code et des comportements au compilateur au moment de la compilation via le préprocesseur.
Nelua prend en charge la gestion de la mémoire collectée et manuelle d'une manière que le développeur peut facilement choisir entre l'utilisation de la collection de déchets, ou désactiver complètement la collecte des ordures ou le mélange des deux.
NELUA se compile d'abord à C, puis il exécute un compilateur C pour produire du code natif. De cette façon, le code C et les bibliothèques existants peuvent être exploités et de nouvelles bibliothèques C peuvent être créées. Un autre avantage est que Nelua peut atteindre les mêmes plates-formes cibles que les compilateurs C99, tels que GCC ou Clang, tout en bénéficiant d'optimisations de compilateur de pointe.
La motivation initiale de sa création a été de remplacer les parties C / C ++ des projets qui utilisent actuellement LUA par une langue qui a une syntaxe et une sémantique similaires à LUA, mais permet des optimisations de performances à grain fin et ne perd pas la capacité d'aller à bas niveau, unifiant ainsi la syntaxe et la sémantique sur les langages compilés et dynamiques.
Vous pouvez soutenir ou contribuer à Nelua à bien des égards, en donnant au projet une star sur GitHub, en testant ses fonctionnalités, en rapportant des bogues, en discutant des idées, en aidant d'autres utilisateurs, en le diffusant au monde, en partageant des projets réalisés sur Github, en créant des tutoriels ou des articles de blog, en améliorant sa documentation ou par un don ou un parrainage.
NELUA est open source, mais pas très ouvert aux contributions sous forme de demandes de traction, si vous souhaitez quelque chose de fixe ou d'implémentation dans la langue principale, essayez d'abord de soumettre un rapport de bogue ou d'ouvrir une discussion au lieu de faire un PR. Les auteurs le préfèrent de cette façon, afin que la solution idéale soit toujours fournie, sans conséquences indésirables sur le projet, gardant ainsi la qualité du logiciel.
En savoir plus sur la contribution de la page contributive.
Licence MIT