2 ポイント 投稿者 GN⁺ 2024-11-02 | まだコメントはありません。 | WhatsAppで共有
  • Hazel は typed holes(型付きホール) を中心に据えた Web ベースのライブ関数型プログラミング環境で、未完成のプログラムでも型検査・操作・実行できるようにする
  • 空欄、型エラー、マージコンフリクトのような不完全な状態を ホール としてモデル化し、エディタが意味を失う区間を減らすことが中核
  • Hazel で作成できる不完全なプログラムは静的・動的に定義され、不完全な型や不完全な実行結果を持ち得る
  • 実装対象は Elm/ML 系の関数型言語で、プログラミング教育・共同編集・証明学習・AI コード補完研究の基盤として活用されている
  • University of Michigan の Future of Programming Lab が主導するオープンソース研究プロジェクトで、体験用 Web ビルドと GitHub ソースコードが公開されている

Hazel の中核アイデア

  • Hazel は ライブ関数型プログラミング環境であり、typed holes を中心に構成されている
  • 未完成のプログラムでも次の作業を続けられる
    • 型検査
    • 操作
    • 実行
  • 目標は、編集中のコードが壊れた状態でも 意味のあるフィードバック を維持する環境を作ること

不完全なプログラムを扱う方法

  • 一般的なプログラミング過程では、プログラムテキストが形式的に完成していない状態が頻繁に発生する
    • 空欄
    • 型エラー
    • マージコンフリクト
  • 既存のプログラミング言語定義はこのような構造に形式的な意味を与えないため、完成済みの一部コードの動作でさえ ライブフィードバック として扱うのが難しい
  • エディタやツールは、コード補完、型検査、コード探索を途切れなく提供するために、複雑なヒューリスティックへ依存することになる
  • Hazel は不完全なプログラムを ホールを持つプログラム としてモデル化する
    • ホールは欠けているプログラム部分を表す
    • エラーのある部分や共同作業環境での衝突部分を包む膜のように振る舞う
  • このアプローチは、文脈的モーダル型理論と漸進的型理論に基づいている

Hazel の環境と実行モデル

  • Hazel は Elm/ML に似た関数型言語向けの Web ベースのプログラミング環境 として実装されている
  • Hazel の編集アクション言語で作成できるすべての不完全なプログラムは、静的・動的に定義される
    • 不完全な型を持ち得る
    • 実行すると不完全な結果を生成し得る
  • この特性により、Hazel は未来のプログラミング環境とプログラミング教育研究のためのプラットフォームとして使われている

研究ビジョンと関連資料

最近の研究と出版の流れ

利用と貢献

まだコメントはありません。

まだコメントはありません。