令和7年秋期試験問題 午前問7

OSSとして公開されているプログラム言語であるScalaの特徴はどれか。

  • オブジェクト指向プログラミングと関数型プログラミングの両方が可能である。
  • クラスの多重継承が可能である。
  • 実行前にコンパイルして,ネイティブコードを生成する必要がある。
  • 変数の型が,参照する実際の値によって実行時に決定される動的型付け言語である。
正解 問題へ
分野 :テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:プログラム言語
解説
Scala(スカラ)は、オブジェクト指向と関数型という2つの異なるプログラミングの考え方を統合して扱えるマルチパラダイムのプログラム言語です。主にJava仮想マシン上で動作し、既存のJavaプログラムやライブラリと高い互換性を持っています。Scalaが使われている著名なサービスとして「X(Twitter)」があります。
object HelloScala {
 def main(args: Array[String]): Unit = {
  val numbers = List(1, 2, 3, 4, 5)
  val doubled = numbers.map(_ * 2)
  val evenNumbers = doubled.filter(_ % 2 == 0)

  println("元のリスト: " + numbers)
  println("2倍にしたリスト: " + doubled)
  println("偶数のみ抽出: " + evenNumbers)
 }
}
  • 正しい。Scalaではオブジェクト指向プログラミングと関数型プログラミングの考え方を組み合わせて使うことができます。
  • クラスの多重継承はできません。ただし、トレイト(実装を含むことができるインタフェース)の仕組みを使うことで、複数のクラスの振る舞いをミックスインとして加えられる機能を有します。
  • ScalaはJava仮想マシン上で動作する言語です。プログラムはまずバイトコードにコンパイルされ、実行時にJITコンパイラによってネイティブコード(機械語)に変換されて動作します。実行前コンパイルでのネイティブコード生成は必須ではありません。
  • ScalaはJavaと同じ静的型付け言語で、コンパイル時に型が確定します。ただし、Scalaには型推論という仕組みがあり、型を記述しなくてもコンパイラが自動で判断してくれます。

Pagetop