コンピューター理論、チョットデキルようになりたい

コンピュータサイエンスの学び直しです

学び直し31日目:6章 アセンブラ:プロジェクト-Parserモジュール

記録

Hack コンピュータのアセンブラPython で実装中。アセンブラって結局のところ、アセンブリ言語をある規則のもと 0/1 に書き換えるテキスト変換プログラムなのでは。。

自力でがんばろうと思ったけど、Python の勉強になってしまいそうなので、とりあえず以下のコードを写経させていただきつつ進めている。書かれている内容自体は何となく理解できたと思う(正規表現の詳細はよくわかんね)。
github.com

Parser モジュール

構文解析のためのモジュール。解析できる状態まで、コードを分解するのが役目っぽい。

必要な機能(メソッド)は下記。Python正規表現をうまく利用すると、スムーズに実装できるみたい(慣れが必要…)。

  • .asm を読み込む
  • 読み込んだファイルの各行を取得する
  • 取得した各行が A, C, シンボルラベル のどのコマンドか識別する
  • A 命令かシンボルラベルの場合、そのシンボルを抽出する。
  • C 命令の場合、dest, comp, jump をそれぞれ抽出する。 これらが Code モジュールに渡されるのだと思う。

次やること

Code モジュールの実装。こいつでニーモニック(つまりアセンブリ言語)をバイナリに変換する。

今日の筋トレ

今日は休筋日