はむ吉(のんびり)の練習ノート

プログラミングとことばに関する話題を中心に,思いついたこと,試してみたこと,学んだことを,覚え書きを兼ねてまとめます.その際に役立った,技術書,参考書,辞書,機器などの紹介も行います.

Bash on Windows上でプログラミング言語Crystalの処理系を使う

先日のWindows 10 Anniversary Updateにより、Insider Previewを利用しなくてもBash on Windowsを利用できるようになりました。そこで、以前から少し気になっていたプログラミング言語Crystalを、この画期的なシステムを利用して使ってみることにしました。

Crystalの概要

公式サイトによると、Crystalは静的型付け、コンパイル時評価などの特徴をもつ言語とのことです。その文法はRubyに似ていますが、Rubyとの互換性を目標としているのではないとのことです。

ドキュメントを読む限り、LinuxやMac OSXではパッケージマネージャ等を利用して容易に処理系を導入できるようですが、Windowsではそのような方法がまだないようです。

Crystal導入の手順

そこで、Bash on Windowsを利用することで、Ubuntu向けの比較的容易な手順でCrystal処理系をインストールしました。その概略を以下に示します。なお、使用したWindows 10のバージョンは1607(OSビルド14393.10)です。

Bash on Windows環境にCrystal処理系を導入する

以下の手順はOn Debian and Ubuntu | Crystal Programming Languageを参考にしたものです。

はじめに、以下のコマンドでリポジトリの設定を行います。これにより、apt-getを使ってCrystalを導入することができるようになります。

curl https://dist.crystal-lang.org/apt/setup.sh | sudo bash

次に、以下のコマンドにより、Crystalコードのコンパイルに必要なgccなどの開発ツールと、Crystal処理系をインストールします。私の環境では、前者の処理には10分ほどかかりましたが、後者は1分以内に終わりました。

apt-get install build-essential
apt-get install crystal

動作確認

動作を確認すべく、以下のコードを適当なテキストエディタhello.crとして作成します。Atomを利用している場合には、language-crystal-actualをあらかじめインストールしておくと、シンタックスハイライトが有効になります。

puts "こんにちは世界"

以下のコマンドでこのCrystalコードを実行することができます。「こんにちは世界」と表示されればOKです。

crystal run hello.cr

補足:競技プログラミングでの利用

Crystalに対応している競技プログラミングのサイトとしては、AtCoderyukicoderがあります。また、Google Code Jamなど、手元でコードを実行する様式のコンテストでも、もちろん利用可能でしょう。

感想

はじめは手こずるのではないかと思っていましたが、意外にもすんなりと導入できました。適宜Crystalを使っていきたいと考えています。また、これ以外のBash on Windowsの使い道についても考えてみたいと思います。