JVM上で動作するLisp方言のclojure

プログラミングClojure

プログラミングClojure

common lispでもschemeでもないlisp方言で、JVM上で動作し、javaクラスとの親和性を考慮しつつ、並列化を言語側でサポートしているclojureの本です。結構薄い本なので持ち運びも楽でした。やはり時代はsoftware transactional memoryのようですね。
他にも色々な算譜言語があるわけですが、理由はどうあれJVMとか.NETとか大きめのライブラリとの親和性、特にバイナリレベルでの互換性を考慮しないと、実用的でないのかもしれません。

ストラウストラップ先生のOOPは差分プログラミングなのか?

クラスはサブルーチン由来(Simula)の補足 - みねこあ について少々思う所があったので。

ストラウストラップ先生の「プログラミング言語 C++」では、オブジェクト指向プログラミングを、ADTに実装継承による差分プログラミングを組み合わせたもの(と同時に概念の階層構造を持たせたもの)のようにかかれています。

クラスはサブルーチン由来(Simula)の補足 - みねこあ

ここまで言いきられてしまうとちょっと違和感があります。

プログラミング言語C++ (アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming series)

プログラミング言語C++ (アスキーアジソンウェスレイシリーズ―Ascii Addison Wesley programming series)

この本の 2.6 でオブジェクト指向プログラミングについて述べていますが、形状を扱うクラスの描画を行うメンバ関数が、

void Shape::draw()
{
    switch(k) {
    case circle:
        // 円を描画
        break;
    case triangle:
        // 三角形を描画
        break;
    case square:
        // 正方形を描画
        break;
    }
}

というように形状毎の描画方法をもっているのは変更時のコストが大きいため、

class Shape {
    Point center;
    Color col;
    // ...
public:
    Point where() { return center; }
    void move(Point to) { center = to; /* ... */ draw(); }

    virtual void draw() = 0;
    virtual void rotate(int angle) = 0;
    // ...
};

というように描画や回転を行うメンバ関数を純粋仮想関数とすることで、

void rotate_all(vector<Shape*>& v, int angle)
{
    for (int i=0; i <v.size(); ++i) v[i]->rotate(angle);
}

というように図形によらない汎用関数を作ることが出来る、というように説明しています。

ですので、"インターフェースの継承とインプリメンテーションの継承を一緒に扱ってしまっている"というような説明であればそうかなとも思うのですが、id:minekoaさんのこの記事は"ストラウストラップ先生は差分プログラミングの組み合わせをオブジェクト指向プログラミングと言っている"と言うように読めるのでどうなんだろうと少し引っかかりました。

LLVM 2.7

LLVM Download Page

LLVMの2.7がリリースされているようです。
色々と変わっているようです…としか書きようがないくらい色々かわっています。
LLVM 9.0.0 Release Notes — LLVM 9 documentationについての明後日の方向の所感としては、実際のプロセッサに関する章立てがx86, arm, otherという3択になっていて、やっぱりパソコン以上の所はx86でそれ以下はarmというのが世の流れなのかな?という所です。後armに関してはneonに対応したようです。

情報処理学会が日本将棋連盟に「コンピュータ将棋」で挑戦状

ちょっとネットワークまわりの不都合とか仕事とか色々あってしばらく書いてませんでしたが、また少しずつ書いていこうと思います。

以前この日記でダメ扱いした情報処理学会ですが、今度はおもしろいことをやってくれました。

情報処理学会が日本将棋連盟に「コンピュータ将棋」で挑戦状

将棋連盟側の

いい度胸をしていると
その不遜な態度に感服仕った次第

には笑いました。