KODAMA LAB
1998 — Java Applets

Java による
並行オブジェクト指向プログラミング

回転体を並行に動かし、セマフォで同期させ、有限バッファで待ち合わせる ── 1998年に Java アプレットで公開したデモです。ソースはすべてそのまま残してあります。

▶
JavaScript 版なら、いま動きます Java アプレットは 2017年以降どのブラウザでも動きません。 同じ7本のデモを、当時と同じ座標・角度・セマフォのままブラウザで動くように書き直しました。
見る →
⚙
1998年の .class そのものを動かすこともできます 書き直した JavaScript ではなく、当時の バイトコードを1命令ずつ解釈する JVM を JavaScript で書きました。Thread・synchronized・wait/notify も本物と同じ意味で動きます。
動かす →

一つのオブジェクトの回転

▶ JavaScript 版で動かす ▶ 1998年の .class を動かす

簡単なクラスを用いて 3D オブジェクトを生成する。

一つのオブジェクトの回転(ダブルバッファ)

▶ JavaScript 版で動かす ▶ 1998年の .class を動かす

次は、ダブルバッファを用いて処理をする。

複数のオブジェクトの回転

▶ JavaScript 版で動かす ▶ 1998年の .class を動かす

これら 3D オブジェクトは、並行に処理される。ここでは、六個のオブジェクトを生成する。

複数のオブジェクトの回転(ダブルバッファ)

▶ JavaScript 版で動かす ▶ 1998年の .class を動かす

次は、ダブルバッファを用いて処理をする。

同期 v.s. 非同期

▶ JavaScript 版で動かす ▶ 1998年の .class を動かす

セマフォを使って、同期、非同期を切替える。さらに、ダブルバッファの機能は追加してある。

Bounded Buffers

▶ JavaScript 版で動かす ▶ 1998年の .class を動かす

有限バッファ問題を表現する。

当時のページそのもの: index-j-1998.html / 言語ごとの違いを扱った講義資料: Java・ JavaScript・ Python