TAPL.ts #51: 第15章(10) 部分型付け
イベント内容
ざっくばらんに言うと……
「型システムのきほんのきに、「型システム入門」(TAPL)やTypeScript型推論アルゴリズム(checker.ts)をみんなで読み進めることで、入門してみませんか!?」
ということです。要するに、TAPLの輪読会です!適宜TS関連の資料やTSのchecker.tsも読みます!
この誘いに心惹かれたカタは、ぜひ以下を読み進めてください👶
※どれだけ読み飛ばして頂いてもよいのですが、「必要なもの」と「進め方」の2セクションは必読でお願いします!
※ 「コンピューターサイエンス専攻/情報系じゃなかったなあ」とかは気にしないで下さい!(私も全然違います🐤)
参考
- 型システム入門(TAPL): https://www.ohmsha.co.jp/book/9784274069116/ (第1章のサンプル有)
- TypeScript型推論アルゴリズム(checker.ts): https://github.com/microsoft/TypeScript/blob/main/src/compiler/checker.ts
目指すこと
下記を目標として進めていきたいと考えています🐢
- 型そのものやその周辺の概念(e.g. 型安全、型付け)について理解を深める
- 初歩的な型推論アルゴリズムの実装について理解を深める
- 型システムに関する論文や実装コードの読解に、ある程度取り組めるようになる
具体的な内容
1章: TAPLの読み進め(型推論まで)
まずはTAPLを読み進めることを主軸において、TypeScriptの型推論アルゴリズムのコード(checker.ts)を適宜参照していきます。
TAPLについて、具体的には下記の章を順に読んでいければと思っています。
3章: 型無し算術式読み終わりました!5章: 型無しラムダ計算読み終わりました!8章: 型付き算術式読み終わりました!9章: 単純型付きラムダ計算読み終わりました!11章: 単純な拡張読み終わりました!22章: 型再構築読み終わりました!
これは、TAPL序文で述べられている活用例や章間依存関係を参考にしたロードマップです。この背後には、要するに「型やその周辺概念で優先度が高いものをおさえたら、基本的な型推論アルゴリズムまで最短ルートでいってみようよ!」という設計思想があります。
この設計思想が根本にあるので、このロードマップは会の状況に応じて増えたり減ったりする可能性があります!しかし、その場合もTAPLとchecker.tsを参照するという基本コンセプトは変えないつもりです🐸
また、サクサク進むとは思っていないので、きっと半年くらいやるのだろうと思っています。
2章: 双方向型チェックの理解
Reconstructing TypeScriptを読み進めます。
Part0← 各自読んできてくださいPart1← 読み終わりました!Part2← 読み終わりました!Part3← 読み終わりました!Part4← 読み終わりました!Part5← 読み終わりました!Part6← 読み終わりました!
外伝: TAPLの読み進め(部分型)
- 15章: 部分型付け ← ここから読み始めます
- 16章: 部分型付けのメタ理論
- (18章: 事例- 命令的オブジェクト)
- (19章: 事例 Featherweight Java)
必要なもの(必ず目を通して下さい!)
読み進め枠・参加枠共通
- 会の進行や議論の展開が思っていた以上にゆっくりでも、のんびり気楽に参加できる精神的な余裕
- もちろん開始時間・終了時間は守ります!!予定していた部分が終わらないから次回に持ち越し、といったことが全然ありえるよということです
読み進め枠
- 間違いを恐れず、お互いの理解するスピードを尊重しながら、自由な議論を楽しむマインドセット
参加枠
- 自分のコメントが読み進め枠メンバーに拾ってもらえなくても気にしない気楽さ
進め方(必ず目を通して下さい!)
すべて、現時点での構想なので状況に応じて変更をしていくと思います!!!
形式
- 読み進め枠と視聴枠を設け、下記のように役割を定めてみます📝
- 読み進め枠: TAPLやchecker.tsを実際に読み進める。都度、自由に議論をする。視聴枠のメンバーが投稿するコメントは取り上げてもよいし、取り上げなくてもよい
- 視聴枠: 読み進め枠のメンバーの読み進めや議論を視聴する。視聴プラットフォーム上でコメントを書くことはできるが上述の通り、取り上げられないこともある
- 読み進めは下記のように進めます📖
- 読み進め枠のメンバーでTAPLの文章を1~2文ずつ、まわしながら読む。小学校の国語の授業でかわりばんこの音読をしたときのイメージ
- 読み進め枠のメンバーは分からないことや議論したいことがあったら、その都度言って、議論を始められる
- その他、よしなにやる
日時
- 毎週または隔週の水曜日に、19時半から21時に開催します🎉
場所
- リモート開催です!: URLはページ上部の「参加者への情報」枠を参照
主催者
canalun(かなるん)
github: canalun twitter: @i_am_canalun
レコード集め、コードやvimのゴルフ、パズルが好きです👶
PADAone(ぱだわん)
型に興味津々なフロントエンドエンジニア✨
注意事項
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。
新規会員登録
このイベントに申し込むには会員登録が必要です。
アカウント登録済みの方はログインしてください。
※ ソーシャルアカウントで登録するとログインが簡単に行えます。
※ 連携したソーシャルアカウントは、会員登録完了後にいつでも変更できます。