採択
2025/06/14 11:30〜
Track A
招待セッション50分
Beginner Intermediate 入門 理論 言語処理系

型システムを知りたい人のための型検査器作成入門

mametter 遠藤侑介

対象とする聴衆のレベル

Beginner~Intermediate

セッションのテーマ

言語処理系、理論、入門

セッションの概要

プログラミングにおいて何かを深く学ぶには、それを自分で作ってみるのが最良の方法です。
そこで、型システムを学ぶためのプログラミング演習として、型検査器を書くことを提案します。

前半では、型付きラムダ計算に相当するTypeScriptの極小サブセット言語を定義し、その型検査器を自作します。
この過程で、抽象構文木(AST)の扱いや型検査の基本構造を解説します。

後半では、対象言語を拡張し、最終的に型検査器自身を型検査できるようにする(セルフホスト) ことを目標とします。
具体的には、オブジェクト型、タグ付きunion型、再帰関数、再帰型などを導入し、より強力な型システムへと発展させます。

本発表を通じて、型検査器の実装を通じた型システムの理解を深め、プログラミング言語処理系の基礎に触れる機会を提供します。

2
採択
2025/06/14 11:30〜
Track B
公募セッション50分
Beginner 入門 ライブラリ

Elixir で IoT 開発、 Nerves なら簡単にできる!?

pojiro3 pojiro

対象とする聴衆のレベル

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ

  • ライブラリやフレームワーク
  • 入門

セッションの概要

Elixir は Erlang VM 上で動作し、高い並行性と耐障害性を持つ関数型言語です。特に Web フレームワーク Phoenix によってサーバサイドでの利用が広まっています。

本セッションでは、Elixir (Erlang) の並行性と耐障害性を支える仕組み(OTP)を紹介し、それが IoT の分野でも有効であることを説明します。
そして、サーバサイドの Elixir 開発をシームレスに IoT 開発へ適用できるオープンソースのプラットフォーム Nerves を紹介します。

  • OTP の強みが IoT でも活かせること
  • どのように Nerves (の構成)が Elixir の開発体験を IoT にシームレスに拡張しているか
  • ファームウェアの OTA(Over The Air)アップデートを提供する NervesHub について
  • 実機を使った簡単なデモ

Nerves は Raspberry Pi や BeagleBone などの安価なシングルボードコンピュータを公式にサポートしており、ホビー開発からプロトタイプ開発まで気軽に始めることができます。
サーバサイド Elixir の開発体験をそのまま IoT に活かせる Nerves の魅力を伝えられたらと思います。

1
採択
2025/06/14 11:30〜
Track C
公募セッション50分
Intermediate 入門 理論 言語処理系 ライブラリ

ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化

_knih Kenichi Suzuki (knih)

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Intermediate: 分野の基礎知識を持っている

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • ライブラリやフレームワーク
  • 言語処理系(コンパイラー、インタープリターなど)
  • 理論
  • 入門
  • tagless-final

セッションの概要

ソフトウェア開発において、複雑なビジネスドメインを正確に捉えることは極めて重要です。しかし、その過程でしばしば直面するのが、余計な詳細や偶有的複雑さ(accidental complexity)です。これらはシステムを理解しにくくし、保守コストを高める原因となります。
そこで鍵となるのが「抽象」の役割です。本発表ではドメインモデリングにおける抽象の役割を取り上げ、問題空間と解決空間の橋渡しや、ドメインの核となるモデルを的確に表現する土台を作り上げることの重要性について述べます。そして、これらを実現するためのアプローチとして、tagless-finalによる型安全なDSL構築手法について取り扱います。さらに、DSL自体を、型安全に最適化あるいは拡張していくための方法について扱います。また、ソフトウェア開発において、DSLをいつ作るべきか、どのように活用するか、についても触れます。

キーワード:

  • DDD(ドメイン駆動開発)、ドメインモデリング
  • DSL(ドメイン特化言語)
  • 抽象
  • tagless-final、高階抽象構文
  • プログラム変換と最適化
  • 部分評価(partial evaluation)
  • Normalization by Evaluation(NbE)
  • 開発生産性と品質
  • Software Product Line(SPL)
3
採択
2025/06/14 14:00〜
Track A
公募セッション50分
Beginner 入門 理論 ライブラリ

Rust世界の二つのモナド──Rust でも do 式をしてプログラムを直感的に記述する件について

mr_konn konn

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 理論
  • ライブラリ
  • モナド
  • 入門

セッションの概要

講演者は Haskeller ですが、最近は業務では Rust を書いています。その過程でどうしても do 式が使いたくなり、Rust で do 式を使うための qualified_do を開発しました。

まずは、この qualified_do によるプログラムの例を紹介し、かなり便利なものであるというお話をします。
特に、do式によって Rust の ? 構文糖衣に対する代替的な記法が実現できることや、イテレータの合成や proptest によるランダムデータ生成を見通しよく書けることなどを見ます。

do式を使うには、Monad や Applicative といった構造に類似の演算を備えている必要があります。「Haskellのひとたちが使っている難しそうな……」と身構えるかもしれませんが、do式のうちどういう構文がつかえるかという基準を念頭におくと、こうした階層を自然に理解できることを紹介します。また、Rust でモナド等を抽象化するために Generic Associated Types を使うトリックについても欠点と利点を解説します。

Rust や Linear Haskell のようなリソース管理にうるさい言語では、資源管理にどこまで敏感かによって、Monadの階層は複数に分裂します。本講演では、最後に発展的話題としてこうしたフレーバーの異なる複数の Monad 階層の関係について触れ、また Rust と Linear Haskell の型システムの違いにより、Rust では資源に敏感な do 式をより広い型に適用できるという事を説明します。

Keywords

Rust、線型型、所有権、do式、プログラミング言語意味論、モナド、Functor、Applicative、Haskell、Linear Haskell

6
採択
2025/06/14 14:00〜
Track B
公募セッション50分
Intermediate Advanced 理論 言語処理系 ライブラリ 導入事例 Tips

Hasktorchで学ぶ関数型ディープラーニング:型安全なニューラルネットワークとその実践

junjihashimoto3 橋本順之

対象とする聴衆のレベル

  • Intermediate ~ Advanced

セッションのテーマ

  • ライブラリやフレームワーク
  • 導入事例
  • 言語処理系
  • 理論
  • Tips

セッションの概要

Hasktorchは、Haskellでディープラーニングを行うためのライブラリであり、関数型プログラミングの強みである型安全性を活かしながら、PyTorchの強力な計算エンジンを利用できます。本セッションでは、Hasktorchの基本的な使い方に加えて、セットアップ方法やJupyter Notebookを活用したインタラクティブな開発フローについても解説します。

特に、次のようなトピックをカバーします:

  • Hasktorchの概要とエコシステム
  • Hasktorchのセットアップ
  • Jupyter NotebookでのHasktorch活用
  • 実際のニューラルネットワーク構築
  • パフォーマンス最適化とFFIを用いたメモリ管理
  • Hasktorchの今後と活用の可能性

このセッションでは、コードデモを交えながら、Hasktorchを実際に動かしながら学べる内容を提供します。関数型プログラミングを活かしたディープラーニングに興味のある方はぜひご参加ください!

1
採択
2025/06/14 14:00〜
Track C
スタッフセッション50分
Beginner Intermediate 入門 理論

関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ

lagenorhynque lagénorhynque/カマイルカ

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない
  • Intermediate: 分野の基礎知識を持っている

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 理論
  • 入門

セッションの概要

「関数型プログラミング」や「関数型言語」の定義に普遍の共通認識は存在しませんが、複数の(いわゆる)関数型言語にしばらく触れてみると、共通して重視されている概念や考え方、設計パターン、機能と思われるものも見えてきます。
Haskell, Scala, Clojure, Elixirという性質の異なる4つの関数型言語での特徴的なプログラミングスタイルを吟味(= テイスティング)してみることを通して、関数型プログラミングの中核にありそうなもの、周辺にありそうなもの、(直接的には)無関係そうなものについて一緒に考えてみましょう🍷

取り上げる(かもしれない)キーワード: 関数とその組み合わせ方いろいろ, 変換 vs 命令, 式指向 vs 文指向(cf. コードの形), よくある設計パターン/言語機能, 参照透過性, 不変性と永続性, 合成可能性, データ指向 vs オブジェクト指向, 再利用性と抽象度(cf. 命名), メタプログラミングと言語処理系, 関数型プログラマのメンタルモデル

4
採択
2025/06/14 15:00〜
Track A
公募セッション50分
Intermediate 導入事例 Tips

関数型言語を採用し、維持し、継続する

gada_twt 松澤 有

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Intermediate: 分野の基礎知識を持っている

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 導入事例
  • Tips

セッションの概要

Siiibo証券株式会社は2019年に創業して以来、バックエンドにElixir,フロントエンドにElmと関数型言語をフルスタックに採用して、社債専門の証券システムを作り上げてきました。
このセッションでは実際に関数型言語を業務で(特にスタートアップ企業などの少人数開発組織で)採用し、維持し、継続するにあたって重視している価値観、手続き、手法などをざっくばらんに紹介してみようと思います。

  • 狂気
  • コードレビュー/CI/Upkeep
  • ビルドとテストの高速化
  • 静的型付けでない言語だからといって型のことを考えないわけじゃないし、型はほしいし、願えば型は降ってくるかもしれない
  • 情報収集/コミュニティ参画
  • 新しい手法を取り入れる
  • 覚悟
5
採択
2025/06/14 15:00〜
Track B
公募セッション50分
Beginner Intermediate Advanced 入門 Tips

`interact`のススメ — できるかぎり「関数的」に書きたいあなたに

nobsun 山下伸夫

対象とする聴衆のレベル

  • Beginner: 分野の前提知識を必要としない
    Beginner レベルの方が楽しめる内容ですが、Intermediate、Advaced レベルの方には内容へのツッコミを楽しんでもらえる内容になると思います。

セッションのテーマ

  • Tips
  • 入門

セッションの概要

計算機プログラムは現実のフォン・ノイマン型計算機上での計算が前提ですから、命令を記述する部分が必ずあります。
I/Oがその典型です。このセッションでは、そのI/O部分をできるだけ、小さく一箇所に隔離する方法を対話的ソート問題を例に紹介します。

  • 命令的Haskellプログラミング vs 関数的Haskellプログラミング
  • プレリュード関数 interact :: (String -> String) -> IO () の紹介
  • インタラクティブ・ソートの実装
1
採択
2025/06/14 15:00〜
Track C
公募セッション50分
Beginner 入門

AIと共に進化する開発手法:形式手法と関数型プログラミングの可能性

itohiro73 いとひろ

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • AI開発
  • 入門

セッションの概要

2025年、CursorやCline、DevinなどのAIエージェントを活用した開発が主流となりつつあります。しかし、大規模な開発においては、AIが実装しやすい「枠組みの提供」と「コンテキストの最小化」が重要となります。本セッションでは、形式手法や関数型プログラミングの手法がこれらの課題にどのように寄与するかを探ります。具体的な事例を通じて、これらのアプローチがAIエージェントを活用した開発の生産性と品質向上への貢献度合いを検証していきます。

カバーするトピック

  • AIエージェントを用いた開発の特徴
  • 形式手法を用いた仕様モデリングと検証
  • 関数型言語の代数的データ型(ADT)と関数合成の利点の活用
  • 関数型DDDアプローチによる境界づけられたコンテキストごとのビジネスロジックの分離
  • シフトレフトのアプローチをAI開発に適用する具体的ワークフロー
4
採択
2025/06/14 16:30〜
Track A
公募セッション25分
Beginner 入門 理論

関数プログラミングに見る再帰

TTTaison T.T

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 入門
  • 理論

セッションの概要

本セッションでは、プログラミングにおける再帰の基礎を初心者向けにわかりやすく解説します。まず、再帰とは何か、そしてなぜ関数プログラミングにおいて重要なのかを説明し、簡単な例を通じてその概念を掴んでいただきます。また、命令型プログラミングにおけるループ処理と、関数プログラミングにおける再帰アプローチの違いについても、実際のコード例を用いて比較し、解説します。

さらに、再帰を利用する際に直面しがちな問題点とその対策にも触れます。例えば、再帰呼び出しが深くなりすぎることで生じるスタックオーバーフローなどのリスクについて説明し、それを回避するテクニックとして末尾呼び出し最適化を紹介します。また、より高度な話題として継続渡しスタイルによる再帰の書き換えにも触れ、パフォーマンスやスタック使用量の観点から再帰を最適化する方法を概観します。

その後、再帰の実践的な応用例として、木構造の探索アルゴリズムやファイルシステムの再帰的な探索処理を紹介します。これらの例を通じて、再帰が現実世界の問題解決にどのように役立つかを具体的に示します。

初心者の方でも安心して参加できる内容となっており、再帰の基礎から応用までを学べるセッションです。

5
採択
2025/06/14 16:30〜
Track B
公募セッション25分
Beginner 入門 ライブラリ Tips

「ElixirでIoT!!」のこれまでとこれから

takasehideki takasehideki

対象とする聴衆のレベル

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ

  • ライブラリやフレームワーク
  • Tips
  • 入門

セッションの概要

「ElixirでIoT!!」と Erlang & Elixir Fest 2019 で喧伝しだしてから早くも5年以上の月日が流れてきました.
提案者はこれまで,「ElixirはIoT向きのプログラミング言語である」という旗印のもとで,IoTシステムに使える(はずの)さまざまなライブラリやプラットフォームをElixirで作ってきて,そしてそれらの価値を指し示すための「論よりRUN!!」なデモをお見せしてきました.
今回の発表では,どのような技術的思考と願望からこのような活動を進めてきたのか,そして得られてきた研究開発の成果を振り返りたいと思っています.
そして,提案者は正直に申し上げると,関数型言語はElixirしか分かっていません.参加される皆さまそれぞれに思い思いの「推し」があるはずですので,それらもIoT開発に使えるのか?使うとしたらどういう素敵なことが起きるのか?ざっくばらんに語り合えたらと考えています.

  • マクラ:IoTシステムとは?広域分散とは?
  • なぜ「ElixirでIoT!!」なのか?
    • アクターモデル由来の疎結合アーキテクチャ
    • Erlang/OTP由来の軽量かつ堅牢な並行プロセスモデル
    • そして言語機能と完全互換なNervesプラットフォーム
  • これまで作ってきたものと「論よりRUN!!」
    • Rclex: Elixirエコシステムと連携するロボットシステム向けAPIライブラリ
    • Zenohex: クラウド/エッジ連携に柔軟な通信プロトコルZenohのAPIライブラリ
    • Giocci: 広域分散システム向けの資源透過型計算プラットフォーム
  • 「〇〇でIoT!!」はあなたの関数型言語で成立するのか??
採択
2025/06/14 16:30〜
Track C
スタッフセッション25分
Beginner Intermediate 言語処理系 周辺ツール Tips

Elmのパフォーマンス、実際どうなの?ベンチマークに入門してみた

戸塚孝高

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない
  • Intermediate: 分野の基礎知識を持っている

セッションのテーマ

  • 周辺ツール(ビルドツール、静的解析ツール、エディターなど)
  • 言語処理系(コンパイラー、インタープリターなど)
  • Tips

セッションの概要

Elmは型安全性や開発体験の良さが注目されがちですが、実際のパフォーマンスはどうなのでしょうか?
「Elmは遅いのか?速いのか?」という疑問に対して、実際にベンチマークを取り、得られた知見を共有します。
処理が重いサンプルコードを起点に少しずつ改良を進め、パフォーマンスを向上させてみましょう。

  • 1万行のCSVをデコード&前処理するサンプルコード
  • elm-benchmarkを使ってパフォーマンスを測定してみよう
  • List を Array に置き換えると、どのくらい速くなる?
  • 本当のボトルネックを探して改善する
  • CSVではなく、JSONのデコードにしてみると...?
  • ベンチマークで得られたもの
1
採択
2025/06/14 17:00〜
Track A
公募セッション25分
Intermediate 理論

Effectの双対、Coeffect

yukikurage_2019 ゆきくらげ

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Intermediate: 分野の基礎知識を持っている

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 理論

セッションの概要

昨今巷で Effect システムが流行っていますが、実はその双対、Coeffect システムというものがあるのをご存じでしょうか。
Effect が関数のボディでの作用について述べるシステムだとすれば、Coeffect は対称的に、引数の性質について述べるシステムです。変数の使用回数のトラッキング、セキュリティレベルの追跡などがそのインスタンスになることが知られています。

Effect システムについても軽く説明しますが、型付きラムダ計算等の知識は前提とします。

8
採択
2025/06/14 17:00〜
Track B
公募セッション25分
Beginner 導入事例

産業機械をElixirで制御する

kikuyuta 菊池 豊

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 導入事例

セッションの概要

関数型言語の応用例として、制御をElixirで行った小水力発電所の例を紹介します。現在の産業機械の制御に使われてるハードウェア・ソフトウェアは多くの問題を抱えており、それを近代化する手法の一つにElixirの導入があると考えています。セッションではおおよそ以下の話をする予定です。

  1. 産業システム制御における課題点
  2. 小水力発電所の解説
  3. 小水力発電でElixirを使う判断をした経緯
  4. 産業でElixirを使うためにハードウェアを開発した話
  5. 実際の応用例
    このセッションで実社会における現実の課題にどのように関数型言語を役立てていけるかの議論ができると嬉しいです。
1
採択
2025/06/14 17:00〜
Track C
公募セッション25分
Beginner Intermediate 入門 ライブラリ Tips

高階関数を用いたI/O方法の公開 - DIコンテナから高階関数への更改 -

momoiroshikibu Kosuke Matsuura

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない
  • Intermediate: 分野の基礎知識を持っている

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 入門
  • Tips
  • ライブラリやフレームワーク

セッションの概要

高階関数を用いたI/Oの実現方法について、TypeScriptでの例をご紹介します。

関数型プログラミングでは、高階関数や部分適用を活用することで、DIコンテナに依存することなくI/Oを実現することができます。
私の周りでは、オブジェクト指向プログラミングやそのフレームワークに慣れ親しんだプログラマーが関数型プログラミングを学び始める際に、
以下のような戸惑いを感じるケースを見てきました。

  • DIコンテナ無しで依存関係をどのように解決するのか分からない
  • 関数型のアプローチにはDIコンテナを置き換える手段が存在しないように感じられる

私自身も関数型プログラミングを学び始めた当初は、同様の戸惑いを感じていました。
オブジェクト指向プログラミングでは、フレームワークが提供するDIコンテナを使うことは一般的です。
これに慣れていると関数型プログラミングでの設計にギャップを感じることがあります。

私は関数型プログラミングが楽しいですし、実用性も感じています。もっと広まってほしいと願っています。
しかし、上記のような理由で、関数型プログラミングの学習に躓いたりすることもあると思います。

今回のトーク内容としては、以下のような内容を予定しています。

  • 高階関数と部分適用の説明
  • 高階関数を使ったI/Oの例やテストの書き方
  • 実際のWebアプリケーションでの適用例

高階関数や部分適用は実用的なテーマですし、I/Oの実現方法についても関数型プログラミングの魅力の一つだと感じます。
このセッションを通じ、より実用的な関数型プログラミングの知識を共有できると嬉しいです。

3
採択
2025/06/14 17:30〜
Track A
公募セッション25分
Intermediate Advanced 入門 理論 言語処理系

continuations: continued and to be continued

Nymphium びしょ~じょ

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Intermediate: 分野の基礎知識を持っている
  • Advanced: 分野に精通している

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 言語処理系(コンパイラー、インタープリターなど)
  • 理論
  • 入門

セッションの概要

本発表では、関数型プログラミングにおいて最も強力な概念の一つである、残りの計算を表す"継続"とその進化について、歴史的背景から最新技術までを包括的に整理します。
アセンブリレベルのコントロールフローやC言語のgotoといった低水準の制御命令から、構造化プログラミング期における明確な制御構造の発展、そしてSchemeにおけるcall/ccなどの継続演算子の登場へと、歴史を辿っていきます。さらに、CPS変換やANF、CFGとの対応を通じ、言語処理系の中間言語としての継続の性質について考察します。
加えて、async/awaitやモナド、代数的効果といった近年発展を続けている副作用の管理方法や、ワンショット性を考慮した効率的な実装など、先進的な概念・技法について論じ、継続が言語設計および実装に与える影響と今後の可能性を探ります。

4
採択
2025/06/14 17:30〜
Track B
公募セッション10分 (LT)
Beginner 入門

成立するElixirの再束縛(再代入)可という選択

対象とする聴衆のレベル

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 入門

セッションの概要

ElixirはErlang VM (BEAM) の上で動作するRubyライクな文法をもつ関数型言語として知られています。
Erlangと同様に値は全てイミュータブルですが、Erlangが再束縛(再代入)不可である一方、Elixirは再束縛(再代入)可という異なるアプローチを採用しています。
再束縛(再代入)の可否を選択できる言語においては、正当な理由がない限り再束縛(再代入)不可の利用が推奨されており、Elixirのアプローチは一見悪手のように見えるかもしれません。
なぜElixirの再束縛(再代入)可という選択が悪くない戦略なのかについて、関数型言語の特性や、束縛、代入、ミュータブル、イミュータブル等の整理を通じて紐解いてみたいと思います。

4
採択
2025/06/14 17:30〜
Track C
公募セッション10分 (LT)
Beginner 入門

Excelで関数型プログラミング

excelspeedup はけた

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 入門

セッションの概要

Excel 2021でLAMBDA関数が実装されてExcelの数式はチューリング完全になるとともに、MAP、REDUCE関数などの関数型プログラミングでよく使われる関数も実装されました。

また、Excelは、数式は常に返り値を持つことに加え、データは完全にイミュータブルで、ほとんどの場合に参照等価性を持っているなど、関数型言語としての特徴も有しています。

そこで、今回のセッションでは、Excelを使って関数型プログラミングの初歩的な処理をする方法を紹介しようと思います。

  • Excel特有の配列の挙動(1次元配列と2次元配列)についての解説
  • スピルとmap、zipWith、bind
  • MAP関数、REDUCE関数など基本的な関数の使い方
  • LET関数とLAMBDA関数を使った再帰処理の書き方
  • Excel関数による記述の制約・限界
  • Excel関数でパーサコンビネータを作りJSONを解析する
2
採択
2025/06/14 17:45〜
Track B
公募セッション10分 (LT)
Beginner 入門

Lean言語は新世代の純粋関数型言語になれるか?

井上亜星

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 入門

セッションの概要

定理証明支援系であり純粋関数型プログラミング言語でもある、Lean について紹介します。
Lean はまだ新しい言語であり知名度も低いので、このトークではLean言語の名前と特徴を憶えてもらうことを目標とします。

4
採択
2025/06/14 17:45〜
Track C
公募セッション10分 (LT)
Beginner 言語処理系

XSLTで作るBrainfuck処理系 ― XSLTは関数型言語たり得るか?

makki_d MakKi

対象とする聴衆のレベル(該当するレベルを記載してください。)

  • Beginner: 分野の前提知識を必要としない

セッションのテーマ(該当するテーマを記載してください。なければ追加頂いて良いです)

  • 言語処理系(コンパイラー、インタープリターなど)
  • 難解プログラミング言語

セッションの概要

XSLTはXMLを変換するためのテンプレート言語ですが、関数型プログラミング言語とよく似た特徴を持っています。
本発表では、XSLTを関数型言語として捉え、実際にBrainfuck処理系を実装した事例を紹介します。
テンプレート適用によるパターンマッチ、変数の不変性、再帰的な処理といった関数型的な特徴を活用し、
ループや状態管理をXSLTでどのように記述できるかを具体的なコードとともに解説します。
Brainfuckのようなチューリング完全な処理系を実装できることから、XSLTもチューリング完全なプログラミング言語であることを示します。
この実装を通じて、関数型プログラミングの視点を広げるきっかけになれば幸いです。

1