読者です 読者をやめる 読者になる 読者になる

ひっきぃのメモ帳

趣味で作るプラモデル製作の過程と作品、日々の資格取得へ向けての活動、Apple中心のIT関連ネタを書いています。

擬似言語シミュレータを作りたい

基本情報技術者を目指している人

職業柄、基本情報技術者を目指す人と多く接するのですが、プログラム経験がない人にとって擬似言語が鬼門になる場合が多いですね。どうやってマスターするかというと丁寧にトレースして理解していくしか無いとは思います。私は基本情報技術者ではなく第2種情報処理技術者の時代に取得したままです。あの当時は擬似言語なんてなかったですからね。その代わり言語を2つ選ばなければならなかったですね。FortranCASL*1を選択しました。懐かしい。

トレースするしか無いでしょう

実際トレースするしか無いと思うんです。私が初めてさわったプログラムはBASICでした。意味もわからずゲームプログラムを入力*2しては実行して。ノーミスで入力が終わることも無いのでエラーを直して。ちょっとずつトレースするようになりました。ゲームしたかったから(笑)

でも、これでなんとなくプログラムの基礎は身についたかなと思います。

トレースが良いとはわかっていても

つまらないですよね。わかりますよ。架空言語だから動作環境が無い*3です。学習し始めのころは辛いですよね。完成品が動作する実感がないですから。

シミュレータを作りたい

ということで、なんとなくシミュレータを作りたいと思っているのです。Webベースで動くものが良いかな。Javascriptで動作するイメージ。入力したり出力したり、変数の内容が見れたり、配列も表示したりしたい。トレース支援になるようなものがいいな。

勉強始めました

勉強というほどではありませんが以前に買ってあった本を読み始めました。

 

明快入門コンパイラ・インタプリタ開発 C処理系を作りながら学ぶ (林晴比古実用マスターシリーズ)

明快入門コンパイラ・インタプリタ開発 C処理系を作りながら学ぶ (林晴比古実用マスターシリーズ)

 

 シミュレータを作りたいだけなので、機械語まで落とす必要はないですが、構文解析の部分とか使えるかなと。

計画

なんとなく以下の手順かなと思っています。

  • 擬似言語と1対1に対応する言語の設定(C言語風)
  • 構文解析して中間言語へ変換
  • 中間言語を解釈して実行できるようにする
  • 入出力に関するWebベースのインターフェースの作成
  • 擬似言語特有の判定や繰り返しの記号のGUIインターフェースの作成

結構長丁場になりそうなので、ちまちまと作れたら良いかな。

 

*1:CASLはIIではなくIでした。

*2:当時はマイコンBASICマガジンとかありましたね

*3:シミュレータがついてる書籍はありますが