新しいものを表示
orange さんがブースト

よくわからないけど、TaPLの第一章にはPerlも安全に分類されてるし、wikipedia英語版を見るとBASICの型安全はstrongに分類されてる・・・><

orange さんがブースト

手続き型言語だとその辺りのハンドリングがややこしいんだけど (操作的意味論)

スレッドを表示
orange さんがブースト

式単位じゃなくてプログラム全体での話をしているので……

でも、それだと、例えば型Aと型Bで演算した時に、型Bの方の値によって、型Aが返ってきたり、型Bが返ってきたり、型Cが返ってきたりする言語って型安全ではないになる・・・?><(?)

オレンジ的には「そんなの型安全じゃないよ!><」だけど、学問的にはそれも型安全であるってことになってるんじゃないの・・・?><

orange さんがブースト

で、これらを合わせると、「型のつく項が、型を保ったまま、値になるまで行き詰まることなく評価できる (または永久に値にできないまま評価し続ける破目になる)」というのが型システムの安全性 (健全性) という性質である、ということになる

[EDIT: 修正した (mastodon.cardina1.red/@lo48576)]

スレッドを表示
orange さんがブースト

保存: 項 t に型がついて t が項 t' へと評価できるなら、 t' には t と同じ型がつく。

ようは評価してたら急に型が変わったりしないという話

スレッドを表示
orange さんがブースト

進行: 項 t に型がつくなら、 t は値であるか、または別の項へと評価できる。

項ってのは大雑把には「式」みたいな概念だと思っといていいかも

お金が無い(し、英語力がない)ので無料で読める第一章しか読んでない><;

orange さんがブースト

TAPL を参照するなら §8.3『安全性 = 進行 + 保存』がドンピシャの節か?

orange さんがブースト

算術式がメモリを破壊するとかしないとか、そういう考え方はしない。

スレッドを表示
orange さんがブースト
orange さんがブースト

そもそも一般的な「計算」をメモリと CPU とかいう限定的なアーキテクチャで考えない

情報系の大学とかでのテストで「型安全とは何か?」って問題で、メモリ上のデータの安全性に注目した答えを書かないとバツになるんじゃないの・・・?>< オレンジはそういう風に解釈してた><

orange さんがブースト

そもそもメモリ破壊とかを持ち出すのがレイヤー違いという感じがする (たとえば単純な項書換え系の言語を考えたときメモリ破壊もクソもない)

スパコンの雪だるまアイコンの人がFediverseに来てくれたら便利なのに><;

オレンジも明示的な型変換な環境の方が好きだけど、世の中の人々が「冗長!」って馬鹿にしてくる21世紀・・・><

orange さんがブースト

型安全はどうでもいいから、振る舞いの滅茶苦茶さと記述の気持ち悪さをどうにかしてくれ、みたいな方。とはいえ、振る舞いの滅茶苦茶さの中に、勝手に型変換するよ~、便利でしょ??みたいなのも入ってるのかもしれん。

古いものを表示
:realtek:

思考の /dev/null