超推論言語妄想

http://www.kmonos.net/wlog/55.php#_1446051108

面白いなぁ…こういうのがメインストリームになるってのはちょっと予測しずらくもあるんですが。もう少しルールが明確でないと、この場合は推論してくれるんだっけ…とか思って結局メソッド名全部書いちゃいそう。この言語って未初期化変数は null 入れてくれるよね…とか思いながら一応 val = null とか書いちゃう感覚で。手慣れた人はスイスイ書けそうだけど。

こういう世界に進化するんだろうか。

// ← int main() { がなんとなく推論されている
2; // int x = 2;
3.2; // float y = 3.2;
print(example(1 & 1.1 => 2.1)(int, float));
// ← return 0; } が推論されている

print は int を print するんだから当然 printf("%d\n") だよね!と推論。

example(a & b, ... => x) は a,b,... を引数として結果が x になる関数を推論して返す。

あれだ、世界中のソースを溜め込んで、そこから学習した定石によって学習させるとか。 printf と int のコラボは printf("%d\n", i) が多かった、この場合は print と int が来てる、うん、一致度70%、よし推論してあげよお、とか考えるコンパイラ

……たぶん以下のコードは、

print;

次のように推論される。

int main() {
    printf("Hello world!\n");
}
なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h