2022-01-01から1年間の記事一覧
2022年の振り返りをします。 作ったもの、触ったもの コンピュータシステムの理論と実装をやった。HDLから初めて、NANDの組み合わせでCPUを作り、アセンブラ、仮想マシン、コンパイラを作っていくというもの。とりあえず動くコンパイラっぽいものができて非…
コンピュータシステムの理論と実装を続けてます。 今はJack言語のコンパイルを作成中で、構文解析を組んでいるところ。 ATSを作らずに、解析したすぐ側から構造をXMLに出力してたんだけど、それだと先読みが必要なノードでうまくいかないとわかって調整中。 …
昨日、A Tour of Goを少しみてみた。 パラパラとめくりながらfor文あたりまで読んでみたけど、なかなか良いと思った。コンパイル言語っぽいし、身につけるのもありかな。 個人的に良いなと思った部分。 ・型宣言 識別子、型の順番に定義するところ。たしかに…
昨日はVMのStaticsTestを通すことができた。 StaticsTestはStaticセグメントへのリードライトのテストで、staticセグメントのスコープがちゃんと処理できているか?のテストだと思う。 初め、処理が全部終了しても、staticセグメントからスタックにとってき…
昨日はプロジェクト8のFibonacciFunctionのテストが通った。2日くらいかかってしまった。 VMのeq、lt、gt命令の実装がバグってて、正しいアセンブラをはけてなかった。 次はstatic変数を使うテストみたい。何も考えずにテスト通してみたら通らなかった。また…
少し前に悩んでました。 ファイル終端まで読み切るとeofフラグが立ってしまうから、そのままだとシークできないみたいです。 一旦ifstream::clear()をしてフラグを落としてやればシークできるようになりました。 どうもファイル終端まで一度読んでしまうと、…
Makefileを書く上での個人的なメモ書きをしておきます。だんだん書いていきます。 以下の例では、空白をスペースで書いていますが、 Makefileはスペースではなくtab文字でないとかけないはずなので、 コピペしたい人は気をつけてください。 (写経するか、コ…