2011年12月19日月曜日

Nimrod is elegant


全国の Nimrod ファンのみなさんこんにちは。
Nimrod Advent Calendar の 15日目を担当している、@takano32 a.k.a. TAKANO Mitsuhiro です。


Nimrodは美しい言語です

  • マクロは構文解析木の構築に欠かせないパラダイムです。Nimrodはメタプログラミングにマクロの他のスタイルを併用する必要がありません。
  • マクロはNimrod自身の文法を変えることはできないようにしてあります。Nimrodの文法は充分に柔軟だからです。
  • 複文はインデントによってそれぞれの組みにわけますが、複文自体は複数行にまたがっても大丈夫です。インデントは必ずしもハードタブで行う必要はなく、コンパイラはいつもあなたに合わせたインデントを考慮してくれます。

Nimrod plays nice with others


全国の Nimrod ファンのみなさんこんにちは。
Nimrod Advent Calendar の 12日目を担当している、@takano32 a.k.a. TAKANO Mitsuhiro です。


今回はNimrodの `Nimrod plays nice with others'(他との協調性) についての文章を翻訳してみます。

Nimrodはさまざまなプロダクトと親和性があります

  • NimrodのコンパイラはWindows、Linux、BSD、そしてMac OS Xで動作します。他のプラットフォームに移植することも簡単です。
  • GTK2やWindows APIやPOSIX API、それからOpenGLやSDLにCairoなどのマルチメディア分野やPython、Lua、TCLなどの言語にもバインディングが用意されています。X11やlibzipやPRCEも扱えますし、ODBCやlibcurlやMySQLやSQLiteのバインディングも用意されています。
  • C言語によって書かれたプログラムをNimrodのコードに変換するユーティリティも用意されています。c2nimを用いれば新しいC言語向けのライブラリのバインディングを簡単に生成することができます。
  • Pascal言語によって書かれたプログラムをNimrodのコードに変換するユーティリティもあります。これは Object Pascal の大半の仕様に対応しており、かなりのコードをNimrodのコードに変換することができます!

2011年12月14日水曜日

Nimrod is expressive


全国の Nimrod ファンのみなさんこんにちは。
Nimrod Advent Calendar の 14日目を担当している、@takano32 a.k.a. TAKANO Mitsuhiro です。


今回はNimrodは効率的 - Prologueの続きとして、Nimrodの二番目の特徴としてあげられている `Expressive' についての文章を翻訳してみます。

Nimrodはとても自由に表現できます

  • Nimrodのコンパイラ、および標準ライブラリはすべてNimrod自身で記述されています。
  • 組み込みでさまざまなデータ型をもっています。たとえば、文字列やセット、シーケンスなどのデータ型があります。
  • 近代的な型システムも搭載しています。ローカル副作用型、タプル型、多相型、ジェネリックス型などがあります。
  • ユーザは演算子を定義することもできます。ユーザが定義した新しい演算子によって組み込みの演算子を再定義したコードよりも読みやすくなる場合も多々あります。たとえば、 =~ の演算子は re モジュール(正規表現モジュール)のなかで定義されています。
  • 強力なマクロ機能も搭載しており、これを使えばコンパイルするときに抽象構文木を書き換えることも可能です。