2017-12-11 23 views
0

最近、私は言語の動的かつ静的な分析を学んでいます。私はstatic and dynamic code analysisのようないくつかの関連する質問を読んだが、まだいくつかの質問がある。静的型検査システムとは何ですか?

動的解析は、コンパイルおよび実行時の期間中に発生し、プログラムの状態を確認することができます。動的解析では、不要な実行ステップを回避できます。静的解析は、しばしば静的型検査システムを指し、静的解析は実際のプログラム挙動を正しく予測しなければならない。静的型システムでは、割り当てられた型は、プログラムが実行時に評価できるすべての値を記述しなければならないことを意味します。タイプチェッカーが、プログラムが評価するすべての値を記述していないプログラムにタイプを割り当てるとどうなるのだろうかと思います。誰かがその例を挙げることはできますか?それらがターゲットのものと互換性のないタイプである場合(ほとんどの言語は、割り当てを強制する方法を提供するが)静的に型付けされたシステム値の

答えて

0

は、割り当てられた(またはパラメータとして渡される)ことができません。

静的型付き言語の静的型分析は予測的ではありません。それは規範的です。

しかし、静的解析は、常にtrueや `偽である条件の上にnull値によって可能アクセスをチェック、またはswitch/case文で列挙のAl値を処理していない、または条件文のような、あまりにも予測分析を行うことができます静的解析では多くの一般的なプログラミングエラーを検出できます。

動的に型指定された言語の静的型分析も可能です。それはtype inferenceと呼ばれています。

関連する問題