タグ

型とJavaに関するigrepのブックマーク (4)

  • 多相からプログラミング言語を見る - 趣味はデバッグ……

    こんにちは。ホビー型システミストの岡です。 最近 C++ の習得をしていて、なんとなく多相(polymorphism)の視点からいくつかのプログラミング言語をまとめてみようという気になったので書いてみます。 部分型多相(subtype polymorphism) クラスベースオブジェクト指向言語でよく使うのは部分型多相ですかね。 Java や C#・C++ にある、名称的部分型多相(nominal subtype polymorphism)はこんな感じ。次の例は Java です。 class A {} class B extends A {} public class Main { public static void main(string[] args) { A foo = new B(); } } 変数 foo は A 型だけど、型(クラス)B は A の部分型(サブクラス・派生ク

    多相からプログラミング言語を見る - 趣味はデバッグ……
  • 私と型システムとポエム

    最近巷では俄に型システムについての言及が増え、型システムポエマーが増えてる気がするので自分もその時流に乗りたい。 完全にポエムだけどなんかあったら随時指摘ください。直します。 TL;DR 言いたいことはまとめると次 型システムは程度問題なのでちょうどいいところを探すべき 型は万能でも強さが正義でもない(だから未だに研究されてる) よく知りもしないくせに計算機科学を侮辱するのはやめろ 予防線 あくまでポエムですので中身はないです 私は型理論専攻で学位はとったものの研究者ではないのであまり信用しすぎないように 型システムの過去 型システムは大まかに次のような利点があるとされてきた(個人的主観) 「異常」なプログラムを検出する仕組み 静的解析による分かりやすいエラーメッセージ 型そのもののドキュメント性 IDEでのcompletionに貢献 最適化に貢献 (数学に正しく裏打ちされたsemanti

    igrep
    igrep 2018/06/03
    そうだね...。
  • Javaの "? extends" や "? super" の使い方をC#やScala風に考える - Qiita

    なお Comparator は java.util パッケージに含まれるインタフェースで次のように宣言されています。 ? super や ? extends (下限または上限つきワイルドカード)は Java でジェネリクスを使う上で特に難しい部分です。比較的新しい言語( C# 、 Scala 、 Ceylon など)では同じ目的のためによりシンプルでわかりやすいアプローチがとられています。 Java が採用した方法は Use-site variance annotation と呼ばれ、 C# などが採用した方法は Declaration-site variance annotation と呼ばれます。投稿では Declaration-site variance annotation の考え方をベースに Java でどのように ? extends や ? super を使えば良いか につい

    Javaの "? extends" や "? super" の使い方をC#やScala風に考える - Qiita
  • 型安全ってなんだろう?

    きょん@アジャイルコーチ、システムアーキテクト @kyon_mm @osiire はい。。。F# を日常的に使っていたり、OCamlを勉強していると、型安全って静的型付けであることとは違うし、型によって何を保証したり、表現できれば型安全であるって言えるのかよくわからなくなってきました。型安全って言葉を安易に使えないですね。 2012-09-20 19:02:42

    型安全ってなんだろう?
    igrep
    igrep 2016/04/01
    型安全性で何を守るかは、守れる範囲が広くなるようにAPI設計や言語機能をがんばったりする努力に依存するので守れるものに多少があるのは当然なことでは
  • 1