Satoshi Matsuoka, Satoru Kawai
Using Tuple Space Communication in Distributed Object-Oriented Languages
OOPSLA88SIGPLAN Notices, Vol. 23, No. 11, pp. 276-284, November 1988

詳細 Wikiページ作成 関連カテゴリ:  Linda

Andre Weinand, Erich Gamma, Rudolf Marty
ET++ - An Object-Oriented Application Framework in C++
OOPSLA88, pp. 46-57, August 1988
汎用ウィンドウシステム上でMacAppのような機能を使えるようにしようと C++ + UNIX で作ったツールキットである。狙いはXツールキットなどに近い。 dialogをどうやってやるとかいうことは議論しておらず、C++ を使って いかにうまくオブジェクト指向風に実現しているかを強調しているようである。 \\ どのようなウィンドウシステム上でも使用できるように汎用のインタフェースを 使っている。 描画対象は全てVObject以下のクラスとなっている。 画面への表示は、View(描画平面)+ViewFrame(ウィンドウ枠のようなもの)の 階層という描画モデルを採用している。 テキストを扱うクラスが存在するが、テキストの文字として一般表示 オブジェクトVObjectを指定できるためDialogNodeを編集するといったことが 可能になっている。 dialogはDialogNodeというオフジェクトを階層的木構造としたものを 使う。eqnライクな指定によってレイアウトを簡単に指定できる。 DialogNodeを集合として扱うことによってメニューなども うまく表現できる。 ウィンドウ毎にイベント待ちループが存在している。 \\ イベントが実際どのように扱われていくのかよくわからないが、 Macのインタフェースさえできれば良いと思っているのか、 「どのようなインタフェースが良いか」とか「汎用のインタフェースは どういう仕組みなら可能か」といったことはあまり気にしていないようである。 \\ MacApp、CoxのソフトウェアIC、GorlenのOOPS、Smalltalk、X Toolkitなどを 気にしておりUIMSは気にしていないようである。 このあたりがUNIXフリークの落ち入りやすい所のような気がする。

詳細 Wikiページ作成 関連カテゴリ:  ユーザインタフェース全般

Norman Meyrowitz
Intermedia: The Architecture and Construction of an Object-Oriented Hypermedia System and Applications Framework
Proceedings of the 1986 ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA86), pp. 186-201, September 1988

詳細 Wikiページ作成 関連カテゴリ:

Pedro A. Szekely, Brad A. Myers
A User Interface Toolkit Based on Graphical Objects and Constraints
Proceedings of the 1988 ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA88), pp. 36-45, August 1988
階層的グラフィックオブジェクト、制約、入力/出力/アプリケーション の間に位置する「active value」を活用したユーザインタフェース ツールキットである。この論文の中で特に述べられてはいないが、 ユーザインタフェースには「直接操作」と「意味フィードバック」が 不可欠であることが最近広く信じられている。 オブジェクト指向を使ってこれらを実現しつつ入出力とアプリケーションを 分離することができるということを主張している。 本システムはCommon Lisp+CLOS上に作られている。 \\ 本システム「Coral」は入力部(Interactors)、表示部(Graphical objects + constraings)、Active Value、アプリケーションに分かれている。 Interactor(入力操作オブジェクト)については本論文では述べられていない。 \\ 表示部は(よくある?)階層的グラフィックオブジェクトとそれらの間の制約 で構成されている。 \\ Active Valueは入力またはアプリケーションにより操作され、 その結果表示が影響をうける。またActive Valueが変化すると アプリケーションに通知される。Active Valueにより他の部分が分離されて いるわけである。 \\ 例えばマウスをドラッグして回路図のノードを移動させる場合、 マウスの移動によりInteractorを通じてActive Valueの値が変化し、 それを参照する制約条件により表示が刻々変化していくといった具合である。 \\ グラフィックオブジェクトは図形を階層的なクラスで定義してあるもので、 描画関数、位置、ある点がそれに含まれるかどうかを知る関数、 などを含んでいる。また図形を集合として扱う機能も持っている。 \\ 制約及び表示オブジェクトは宣言的、手続き的の両方で指定できる。 宣言的記述は手続き的記述に変換される。 オブジェクトに手続きをattachして定義するといった感じである。 制約がくずれるとシステムが定義に従って再び制約を 満たすように動いていく。 制約は1方向に限られるが、それによって問題は特に生じず効率は 良くなっている。 \\ 疑問点..... \\ 制約でうまく記述できれば確かに美しいが、本当に複雑なインタフェースを それだけで記述できるのであろうか。例示によるインタフェースの場合 でもそうであるが、ある特定のインタフェースしか扱えないのでは ないか? 状態をもたせたいときなどどうするのかしら? また並列性、例外処理などについて何も言っていないが実際に 問題になるのはそのあたりではないのか? モデルはすっきりしていて気持ちが良いと感じる。わけのわからない 図を書く日本人が多いので.... やっぱりLISPの方がこういうのを書きやすいのであろう。

詳細 Wikiページ作成 関連カテゴリ:  ユーザインタフェース全般

David Ungar, Frank Jackson
Tenuring Policies for Generation-Based Strage Reclamation
OOPSLA88, pp. 1--17, September 1988
Previous Work: Generation-Based Automatic Storage Reclamation Algorithms: tenuring -- generation-based GC において new areaからold areaにobjectを移動す ること.(tenureとは,役職・不動産の保有期間,ある期間の在職後に与 えられる終身在職権のこと.) tenuring problem -- 大量のtenured objectによって回収不能な空間(tenured garbage)が大量 に発生すること. Multiple Generations:  Lieverman, Moon, Caudillらが採用しているが,全てtenuring policyと してはfixed-age promotion policyに基づいている.  本研究ではfeedback-mediated policyを採用した.が,Multiple Generationsは未実装である.(two-generation schemeで行ったということ.) これは,新しいtenuring policyの評価を優先的に考えたことと,そもそも本 研究以前はこのtenuring policyのもとでMultiple Generationsを実装すると きの戦略を決定するのに十分なデータがないからだという. \\ Methodology:  トレースログの要求条件,採集方法,その正当性を述べている.動特性の 評価方法が確立しているわけではないし,nativeなGC等のシステム構成にに 依存する評価要素が多いので,この部分にかなりの紙数を割いている.  ちなみに,実験の対象はParcPlace Smalltalk 2.2であり,メインのGCのア ルゴリズムにはdifferd-reference-countingを用いている.また,シミュレー ションの結果から,tenuring threshold(tenuringを行うage)をパラメータと したpause-timeとtenured-garbageの関係でGCの性能を評価している. \\ Dynamic Analysis of Tenuring Policies: Fixed-Age Tenuring Policy:  バッチ的なジョブは,pause timeもtenured garbageもインタラクティ ブなジョブに比べてかなり多い. Fixed-Age Tenuring Policy with Segregating Large Bitmaps and Strings:  large bitmapsとstringsの領域を十分とって,それらがtenureされな いようにしている.(注.多くのgeneration-based GCでは,pause-time thresholdを設けており,その間にscavengeされなかったオブジェクト(?)や, new spaceに入りきらないオブジェクトはtenureされることになる.) 分析を簡単にするためだろうが,ずるい感じがする.  tenured garbageの減少が数メガバイトになることは,昨今のWSの実メ モリ量を考えると価値があるといっている. A Demographic Feedback-Mediated Tenuring Policy: feedback mediation -- demographic information --  毎回のscavengeの後に,new spaceに生き残っている量を計算する. (pause-timeはオブジェクトをコピーする時間に比例すると考えられるので, 次回のpause-timeは生き残りオブジェクトの量で見積れる.) もし,その量がpause-time thresholdを下回っていれば,tenure threshold を無限大にして,次回のscavenging時にtenuringが起こらないようにする. 一方,越えた場合はage/rest-bytes表を参照して必要最低限の量だけ tenuringを行うようにする.  要するに,pause-time thresholdの周辺で必要最小限のtenuringを起こ すように工夫している.
 large bitmapsとstringsを別領域に移すことのどこが新しいのかまったく意 味不明.(普通そうするでしょう.)まあ,Smalltalk環境でのこういった objectの多さを再認識させるものではあるが,性能向上を強調するための演出 ととれないこともない.  GCに対するアイデアの部分はともかく,シミュレーションの手法や背景等は参 考になる.(time-cost即ちpause-timeの減少が最も重要で,space-cost即ちtenured- garbageはその次ということ等.)
 筆者はUngarのGereration Scavengingについて,特にscavengingという用語 の正確な定義を理解していない.数年前,日経エレクトロニクスに富士ゼロッ クスが書いた解説記事の中に簡単な説明があったものがこれに相当するのだろ うか.その記事の主眼はgenerationよりもscavenging(その記事の場合, differed-reference-countingの合間に,局所的な参照関係に着目して mark-and-sweepを挟み込むことらしい)の解説にあったようだが.誰か,Ungar のoriginal paperを紹介してください.  GCの一般的なアルゴリズムや(例えばgeneration-based GC等について)は, ACM Computing ServeyのCohenの文献を参照のこと.昔のbit別冊に邦訳がある.  John Lennon, Paul McCartney, Billy Joelの詞が随所に引用してあり, 参考文献にまで載せてある.まったく唄でもうたいながら書いたような感じが する軽い感じの文章になっている.(まったく!!)

詳細 Wikiページ作成 関連カテゴリ: