Neluaとは
公式HP : Nelua Programming Language
特徴
公式サイトから翻訳して軽くまとめてあります
自分で翻訳するのが面倒な方向けの記事になります.
- 静的型付け
- コンパイル時に型チェックが行われ,効率的なバイナリが生成されます.また,コンパイラは型を推論することができます.
- メモリ効率
- 手動でメモリ管理を行うことができ,オプションのガベージコレクタはLuaよりも効率的です.
- Luaフレーバー
- Luaを知っているならNeluaも書くことができる.同じ構文,セマンティクス,機能,APIを持っています.
- 安全性
- 未定義の動作を最小限に抑え,コンパイル時のチェックと実行時のチェックを行うことで,安全な言語を目指しています.
- C言語にコンパイルされる
- Neluaのコンパイラは最初にC言語を生成し,それをネイティブコードにコンパイルします.
- どこでも使える
- 最小限の依存関係しかないので,ウェブを含め,C言語が利用できるあらゆる環境で使用できます.
- 自己完結型
- Neluaは外部ライブラリを使用せず,Cコンパイラがあれば利用できます.
この記事で説明できなさそうな特徴に関しては省略させてもらいました.他にも,メタプログラミングが可能であったり,コンパイラがLuaで書かれているために変更可能である,などの特徴があります.
ロードマップを確認したところ,完全にLuaの機能をNeluaで再現できているわけではなく,これから実装を進めていくつもりのようです.
Install
公式HPより
筆者の環境はWSL2 Ubuntuです
git clone https://github.com/edubart/nelua-lang.git
cd nelua-lang
make install
nelua examples/helloworld.nelua
おなじみの hello worldと出ます.
Tutorial
今度は --verbose
オプションを付けて実行します.
nelua --verbose examples/helloworld.nelua
コンパイラによりhelloworld.cというファイルが生成され,そのファイルがgccによりコンパイルされる過程が表示されているはずです.
gcc以外のコンパイラを用いたい場合は, --cc
オプションを使い,Clangなどのコンパイラを使うことが可能です.
シンタックスハイライト
現時点では Sublime Text向けにnelua-sublime のみが存在しています.他のエディタでは不完全ではありますが,Lua向けのシンタックスハイライトで代用することが可能です.
チュートリアルは以上で完了です.開発途中なのでこれだけしか用意されていないようですが,examplesやtestsが参考になるかと思います.