関数型まつり2025
採択
公募セッション50分
公募セッション Intermediate 言語処理系 理論

ラムダ計算と抽象機械と非同期ランタイム

Kory__3 Kory Kory__3
4

対象とする聴衆のレベル

  • Intermediate
    • Scala 製の非同期ランタイムである Cats Effect 3 の実装に沿った話をしますが、概念レベルの話がメインになるため、Scala そのものの前提知識は仮定しません
    • ただし、(トーク内で説明はするものの、)ラムダ計算がどのようなものなのか、という点と、β簡約の計算方法をある程度把握していることは想定します

セッションのテーマ

  • 言語処理系(インタープリター)
  • 理論
  • 非同期ランタイム

セッションの概要

単一のプロセスで並行処理を行う方法として、OSカーネル上でスレッドを大量に作成する代わりに、細切れにした「タスク」をユーザーランドで処理し続ける、いわゆる非同期ランタイムが使われることが増えてきています(例: goroutine、tokio-rs、Cats Effect、Project Loom)。アプリケーション内部に用意したスケジューラを用いて実行するタスクを切り替えていくこれらの機構は、使い方こそスレッドベースの非同期プログラミングと大差ない(場合によっては、同期プログラミングとも大差ない)ものの、そのランタイム実装まで追ったことのある方は多くないのではないでしょうか。

この講演の前半部分では、ラムダ計算から出発して、ラムダ計算のシンプルな「インタプリタ」であるCEK 機械の仕組みと動作について詳しく解説します。そして後半部分では、CEK 機械の仕組みを通して、非同期ランタイムの実装(の一パターン、特に Cats Effect 3 の実装)を理解できるのだと道案内することを目標とします。