型の安全性と型の健全性に違いはありますか?


9

私は型の安全性と型の健全性の定義をばらばらにしようとしてきました、そして私はそれの時間の一体を持っています。私は最近教授に尋ねました、そして少し考えた後、彼は本当に何の違いもなかったと言いました。ただし、これを読んだ後 は次のようになります。

  • 型の安全性は、データへの関数(および演算子)の適用は意味ある(つまり、1 / "Hello"はナンセンスであり、許可されない)とする言語の特性です。
  • 型の健全性は、型チェックシステムのプロパティであり、静的型予測が実行時に正確であることを保証します。

これは明らかに一人のメモであり、PLコミュニティ内に何らかの基準があるのか​​と思います。いくつか検索を行ったが、満足のいく答えが見つからなかった。

回答:


13

型の安全性と型の健全性は、ほとんどの理論的作業における同義語です。タイプの健全性は、運用上のセマンティクスに関して(タイプ)保存および進行として定式化されることがよくあります。保存では、式に型がある場合、(操作セマンティクスによる)評価のステップの後で、結果の式に同じ型を指定できると述べています。進行状況では、式が値ではない場合、つまり式が完全に評価されておらず、適切に型指定されている場合、さらに評価することができます。

「タイプセーフティ」と「サウンドネス」、特に「タイプセーフティ」は、(理論的でない)プログラミングコミュニティでも、あいまい、あいまい、またはまったく正しくない方法で広く使用されています。たとえば、サブセットのみが意味がある場合に任意の文字列を許可する代わりに列挙型を使用するAPIは、「よりタイプセーフである」と呼ばれる可能性がありますが、このステートメントは「type安全」は、言語全体のバイナリプロパティです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.