D man? blog

言語開発と開発ブログ

教育支援用CASL2・COMET2シュミレータ

お久しぶりです。

今回はOS-CPU Advent Calendar 2019 - Adventarの記事です。

はじめに

皆さんアセンブリ言語はどのように習得されましたか?

CTF?組み込み?などなどあると思います。

一部大学や工業高校でも情報科学の一歩としてアセンブリ言語を勉強するそうです。

いろいろアセンブリ言語がある中でてっとり速く習得できるアセンブリ言語として、IPAが策定したCASL2があります。

>> CASL(キャスル)は、情報処理技術者試験におけるプログラミング能力試験のために、CAP-Xの後継として1986年仕様策定したアセンブリ言語である。 <<
CASL - Wikipedia

CASL2は命令セットが少なくシンプルであるため、アセンブリ言語教育として多く使われています。

仕様はこちらを見ていただけたらわかります。
アセンブラ言語CASLⅡの仕様

CASL2を動かすマシンとしてCOMET2と言われる仮想マシンも実はIPAが策定しています。

ja.wikipedia.org

問題点

CASL2・COMET2は実際に教育現場で使われているのですが、良いシミュレータが余り存在しない点があります。

CASL2を動かす分にはいいのですが、CPUの可視化・CPUの命令サイクルの動きなどCPU本来の動きを見せているシミュレータが余りありません。

個人的に理想に近いシミュレータが
www.ics.teikyo-u.ac.jp
になります。

が筆者のOSがArchLinux&MacOSであるため、簡単には動きません。まして、教育用ということで最近流行りのChrome OSAndroidなど環境にとらわれないシミュレータがほしいところです。

解決

というわけでCASL2・COMET2シミュレータをつくりました!!

wocasl2.herokuapp.com

Webブラウザで動作します。

使い方はこちらを参考にしてください。https://wocasl2.herokuapp.com/help


アセンブルやシミュレータ部分を完全フルスクラッチのためエラーの原因やメモリのオーバーフローなど独自で検知できるようになっています。

しかし、まだ開発中のためCOMET2のCPUの可視化が全然できておりません。COMET2のトグルボタンをオンにするとCPU可視化モードが音になる予定です。

最後に

バグの発見や改善案などございましたら
github.com
issuesまでどうぞ

よろしくお願いいたします。