まつたろうの歩み

PythonやCの勉強中に「指し示す」いう表現がありました。それを知りたくて今はコンピュータシステムを勉強しています。

コンピュータシステムの理論と実装。第6章アセンブラー作成、試行錯誤しています。

 ハンドアセンブラができてから、すでに2ヶ月近くたちました。2万行くらいあるプログラムも、ハンドアセンブラでとうの昔に完成していると思います。前回紹介した、「パイソンで最初から簡単なインタープリター」の記事を一生懸命取り組みました。

jayconrod.com

 結論からいうと、これはあきらめました。ダウンロードファイルには5つのテストファイルが入ってました。いろいろ試して2つは実行できましたが、残りは実行できませんでした。全部の動作を確認して、プログラムの細部を研究するように考えていましたが、それは意味のないことになりそうです。なにしろクラスを多用してあるので、どんな引数がどこで使われるのか非常にわかりにくいのです。

 中断を決めましたが、これまでの歩みを少し紹介します。下の画像は「 imp_lexer_driver.py 」の動作です。トークンが表示されました。

トークンが表示された

 ユニットテストの勉強をして、ユニットテストも行いました。

ユニットテスト

 実行していることは確認できますが、何をどうしているのかわかりません。動作の様子がわかると、ヒントになるのですが...。

アセンブラーファイルやトークンのテキストファイルも読み込めません。

テキストファイルが読み込めません。

 前述のインタープリターを使うことは断念します。しかし、あきらめません!これからは、もう一つの候補であった、 PLY を使う方法でやっていこうと思います。下は、PLYです。PLY (Python Lex-Yacc) (dabeaz.com)

PLY

 昨日から、実際使えるのか確認しています。Python3をインストールをやり直したり、いつも使う Tonny もインストールをやり直しPLYをインストールしました。使えそうなので、これを勉強しようときめました。インタープリターの資料より読みやすいようです。これから、またしばらく英語の勉強がスタートします。英語も結構わかるようになっていますので、抵抗はありません。断念したけど、インタープリターのおかげで英語力が少しつきました。

今日の日記

 先週土曜日、高校の同窓会がありました。約4年ぶりの参加でした。1年に7月と12月の2回しています。ですから、そんなにご無沙汰したというような感覚はなく、いつものようにワイワイ楽しみました。しかし、昨年仲間が1人減りました。いつまでできるのかな~、という年齢になってきました。