クリスタルプログラミング言語

Eric Michels-Aubertのインタビュー記事RubyHero-2014を読んでいるときに、Crystal Yapについて言及しました。

「どんな種類の獣?」-私は考えて、登って情報を探しました。 私が見つけたのは、感動したことです。



クリスタルを満たす



言語を作成するために、著者は次の目標を設定しました。





Ruby構文の簡潔さ+ Cの速度? いいですね。



githubリポジトリへの最初のコミットは2012年9月2日に行われました。 現在、言語の開発はバージョン0.7.1のアルファ段階にあります-構文と標準ライブラリは変更される可能性があります。



興味深いことに、バージョン0.7.0では、デフォルトですべてのIOが非同期になりました。 Goでは、Crystalでは、チャネルを使用してマルチスレッドを簡単にできます。 素数の計算例(Goから移植されたリポジトリの例)で、チャネルの使用がどのように見えるかを以下に示します。

def generate(chan) i = 2 loop do chan.send(i) i += 1 end end def filter(in_chan, out_chan, prime) loop do i = in_chan.receive if i % prime != 0 out_chan.send(i) end end end def run_filter(in_chan, out_chan, prime) spawn { filter(in_chan, out_chan, prime) } end ch = Channel(Int32).new spawn { generate(ch) } 100.times do prime = ch.receive puts prime ch1 = Channel(Int32).new run_filter(ch, ch1, prime) ch = ch1 end
      
      







リポジトリには、 赤黒木の実装、 光線追跡N体問題の解決ニューラルネットワークブレインファックインタープリターなど、さまざまな問題を解決するための言語の使用例が多数あります。 単純なhttpサーバーの例もあります。



7月6日に、開発者はプラハで開催されたCurry Onカンファレンスで言語に関するプレゼンテーションを行います。



All Articles