CASLのすすめ

第1章 CASLとは

 経済産業省が毎年行う情報処理技術者試験において、アセンブリ言語プログラムを記述するために用意した言語で、特定のコンピューターによらずにアセンブリ言語プログラムを書けるよう、COMETという仮想コンピューターを考え、その機械語用のアセンブリ言語としてCASLを作った。その後、2001年春期に実施された基本情報技術者試験(従来の第二種情報処理技術者試験を改名)では、仮想コンピュータをCOMET IIに変えたのに合わせて、アセンブリ言語もCASL IIに一新されている。

 要するに、CASLとは、基本情報技術者試験での受験者のプログラム能力を問うにあたり、慣れ親しんできた機種の違いによる不公平さをなくすために、仮想で作られた標準アセンブル言語だ。基本情報技術者試験の午後問題の7問中の2問は、C、COBOL、Java、アセンブラの中から、受験者の得意な言語を選択できるが(2001年秋期からFORTRANが廃止されJavaが追加)、このアセンブラの言語に(アセンブリ言語)のCASLが使われている。

第2章 CASLの意義

 「仮想コンピューターを考え、試験で使うだけのCASLに、どれだけの意義があるのか」とか、「世の中で広く使われてるのはCやJavaじゃないか」という点について考えてみる。

 CASLは、プログラムのロジックやコンピュータの仕組みを学ぶ上で有意義だが、すぐに実用になるという観点からは程遠いことも事実だ。ただし、CASLはコンピュータに最も近い機械語用のアセンブリ言語なので、プログラムの基礎知識を学ぶには格好の言語だ。前にも述べたが、2001年秋期の基本情報技術者試験では、FORTRANが廃止されてJavaが追加されたが、時代がどのように変わろうと、普遍の知識であるとの観点からもCASLは貴重だ。

 受験者の立場で、得意とするプログラム言語がなく、新しく独学でかつ短期的に学ぶことを考えた場合も、やはりCASLは向いている。なぜならば、プログラムの命令コマンド数 が36個と少ないのと、コーディングもすこぶるシンプルだからだ。シンプルさ故の難しさや、捻くれた問題があるのも事実だが、特に高齢の受験者にとって、暗記することが少ないのは有利だろう。

命令コマンド数(CASL II仕様)
命令の種類 命令コマンド 用途 個数
アセンブラ命令 START, END 始めと終わり 4
DC, DS 定数と領域の定義
マクロ命令 IN, OUT 入力と出力(表示) 4
RPUSH, RPOP レジスタの退避・復元
機械語命令 LD, ST, LAD 転送、格納 28
ADDA, SUBA, ADDL, SUBAL 算術・論理加減算
AND, OR, XOR 論理演算
CPA, CPL 算術・論理比較
SLA, SRA, SLL, SRL 算術・論理シフト
JPL, JMT, JNZ, JZE, JOV, JUMP 分岐
PUSH, POP スタック操作
CALL, RET サブルーチン
SVC, NOP その他


第3章 CASLを学ぶには

 学習教材に多種多様のものがあり、人それぞれ効果的な学習方法も異なるが、プログラムを学ぶ上で必須なのが、キーボードを叩いて体で覚えるための実習用の シミュレーションソフトで、これの出来次第で学習効率や楽しさが全く変わるので、自分に合った良いものを入手したい。

 シミュレーションソフトとしては、情報処理技術者試験センターで学習用のCASLIIシミュレータが配布されているが、動作させるにはJava 2SDKも必要で、セットアップが面倒な上に、GUI環境でないなど操作性がもう一つだ。
 むしろ、オンラインソフトで使い勝手の良いのがあり、シェアウェアを避けてCASLII対応のフリーソフトをしらみつぶしでダウンロードして調べた結果、独断と偏見で下記の2つ が気に入ったので紹介する。(特にinfoservのサイトには、情報処理技術者試験をめざすに有用な情報もあるので、是非一度訪れてみたい。)
  infoserv(東京理科大学)サイトInfoCASL
  TeamCASL Official HomepageCASL2000
 どちらも残念ながら、簡単なHELPしかないので、初心者には戸惑うかもしれない。ただし、InfoCASLについては、工学図書からアセンブラ言語 CASL IIが出版されていて、シミュレータの使い方が解説されている。

 さて、無償のシミュレータを入手する方法について述べてきたが、 本当に学ぶつもりになれば参考書の1冊ぐらいは必要で、参考書を買えば一緒に立派なシミュレータがおまけに付いてくる書籍を紹介する。

 参考書は、新星出版社から発刊のCASL II 完全合格教本(著 福嶋宏訓)で、A5版のコンパクトサイズながら文字も比較的大きく、解説もわかりやすい。また、添付のCD-ROMには、著者の福嶋宏訓氏が制作のLet's CASL II が収録されているが、高機能で非常に使い勝手も良い。(Let's CASL IIは公開されておらず、入手には参考書を買う方法しかない。)
 教本には、Let's CASL IIの詳しい使用方法の解説があるともに、本文ではLet' CASL IIを使いながら学ぶようにカリキュラムが組まれているので、自然にシミュレータの操作方法も身につくように考慮されている。

 右は、Let's CASL IIで3+5の算術加算をシミュレートする様子をキャプチャーしたものだ。前の章で、CASLは命令コマンド数が少ないと述べたが、ここですでに8個のコマンド(START, LD, ADDA, ST, RET, DC, DS, END)を使用してるので、このプログラムをマスターすれば、後は残る28個のコマンドを覚えれば完璧となる。(^^)v

 CASLを学ぶには、わかりやすい参考書と高機能で使い勝手の良いシミュレータが同時に入手できる観点で、この本は私の一押しだ。

第4章 まとめ

 第1章の「CASLでは」では、機械語用のアセンブリ言語としての生い立ちと、基本情報技術者試験で問われるアセンブラの標準アセンブリ言語としての位置付けを書いた。
 第2章の「CASLの意義」では、永劫普遍でもあるプログラムのロジックやコンピュータの仕組みを学ぶ上で格好の言語であることと、プログラムの命令コマンドが少ないので、新しく独学でかつ短期間で学ぶプログラム言語として、有利であることを書いた。
 第3章の「CASLを学ぶ」では、最も効率的に楽しく学ぶための具体的な方法を、筆者の調査した範疇で書いてみた。

 『CASL II完全合格教本』の中で、著者の福嶋宏訓氏は「正しい学習とは楽しい学習」と述べているが、まさしくその通りで、新しいことを理解する喜びを感じながら、知的な好奇心を満足させる学習こそが、知識を真に自分のものにする正しい学習であり、かつ楽しい学習でもあると思います。

 CASLに興味を持っていただき、秋の夜長を知的なゲームに酔いしれ、皆さんのよきパソコンライフの一助になればと想い、本稿を執筆しました。もちろん、基本情報技術試験の合格につながれば、筆者の至高の喜びでもあります。

2006/04/15   リンク訂正 
2001/11/11 木村俊一郎