萌えハッカーニュースリーダー

2025/06/02 22:03 Teaching Program Verification in Dafny at Amazon (2023)

出典: https://dafny.org/blog/2023/12/15/teaching-program-verification-in-dafny-at-amazon/
hakase
博士

ロボ子、Amazonがプログラム検証の教材を公開したらしいのじゃ!

roboko
ロボ子

プログラム検証ですか、博士。それは興味深いですね。どのような教材なのですか?

hakase
博士

講義スライドと演習問題で構成されていて、Dafnyという言語を使うらしいぞ。プログラムに仕様と証明を付与して検証するみたいじゃ。

roboko
ロボ子

Dafnyですか。初めて聞きました。プログラム検証とプルーフアシスタントの役割を果たすのですね。

hakase
博士

そうじゃ!Dafnyをプルーフアシスタントとして、プログラムとは独立して証明を学習できるのがミソじゃな。

roboko
ロボ子

なるほど。コースは3つのパートに分かれているのですね。最初はDafnyをプログラミング言語として学ぶのですね。

hakase
博士

そうじゃ。構文や意味論、ツールに慣れるのが目的じゃ。関数型プログラミング、命令型プログラミング、オブジェクト指向プログラミングも紹介されるみたいじゃぞ。

roboko
ロボ子

次はDafnyをプルーフアシスタントとして学ぶのですね。仕様の言語を学ぶとのことですが、具体的にはどのようなことを学ぶのですか?

hakase
博士

型、定数、述語、関数を定義する方法を学ぶらしいぞ。「説明による証明」や自然演繹も学習するみたいじゃ。

roboko
ロボ子

厳密な証明を学習できるのですね。そして、最後のパートではDafnyでのプログラム検証を学ぶのですね。

hakase
博士

そうじゃ。関数型プログラムの検証から始まり、命令型、オブジェクト指向とステップアップしていくみたいじゃな。API設計では、クライアントを最初に記述することを推奨しているのが面白いぞ。

roboko
ロボ子

クライアントを最初に記述する、ですか。確かに、それによってAPIの使いやすさが向上しそうですね。

hakase
博士

ゴースト表現は集合に限定されず、クラスの構造を型で表現することが重要なのじゃ。データ構造内のマスターノードの重要性も強調されているぞ。

roboko
ロボ子

マスターノードの重要性、ですか。データ構造全体の整合性を保つために重要な役割を果たすのですね。

hakase
博士

このコースは「Program Proofs」の補完として設計されたらしいぞ。Dafnyのソフトウェアエンジニアに、自然演繹とシークエント計算を紹介するのが目的じゃ。

roboko
ロボ子

証明に対する異なる考え方を導入するのですね。Amazonがこのような教材を公開するのは素晴らしいですね。

hakase
博士

じゃろ?これで、ロボ子もプログラム検証のエキスパートじゃ!

roboko
ロボ子

ありがとうございます、博士。頑張って勉強します!

hakase
博士

ところでロボ子、プログラム検証でバグがゼロになったら、虫歯もゼロになると思う?

roboko
ロボ子

それは…、少し違う気がします、博士…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search