プログラミング言語「Crystal」を紹介します。この言語はRuby風のシンタックスが使えることが売りのコンパイラ言語で、以下のゴールを目標に開発されています。
- Rubyにインスパイアされたシンタックス。
- 変数またはメソッド引数の型を明示しない。
- Crystalでバインディングを書けばCのコードを呼び出すことができる。
- 定型コードをさけるために、コンパイル時評価とコード生成を持つ。
- 効率的なネイティブコードを生成する。
動作環境は(今のところ)Mac/Linux。
サンプル
Crystalで素数を求めるプログラムは以下のようになります。
# Compute prime numbers up to 100 with the Sieve of Eratosthenes
max = 100
sieve = Array.new(max, true)
sieve[0] = false
(2...max).each do |i|
if sieve[i]
(2 * i).step(max - 1, i) do |j|
sieve[j] = false
end
end
end
sieve.each_with_index do |prime, number|
puts number if prime
end
すごく…Rubyっぽいですね。
インストール
Introductionにインストール方法など詳細が記載されています。
Ruby 1.9以上、LLVM 3.3が必要。Macの場合brewで簡単にインストールできそうです(Linuxもいけるはずとの説明あり。Windows対応はまだなし)。
- brew install llvm33 --with-clang
- git clone git://github.com/manastech/crystal.git
- cd プロジェクトルート
- bundle
- bin/crystal -e 'puts "Hello!"'
まとめ
Ruby好きでかつネイティブにコンパイルしたいという用途なら結構使える言語かもしれません。まだ開発開始されてから1年しかたっていないということなので、今後の発展にも期待です。