nelua.io
Nelua( native extensible Luaの略)は、CおよびネイティブコードにコンパイルするLUAに重度に触発された言語をプログラミングする最小限で、効率的で、静的に型のプログラミング可能なシステムプログラミング言語です。
注:言語はアルファ状態であり、まだ進化しています。
#showcaseチャンネルをチェックしてください。インストール後、有名なSDL2ライブラリを活用する蛇のゲームである注目の例をチェックしてください。
nelua examples/snakesdl.neluaNeluaは、オペレーティングシステム、リアルタイムアプリケーション、ゲームエンジンなど、LUAが効率的でないパフォーマンスに敏感なアプリケーション向けのシステムプログラミング言語です。 LUAに似た構文とセマンティクスがありますが、主に効率的なCコードの生成に焦点を当て、非常に最適化可能な低レベルプログラミングのサポートを提供します。レコード、配列、手動メモリ管理、ポインターなどのネルアイディオムを使用すると、純粋なCと同じくらい効率的なパフォーマンスが発生するはずです。一方、テーブル、メタテーブル、無型変数などのLUAイディオムを使用する場合、コンパイラはこの種の動的機能のためにランタイムライブラリをプログラムに焼き、ランタイムオーバーヘッドが発生する可能性があります。
Neluaは、LUAで書かれたプリプロセッサコンストラクトを介してコンパイル時間にメタプログラミングを行うことができます。コンパイラ自体もLUAで記述されているため、ユーザーが提供するプリプロセッサコードは、コンパイラの内部およびソースコードのASTと任意の時点で対話できることを意味します。このようなシステムにより、クラス、ジェネリック、多型などの高レベルの構成要素のアドホック実装が可能になり、すべてコア仕様に追加することなく、言語をシンプルで拡張可能でコンパクトに保ちます。 Luaのオブジェクト指向パターンが言語に組み込まれていないのと同じ方法で、それにもかかわらず、Metatablesを使用して達成することができます。Neluaでは、コンパイル時に完全に決定されるか、実行時に動的に発送される同様の機能を実装できます。
Neluaは、プログラマーが新しい文法、AST定義、セマンティクス、タイプチェッカー、コード生成、および動作などの言語に拡張機能をコンパイラにコンパイラにコンパイラに追加することができるため、拡張可能なプログラミングを行うことができます。
Neluaは、開発者がガベージコレクションの使用を簡単に選択できるか、ガベージコレクションを完全に無効にするか、その両方を混合できるように、ゴミ収集と手動のメモリ管理の両方をサポートします。
Neluaは最初にCにコンパイルし、次にCコンパイラを実行してネイティブコードを作成します。このようにして、既存のCコードとライブラリを活用し、新しいCライブラリを作成できます。もう1つの利点は、NeluaがC99コンパイラなどのGCCやClangと同じターゲットプラットフォームに到達できると同時に、それらが提供する最先端のコンパイラの最適化も楽しむことができることです。
その作成の最初の動機は、現在LUAを使用しているプロジェクトのC/C ++部分を、LUAに似た構文とセマンティクスを持つ言語で置き換えることでしたが、微調整されたパフォーマンスの最適化を可能にし、低レベルに進む能力を失うことはありません。
Neluaをさまざまな方法でサポートまたは貢献し、プロジェクトにGitHubでスターを与え、機能をテストし、バグを報告し、アイデアを議論し、他のユーザーを支援し、世界に広め、Githubで作成されたプロジェクトを共有し、チュートリアルやブログ投稿を作成し、ドキュメントや寄付またはスポンサーシップを通じて改善します。
Neluaはオープンソースですが、コア言語に固定または実装されたものが必要な場合は、PRを実行する代わりにバグレポートを最初に送信したり、ディスカッションを開いたりしてみてください。著者はこのようにそれを好むので、プロジェクトに望ましくない結果がなく、ソフトウェアの品質を維持することなく、理想的なソリューションが常に提供されます。
寄付ページで寄付の詳細をご覧ください。
MITライセンス