技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

情報処理技術者試験対策「アセンブリ言語(CASLⅡ)」

目次

https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM

-------------------------------
今回は、基本情報処理技術者試験の午後選択問題で出題されるアセンブリ言語CASLⅡ」について書きます。
と言っても、文法的な話は書籍や他サイトで勉強した方が良いので、実務での活用場面やサイトの紹介がメインになります。
 
「今時アセンブリ言語を使う現場なんてないのでは」と思われるかもしれませんが、レガシー資産を活用する現場では必要になることがあります。
 
私も少しだけ携わったことがあります。
遥か昔に社内で作成されたロードモジュールがあり、そのロードモジュールを新システムへ移行する要件がありました。
しかし、現システムと新システムではハードウェアの仕様が異なりそのまま移行できなかったため、ロードモジュールをアセンブリ言語により解析し、新システムでコンパイル可能なソースコードの形に変換し対応したことがあります。
(社内に詳しい人がいて助かりました。なお、そのプログラムは現在も無事に稼働しています。)
 
また、他の方から聞いた話だと、ホストコンピュータで高性能を求められる場合は、機械語に近いアセンブリ言語で実装する必要があるという話を聞きました。COBOLのような高級言語だと遅くなるそうです。
 
なお、アセンブリ言語には不正なコーディングからコンピュータを守る仕組みがないため、コンピュータウイルス作成やハッキングの世界でもアセンブリ言語は使われたりするそうです。
 
基本情報の試験対策の面から見ても、未経験の段階でCやCOBOLjavaの言語仕様を把握するのはかなりハードルが高いので、言語仕様が問題中に明記され高度な処理も行わないCASLⅡでの受験は有効になります。
(私も基本情報に合格した際はCASLⅡで受験しました。なお、表計算は出題されない時代でした。今なら表計算の方が楽と言えば楽かもしれません。)
初学者の学習の面からも、機械語と命令が1対1対応しているアセンブリ言語を学ぶことでコンピュータの動きを理解できるため、C言語java等の高級言語を学ぶ足がかりになるのでお勧めです。
 
CASLⅡは色々なサイトでシミュレータが公開されていたり、文法的な解説がされていたりします。
今回は、その中でお勧めのサイトを2つ紹介します。
 

----------------------
2018/11/28
偶然同じ会社にアセンブリ経験者がいたので、その方から聞いた話を元に内容を一部見直しました。