今月の活動まとめ
milone-lang
- https://github.com/vain0x/milone-lang
- F# のサブセットのコンパイラ milone-lang を作ってる
- 前月苦しんでいた字下げ依存構文の構文解析問題はほぼ解決した
- 次のトークンの位置が低すぎたらパースを中止する、みたいな動き
- 結果的に再帰下降パーサーとしては自然な実装になった
- インタプリタを捨てて、C言語のコードを生成するようにした
- インタプリタの実装は klac-lang でやったから退屈に感じる
- 最終的にはアセンブリや Web Assembly や LLVM をターゲットにしたいが、モチベを維持するために機能追加を優先していく
- 演算や条件分岐や関数などの基本機能が入った
- シンプルな型推論が入った
- 単一化ベースだが、まだ多相関数は禁止しているのでHMじゃない
- ジェネリクスを入れようとして、オートボクシングと型推論の兼ね合いで悩んだ
- ジェネリクスはやめて、単相化することにした
- 例えばタプルは、生成後のCのコードでは型引数ごとに別々の構造体になる
- 近い目標として、字句解析器をコンパイルしたい
- リストを入れないと何もできない
- クロージャもほしいけど難しいかも
- 参考
- TaPL
- 速攻MinCamlコンパイラ概説
環境再構築
- 今年頭 (2018年1月) にパソコンを買い替えた
- Ubuntu デスクトップという試みはうまくいっている
- パフォーマンス問題があった
- Chrome のタブを大量に開いたり VSCode を複数起動すると重たくなる
- メモリを 16GB に、ハードディスクを SSD にした
- SSD 換装は初めてだったけど簡単にできた
- SATAケーブルとSATA電源ケーブルを買ったけど、HDDと繋ぎかえるだけだからいらなかった
- SSD はメンディングテープで固定した
- ついでにクリーンインストールした
競プロ参戦記
- 8月中旬から note.mu で 競プロ参戦記 を始めた
- AGC で惨敗して、2週間ぐらい競プロから離れていた
- 先週の天下一は参加して、そこそこの成績だった
- まったりやっていく
toml-hummer
- リポジトリ
- F# 用の TOML パーサー
- あまり進んでない
- 日時リテラルを扱えるようになりつつある
React
- 機能追加はうまくいっている
- データベース処理ごとテストしてる
- 依存関係を切るの難しい
- 履歴移動でコンポーネントの状態が初期化される問題はまだ放置してる
- サーバーとクライアントで行ったり来たりする処理の見通しが悪い
- ステートマシンみたいになってしまう
- 再帰下降パーサーみたいに書きたい
ガルパ
- ファントムシーフ (Expert 27) はクリアできた
- 今後は 26 帯の精度を上げていきたい
- 某の影響をで左手プレイを練習している
その他
- AtCoder の提出を Git リポジトリにまとめるツールを書いた
- https://github.com/vain0x/submissions-sync
- GitHub に自動でコミットしたいという野望がある
- 投稿専用の Twitter クライアント Solotter を地味に改修した
- https://github.com/vain0x/solotter-web
- Express.js で書いていたのが React になった
- いろいろ足したい機能があるけど、いまは milone-lang が優先
- 記事を投稿した
- このブログをなんとかしたい
- 更新作業を楽にしたい
- 画像を載せやすくしたい
- 記事一覧をつけたい