最終的に扱えるようになりたいのはChiselなのだけれども、Chiselを勉強しようにもそもそもベースになってるScalaも書けないのでまずはそこから一通り見ていく。
Scalaって??
ドワンゴが公開してくれている資料から引用させていただく。
Scalaとは
Scalaは2003年にスイス連邦工科大学ローザンヌ校(EPFL)のMartin Odersky教授によって開発されたプログラミング言語です。Scalaではオブジェクト指向と関数型プログラミングの両方を行えるところに特徴があります。また、処理系はJVM上で動作するため1、Java言語のライブラリのほとんどをシームレスに利用することができます。
Scalaとは · Scala研修テキスト
ふむふむ。オブジェクト指向と関数型プログラミングの両方を行える、、、と。 それプラスJVM上で動くのJavaのライブラリも使用可能!!とはいえ、Javaも書けないんですが。。
関数型プログラミングは触ってみたいとは思っていたのでちょうどいいかも。
Scala環境の構築
せっかく素晴らしい資料を公開してくださっているので、引き続きドワンゴの資料を元に環境を構築していく。
sbt
手順についてはこちら↓に従って進めていく。
ということで、まずはsbt??のインストール。
sbtって何??って思っていたら、以下の記事を見つけた。
なるほど、scalaのビルドツールとな。scala言語を書いてても触れたことないと著者の方が書いているのでなくてもscala自体を使うことはできるみたい。
リファレンスマニュアルはこちら→sbt Reference Manual — sbt Reference Manual
Java環境の確認
前述の通り、JVM上で動作するものなのでScalaを動作させるにはJDKがインストールされている必要がある。
ということで環境の確認から。
$ apt search jdk openjdk-8-jdk/xenial-updates,xenial-security,now 8u181-b13-0ubuntu0.16.04.1 amd64 [インストール済み] OpenJDK Development Kit (JDK) openjdk-8-jdk-headless/xenial-updates,xenial-security,now 8u181-b13-0ubuntu0.16.04.1 amd64 [インストール済み、自動] OpenJDK Development Kit (JDK) (headless) openjdk-8-jre/xenial-updates,xenial-security,now 8u181-b13-0ubuntu0.16.04.1 amd64 [インストール済み、自動] OpenJDK Java ランタイム - Hotspot JIT 版 openjdk-8-jre-dcevm/xenial 8u74-1 amd64 Alternative VM for OpenJDK 8 with enhanced class redefinition openjdk-8-jre-headless/xenial-updates,xenial-security,now 8u181-b13-0ubuntu0.16.04.1 amd64 [インストール済み、自動] OpenJDK Java ランタイム - Hotspot JIT 版 (ヘッドレス)
現在のPCには一通り入れていたっぽい。環境変数もついでに確認
$ env | grep JAVA_HOME JAVA_HOME=/usr/lib/jvm/java-8-oracle
問題なさそうなので、改めてsbtのインストールへ。
sbtのインストール
Linuxの場合はsbtのサイトからデータ一式をダウンロードして、適当なパスに展開したのち、環境変数PATH
の設定を行うだけよいとのこと。
sbtのサイト見るとapt
コマンドでのインストールも可能みたいだけど、とりあえず今回は一式をダウンロードしてPATH設定を行う方法を採用
aptコマンド使ったインストールはこちら→https://www.scala-sbt.org/download
上記のsbtのダウンロードページの"All platfoprms"からデータをダウンロード。なおこの記事を書いている時の最新バージョンは1.2.1(2018年8月26日時点)
$ wget https://piccolo.link/sbt-1.2.1.tgz $ tar xf sbt-1.2.1.tgz $ cd sbt/bin $ export PATH=$PWD:$PATH
動作確認
ドワンゴの資料では、REPL(Read Eval Print Loop)機能を使ってScalaプログラムの基本的なことを試していくが、その環境としていsbt console
コマンドで起動できるターミナルを使用する。
起動時には”仮のディレクトリを作成しておくことをお勧めする”とのことなので、ディレクトリを作ってからsbt console
で起動
$ mkdir 000_sbt_trial $ cd 000_sbt_trial $ sbt console
初回起動時はなんかいろいろとダウンロードが行われた後に以下のようにscala consoleが起動して、コマンドを受け付ける状態になる。
起動時のログはこちら→initial running log of scala console · GitHub
scala>
sbt consoleを終了する場合は以下のようにする。
scala> :quit
上で初回起動時に”いろいろとダウンロードされて”と書いたが、その中にScala本体も含まれているので、Scalaのインストールはこれで完了!!