ハードウェアの気になるあれこれ

技術的に興味のあることを調べて書いてくブログ。主にハードウェアがネタ。

Scalaの勉強 - Scalaの環境構築

スポンサーリンク

最終的に扱えるようになりたいのはChiselなのだけれども、Chiselを勉強しようにもそもそもベースになってるScalaも書けないのでまずはそこから一通り見ていく。

Scalaって??

ドワンゴが公開してくれている資料から引用させていただく。

Introduction · Scala研修テキスト

Scalaとは
Scalaは2003年にスイス連邦工科大学ローザンヌ校(EPFL)のMartin Odersky教授によって開発されたプログラミング言語です。Scalaではオブジェクト指向関数型プログラミングの両方を行えるところに特徴があります。また、処理系はJVM上で動作するため1、Java言語のライブラリのほとんどをシームレスに利用することができます。
Scalaとは · Scala研修テキスト

ふむふむ。オブジェクト指向関数型プログラミングの両方を行える、、、と。 それプラスJVM上で動くのJavaのライブラリも使用可能!!とはいえ、Javaも書けないんですが。。
関数型プログラミングは触ってみたいとは思っていたのでちょうどいいかも。

Scala環境の構築

せっかく素晴らしい資料を公開してくださっているので、引き続きドワンゴの資料を元に環境を構築していく。

sbt

手順についてはこちら↓に従って進めていく。

sbtをインストールする · Scala研修テキスト

ということで、まずはsbt??のインストール。
sbtって何??って思っていたら、以下の記事を見つけた。

qiita.com

なるほど、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をインストールする · Scala研修テキスト

起動時には”仮のディレクトリを作成しておくことをお勧めする”とのことなので、ディレクトリを作ってから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のインストールはこれで完了!!