Nim
c2nimはAnsi CのコードからNimのコードに変換するときに新たなBindingを生成するのに寄与する。出力は人間に読むことが可能なNimのコードになり、これにより変換後に人の手での改善・改良が可能になる。
これはNimのテンプレート機能を使ったメタプログラミングの例である。
genTypeはコンパイル時に呼び出され、Test型が作成される。
Nimはシンプルな構文による静的型付け言語である。構文マクロや項書き換えマクロなどのコンパイル時のメタプログラミング機能をサポートしている。項書き換えマクロは例えばBignumやMatrixなどのデータ構造の効率的ライブラリ実装を可能にしており、BignumやMatrixなどがあたかも元々の言語機能に組み込まれていたかのような効率的な実装を可能にする。イテレータもサポートしており、このイテレータはNimの中で第一級オブジェクトとして用いることができ、これら機能は関数プログラミングを可能にする。オブジェクト指向プログラミングは継承と多重ディスパッチによってサポートされている。関数はジェネリックになりうるし、オーバーロードも可能である。またTypeクラスがサポートされており、これはジェネリクスを促進するものである。演算子オーバーロードもサポートされている。Nimは循環参照検出つきの遅延参照カウントに基づくガベージコレクタを搭載している。アンドリュー・ビンストックはNimに関して「(Nimは)PascalおよびPythonにまたがる非常に独創的なデザインを提供し、CやJavaScriptのコードにコンパイルすることができる」と述べた。