2021年1月にやったこと

  • Elmの生成コードの最適化に関するポストを翻訳してZennに公開した
    • 日本で20人ぐらいにしか需要なさそう、と思ってたらLikeが16もついたのでもう少し読まれてそう。トレンドにも2日間ぐらい滞在した
    • V8の気持ちを理解して生成コードを直していく話
    • Zennは初めてだったけど記事をGitHubで管理できる等とても体験がよい。クラスメソッド社でも頑張ってほしい
  • 『ユーザーストーリーマッピング』を読んだ
    • Twitterで前職の同僚が薦めていたことがきっかけ
    • アジャイルでソフトウェアビジネスを作るための手法みたいなもの
    • 自分が日々の業務で感じていた問題点とその解決策がほぼほぼ正しいとされていて興奮した
    • 「オタクは机にかじりついてばかりいないで対話してビジネスを一緒に考えろ」というメッセージを含んだ本です
  • Brainf**kのJITコンパイラをGoとRustで書いた
    • 先のElm記事の翻訳にあたってV8について調べたりしてJITに興味を持ったので、この記事を参考に作ってみた
    • 元の記事はC++だったがわからんし書きたくもないのでとりあえずGoで実装した。ソースコードはここ
    • 最初にシンプルなインタプリタを作りそれを最適化、そのあと同じ流れでJITコンパイラを作る構成
    • 元の記事では途中からアセンブリ生成のライブラリを使っていたが、Goのライブラリが微妙だったのでバイトコードを手書きした
    • x64(というか任意のアーキテクチャ)全然知らなかったので大変勉強になった
    • 最終的なJITコンパイラはRustにも移植した
    • 原著者のリポジトリにはLLVMバックエンド版もあるが自分は未着手
  • 『プログラム意味論の基礎』の勉強会を始めた
    • 社内勉強会。同僚が1人で読んで挫折したことをきっかけに発足
    • 僕が毎回解説する形式。ざっと眺めた感じ『型システム入門』読んでるならいけるやろ、という見切り発車
    • これは本でも軽く言われていることではあるけど、集合論や論理学の知識を持たない人は1章の数学的準備の内容でつまづく可能性が高いと思う。先生を用意するか、別の本で勉強してから挑もう
    • 補足情報などをScrapboxにまとめている。ただ証明をちゃんと書くのはちょっと億劫なので悩みどころ
comments powered by Disqus