Upgrade to Pro — share decks privately, control downloads, hide ads and more …

我々はなぜ中間表現を作るのか

Avatar for iWonder118 iWonder118
September 21, 2025

 我々はなぜ中間表現を作るのか

Avatar for iWonder118

iWonder118

September 21, 2025
Tweet

More Decks by iWonder118

Other Decks in Technology

Transcript

  1. Fiber Treeとは JSXから作成した React Elementの木構造を内部構造に最適化したもの 1. 状態管理を内包 各ノードが props・state・更新キューを持ち、コンポーネントの状態を追跡できる 2.

    差分計算の単位 新旧の Fiber Tree を比較して、更新が必要な部分だけを効率的に抽出する 3. スケジューリング可能 優先度情報を持ち、重たい更新を分割したり後回しにすることで UI を滑らかに保 つ child・sibling・return の参照を持ち、木を巡回しながら中断・再開できる
  2. 他の事例(言語) - TypeScript - 我々の素晴らしい表現力 ()で悪魔のJavaScriptを従えさせさせる契約文 ※意訳 - 安全なJavaScriptの生成のためのスーパーセットとしてのAltJS -

    コンパイラ (例としてC言語) - 高級言語を機械語へ変換するためにアセンブラを挟んでいる - JVM系 - 言語とJVMのJavaバイトコードを挟んで機械語を動かしている - そのお陰でKotlin、Scala、Groovyが存在している。さすがJavaバイトコー ド - WASM(Web Assembly) - 多言語を中間の機械言語を介し、バイナリをブラウザで動かす
  3. 他の事例(設計) ※これはどちらかというと中間”層”として - Webの3層構造 - フロントから見た場合、サーバサイドがDBの中間表現(処理)となっている - DDD(ドメイン駆動設計 ) -

    ドメイン知識をコードとして表現することで、ドメインエキスパートと技術者間の業務 に対する共通理解を形成 - ACL(腐敗防止層 ) - それぞれの関心事を中間層のオブジェクトを挟むことによって、分離をしている - BFF - クライアントごとに最適化された API を提供する
  4. 他の事例(インフラ) - IaC - 想像しているインフラをYAMLやJSONなどで起こし、それをツールを通すことで 実態としてのクラウドインフラができる - Kubernetes - あらかじめ決められた構成をSpecのYAMLで作成し、Kubernetes

    APIを通すこ とで実態としてのコンテナがオーケストレーションされる - DNS - 人間が認知できるように名前をIPアドレスにつける - CPUの命令セット (ISA) - x86-64のバイナリがx86の命令セットを使うことで、IntelやAMDなどのCPUが使 える
  5. 他の事例(現実) - お金 - AさんとBさんの価値交換を共通の数値で表す表現 - 言語 - 自分の認知と物体を他者に伝えるための表現 -

    足の追加板を机と認知しているがそれを他者にも同じ概念で伝えるために 「机」という単語を使う - etc… - このスライドも僕の考えの抽象化と聞き手の理解のための中間表現(オチ)