12月2日の学び(プログラミング言語の分類)
型推論
- 周囲の文脈から型を推論すること
- 変数に対する型の記載がなくなるため簡潔に記載ができる(ここ重要!)
静的型付け
動的型付け
型安全
- 型チェックを行うことにより(文法的には正しくても意味をもたない配列範囲外の処理参照など)動作未定義の処理が存在しないことを保証する
- 代償として静的型付けでは型を指定するという煩雑さが存在する
例外処理
- 定義:プログラムの上位の処理から呼び出されている下位の処理で継続不能、または継続すれば支障をきたす異常事態に陥ったとき、制御を呼び出し元の上位の処理に返し安全な状態になるよう回復処理 − 目的:上に記載の通り「異常事態発生の場合安全な状態に回復する」のが最大の目的(ようは回復したい!!)
- 言語レベルで組み込みの例外処理を持たないC言語などでは、戻り値で(非負や非NULL)などでチェックする
- 上の場合はデメリットが存在する①. そもそも戻り値は無視できる②. 具体的なエラー情報が不明③. 戻り値チェックの記述が煩雑
- 例外処理は言語側にないといろいろ困るよね!というのが結論
例外安全
- 実行中に失敗してもメモリ不足や不正な出力などを引き起こさないこと。例外安全には最低限から実行に失敗しないことの保証まで複数のレベルが存在。 okn-yu.hatenablog.com
例外中立
- 発生した例外を握りつぶさないこと