><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
https://research.nii.ac.jp/~ichiro/lecture/model2003/operational%20semantics.pdf
よくわからないけど、TaPLの第一章にはPerlも安全に分類されてるし、wikipedia英語版を見るとBASICの型安全はstrongに分類されてる・・・><
手続き型言語だとその辺りのハンドリングがややこしいんだけど (操作的意味論)
式単位じゃなくてプログラム全体での話をしているので……
でも、それだと、例えば型Aと型Bで演算した時に、型Bの方の値によって、型Aが返ってきたり、型Bが返ってきたり、型Cが返ってきたりする言語って型安全ではないになる・・・?><(?)
オレンジ的には「そんなの型安全じゃないよ!><」だけど、学問的にはそれも型安全であるってことになってるんじゃないの・・・?><
で、これらを合わせると、「型のつく項が、型を保ったまま、値になるまで行き詰まることなく評価できる (または永久に値にできないまま評価し続ける破目になる)」というのが型システムの安全性 (健全性) という性質である、ということになる
[EDIT: 修正した (https://mastodon.cardina1.red/@lo48576/110698616033544189)]
保存: 項 t に型がついて t が項 t' へと評価できるなら、 t' には t と同じ型がつく。
ようは評価してたら急に型が変わったりしないという話
進行: 項 t に型がつくなら、 t は値であるか、または別の項へと評価できる。
項ってのは大雑把には「式」みたいな概念だと思っといていいかも
お金が無い(し、英語力がない)ので無料で読める第一章しか読んでない><;
TAPL を参照するなら §8.3『安全性 = 進行 + 保存』がドンピシャの節か?
算術式がメモリを破壊するとかしないとか、そういう考え方はしない。
チューリング機械は計算機のいち実装でしかない
?><;
そもそも一般的な「計算」をメモリと CPU とかいう限定的なアーキテクチャで考えない
情報系の大学とかでのテストで「型安全とは何か?」って問題で、メモリ上のデータの安全性に注目した答えを書かないとバツになるんじゃないの・・・?>< オレンジはそういう風に解釈してた><
そもそもメモリ破壊とかを持ち出すのがレイヤー違いという感じがする (たとえば単純な項書換え系の言語を考えたときメモリ破壊もクソもない)
これ、あってるよね?><;https://mstdn.nere9.help/@orange_in_space/110698517477850292
スパコンの雪だるまアイコンの人がFediverseに来てくれたら便利なのに><;
オレンジも明示的な型変換な環境の方が好きだけど、世の中の人々が「冗長!」って馬鹿にしてくる21世紀・・・><
型安全はどうでもいいから、振る舞いの滅茶苦茶さと記述の気持ち悪さをどうにかしてくれ、みたいな方。とはいえ、振る舞いの滅茶苦茶さの中に、勝手に型変換するよ~、便利でしょ??みたいなのも入ってるのかもしれん。
思考の /dev/null