こんにちは、あっきーです。
基本上方技術者の午後の試験で一番重要な問題となる
問7~11「ソフトウェア開発」(通称プログラミング問題)。
このプログラミング問題は、以下の5つの言語から選択して答えるという形式です。
- C言語
- Java言語
- Python言語
- アセンブラ
- 表計算
(表計算自体はプログラミング言語ではありませんが・・・)
で、こう見てみると、
C言語やJava言語、最近はAIとか流行ってきてて、その分野でよく使われているPython言語なんかは

あー、プログラマがよく使うプログラミング言語だよねー
というイメージは持っていただけると思います。
表計算についても、Microsoft社が出している有名な「Excel」というソフトがありますので、
そのソフトを使ったことがなくても、なんとなくイメージはわかりますよね。
でもアセンブラって・・・?
「アセンブラって何!?」
ってなりません?

・・・・
アセンブラって、プログラミング言語とは違うの・・・?
今回は基本情報技術者試験のプログラミング問題の1つである「アセンブラ」とはどういうものなのか?
そこんとこを解説させていただきたいと思います。
本記事をお読みいただくことで、以下のメリットがあります。
✅ アセンブラが理解できた
✅ 基本情報技術者のプログラミング言語の選択肢が広がった
✅ 基本上方技術者試験の合格率が上がる
ぜひ最後までお読みくださいませ。
アセンブラとは低水準言語の一つ
アセンブラとは低水準言語の一つなんです。
低水準言語とはコンピュータが直接解釈できる「機械語」、または機械語に近い構造を持った言語のことです。
で、「低」というくらいですから、「高」水準言語というのものもあるのではないか?
そう思いますよね?
はい、あります!
高水準言語が基本情報技術者のプログラミング問題で出題される、C言語、Java言語、Python言語となるんです。
まとめると、基本情報技術者試験のプログラミング問題で出題される言語については
以下のような区分けになります。
低水準言語:アセンブラ
高水準言語:C言語、Java言語、Python言語
まずはこういう区分けとなることを理解してください。
低水準言語と高水準言語の違い
では次に、低水準言語と高水準言語の違いは何か?について解説したいと思います。
一般的には、低水準言語はコンピュータ側に近い言語、高水準言語は人側に近い言語と言われています。
より具体的にいうと、
コンピュータ側に近い低水準言語は、コンピュータのハードウェア面も意識してコードを書く必要があります。
代表的なのは、メモリアドレスを意識して書くということです。
アセンブラでは、変数を利用する際、
メモリアドレスを意識し、どのアドレスのメモリ領域を使うのか、どのアドレスのメモリ領域へ値を格納するのかということも指定する場合があります。
アセンブラのコード例
逆に高水準言語であれば、こういったコンピュータの内部のことは意識せずとも良いのです。
変数一つとっても、変数名だけ指定すればメモリアドレスなんてものは中で勝手にやってくれます。
そして言語によって違いはあれど、
高水準言語は人が読みやすいようにコードの書き方も工夫されています。
基本情報技術者試験のアセンブラはCASL2という入門用言語
ここまで聞くと、
「機械語とかメモリとかよくわからんよ・・。」
「低水準言語はやっぱり難しそうだな。」
こう思われると思います。
ですが、さすがにそこは試験団体(IPA)も意識しているのでしょう。
IPAでは、アセンブラの入門用として「CASL2」という独自の言語を作成し、
その言語をベースに問題を出題しています。
CASL2は命令数が28だけで成り立つアセンブラの入門言語となっており、
初心者であっても比較的わかりやすく作られておりますので、習得するのにそこまで時間はかかりません。
まぁ、難易度という理由だけでCASL2を作ったわけではありませんが、
そういうこともあり、
言語としての総合的な難易度は非常に易しくなっているというのが実情です。
まとめ
基本情報技術者試験で出題されるアセンブラ言語とは、コンピュータが理解する機械語に近い言語です。
そのためメモリアドレス等、ハードウェアの動作も意識しながらコードを書く必要があります。
しかし、IPAではアセンブラの入門言語「CASL2」という初心者でもとっつく易い言語を作成しました。
CASL2は命令数がわずか28と、覚えることも少なく短時間で習得できる言語であるため、
他のC言語、Java言語、Python言語と比較しても難易度は易しい部類に入ります。
IT初心者だからと言って、アセンブラを対象外にするのではなく、逆にIT初心者だからこそアセンブラを検討していただければと思います。
いかがでしたでしょうか?
じゃ、どのプログラミング言語を選べば良いか?
そう疑問に思われた方は以下の記事をお読みください。

そして・・・
✅ どのようにプログラミング言語問題を攻略していけばよいのか?
✅ 具体的な勉強法とは?
そんな疑問にお応えするため、無料メルマガ・LINEマガジンを発行しております。
ご興味がありましたら、以下のバナーよりご登録の上、ご一読ください。