長文><
形式検証と契約プログラミングって、型のデザインが過度に複雑にならずに安全性を高められるって点でも、むしろ初学者に優しくなるかも><
完全に型のみに頼れば、たとえば引数が0では無い整数である必要がある時には、『0では無い整数型』が必要になるし、結局どこかでその型への明示的な(あるいは暗黙の)型変換が必要になる><
でも、怠慢なプログラマは、ゼロになっていないかのチェックを事前に行わずに、型変換時のエラーに任せるコードを書いちゃって、実行時にエラーが出るか、または出ないけどロジック的には誤りになるコードを記述してしまい、わざわざ『0では無い整数型』を導入したメリットがほとんど無くなっちゃう><
形式検証であれば、実際のロジック部分(?)で「ゼロになる可能性があるのでその対策が必要なこと」をエラーまたはアドバイスにすることができ、
オプショナルで無視するつもりなら無視しておいて実行時のエラーに任せるという選択も出来て、同じ無視する場合でも型で記述する方式と比べると無駄な型変換コードが節約できる><
そういう面でも初学者に易しいかも><
Geminiとこれを土台に議論したけど、Geminiは「形式検証って学習曲線がつらいかし、やっぱミッションクリティカル向けでは?」って反論してきて、
それに「むしろミッションクリティカルな環境以外ではオプショナルな導入で十分で『書きたい人が必要な部分にのみ』ってスタイルで良さそうだし、なにより形式検証によるエラーメッセージは初学者に対して優しいヒントになるんでは?><」ってなって、
Geminiが「たしかにそういう発想でのオプショナルな導入であればかなり有用だし、初学者のアシストとしての形式検証環境ってコンセプトは新しいかも!」(意訳)
ってなった><(実際はもっと長い議論です)
CD2WAV32 for Windows11 Revision 4.00jpをリリースしました – 新しい経験の日々の記録
https://www.mlum-factory.com/blog/archives/5065
継続的な活動によるアイデンティティへの信用の維持、えらい!
👍CD2WAVが20年ぶりの更新!
👎SSTP機能が消えた
SPARK—an annotated Ada subset for safety-critical programming | Proceedings of the conference on TRI-ADA '90
https://dl.acm.org/doi/10.1145/255471.255563
https://doi.org/10.1145/255471.255563