ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

型付きRubyでパーサを書く(前編)

K-Ruby という鹿児島のRubyコミュニティの忘年LT大会でRBSを使ってみた話をします。オンラインですが、九州盛り上げていきましょう!

k-ruby.connpass.com

それはそれとしてRBSというものに今回ちゃんと触れるので、触れた記録を雑にでも残していこうと思い、ブログを書きます。どれくらい後学のためになるのかならないのかわかりませんが、触ってみたライブな感想をなるべく残しておくのは意味があるでしょう、と。

@yoshikouki さんには「RailsRBSを入れる方法を教えてください!」って言われてて、俺にRailsの話を聞くのか... って思ったんですけど、 まあその辺の面白そうなトピックは @yoshikouki さんのために取っておこうと思うので、僕はもうちょっと簡単なプログラム、そう、 プログラミング言語のパーサRubyで、型付きで書こうと思いました。

最初に諸注意

このエントリはただの作業メモで、この通りに実装を進めたら動くような書き方をしていません。前半で残したコードや型が後半で細かく変わってるということがふつうにあるし、全ての修正を記録していません。

一応というか、最終的な実装は以下のリポジトリに残してあります。それを見比べながら読み解く風になるでしょう。

github.com

あくまで「型付けRubyの雰囲気」を感じ取り、皆様が実際に型をドライブしながら書き進めていく際のシャドーイングに役立てばと思います(本当に?)*1

また、「Rubyの型ってどうなの?」というところだけ知りたければ、後編をいきなり読んでもいいと思います。いずれにせよ個人の感想ですのでご留意ください。

udzura.hatenablog.jp

言語の文法

実装しようとする言語の文法です。

*1:本来なら、ライブコーディングの動画でも残すのがいいんでしょうね

続きを読む

自分の中で大切に思ってる本の話

hiboma.hatenadiary.jp

またhibomaさんのブログの言及で恐縮なのだが、このブログを読んで、そういえば僕のキャリアの中で重要だった本って何かな〜というのを考えていた。

前提として僕は本を読むのが苦手で(やっと最近気づいた)、めっちゃ遅くしか読めないし、量を読めないのだが、それでもポイントポイントで読んでおいて良かったという本はある。というより、割と一冊の本から受ける影響が人より大きいような気がするし、「僕にめっちゃ影響を与えてくれそう」という勘が働かないと読まない。

なので - でもないけれど、ここにあげている本の話題はただの思い出話で、必ずしも人に薦める意図はない。

続きを読む

CoWはコウ可視化するんやで (aka. Rubyなどがforkした後のCoWを可視化してみる)

同僚の皆さんへのアンサーソングです。

hiboma.hatenadiary.jp

ryuichi1208.hateblo.jp

RubyKaigi やらですっかり遅く... と思ったがRubyKaigi takeoutの振り返りも書いてない...


タイトルの通り(通り?)、forkしたプロセスがCoWをどれくらい起こしているか可視化するツールを作りました。

github.com

まだ私の理解が浅いところもあるのですが、いったん動作例などを掲示してみます。

続きを読む