令和7年度 秋期 午前 問7
開発技術
Scalaの特徴
OSS として公開されているプログラム言語である Scala の特徴はどれか。
- アオブジェクト指向プログラミングと関数型プログラミングの両方が可能である。
- イクラスの多重継承が可能である。
- ウ実行前にコンパイルして,ネイティブコードを生成する必要がある。
- エ変数の型が,参照する実際の値によって実行時に決定される動的型付け言語である。
答えと解説を見る
✓ これが正解アオブジェクト指向プログラミングと関数型プログラミングの両方が可能である。
解説
オブジェクト指向と関数型を同じ言語で書けます。
この設問は、Scala の特徴として当てはまる説明を選ばせています。ですから見分けの軸は、その言語がどのような書き方を許すのか、実行の前にどのような形へ変換するのか、そして型が静的か動的かという三点だけです。Scala は JVM の上で動く言語で、クラスとオブジェクトを中心にしたオブジェクト指向の書き方と、値の不変性や高階関数、パターンマッチを中心にした関数型の書き方の両方を、同じ言語の中で組み合わせられるように設計されています。したがって当てはまるのは、オブジェクト指向プログラミングと関数型プログラミングの両方が可能であるという説明です。単一のクラス継承だけを許す点、既定でバイトコードへ変換して JVM 上で実行する点、そして変数の型がコンパイル時に決まる静的型付けの言語である点は、残る三つの記述がそれぞれ当てはまらない理由になります。
ほかの選択肢はなぜ違うのか
- イクラスの多重継承が可能である。:クラスの多重継承が可能だと述べる説明ですが、Scala のクラスの継承は単一に限られます。複数の親からの再利用は、トレイトと呼ばれる部品をあとから重ねる仕組みで実現しており、クラスそのものを複数の親から継ぐ方式は採用されていません。
- ウ実行前にコンパイルして,ネイティブコード…:実行の前にネイティブコードを生成する必要があると述べる説明ですが、Scala の標準の実行形はネイティブコードではなく JVM が読むバイトコードです。派生の実装はあるものの、常にネイティブ生成が必要だと言い切ることはできません。
- エ変数の型が,参照する実際の値によって実行…:変数の型が実行時に決まる動的型付け言語であると述べる説明ですが、Scala は型がコンパイルの段階で確定する静的型付けの言語です。書くときに型の宣言を省ける機能はありますが、それは強い型推論によるもので、動的型付けとは別の性質です。
この問題の用語
- プログラム言語プログラムを書くための文法や記号の体系のこと。目的に合わせて多くの種類があり、Java、C、Pythonなどがよく使われます。
出典:令和7年度 秋期 応用情報技術者試験 午前 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)