全国の Nimrod ファンのみなさんこんにちは。
Nimrod Advent Calendar の 13日目を担当している、@takano32 a.k.a. TAKANO Mitsuhiro です。
今回はNimrodへようこそ - Prologueの続きとして、Nimrodの十八番の特徴である `Efficient' についての文章を翻訳してみます。
Nimrodは効率的な処理ができます
- Nimrodでは仮想マシンに依存しないネイティブコードの生成(現在はC言語を用いて生成しています)を行います。
- 再帰的ではなく、漸進的で世代型のガベージコレクタを搭載しており、ゲーム作成のようなちょっとしたリアルタイム性が要求されるシステムにも向いています。
- システムをプログラミングする上での特徴もあります。メモリアクセスを自分で制御し、直接ハードウェアを扱う能力もあるのです。また、ガベージコレクタが管理しているメモリ領域と自分で制御するメモリ空間はきちんと区別されています。
- オーバーヘッドがないイテレータも搭載しています。
- マルチターゲットの仕組みも搭載しています。
- 仮想メソッドのテーブルを使わないインラインのダイナミックなメソッドの定義にも対応しています。
- ユーザが定義した関数についてコンパイル時間を計測することもできます。
- 生成された実行可能なファイルには使われる機能のみが組み込まれ、すべてのプログラムからデットコードを消す仕組みをもっています。
- 値を基本にしたデータ型、たとえばオブジェクト型や配列型などをヒープではなくスタックに配置することができます。
14日目の記事はsyanbi a.k.a. @xga さんの記事になります。お楽しみに!