[前][次][番号順一覧][スレッド一覧][生データ]

langsmith:153

From: MAEDA Atusi <maeda-langsmith atusi.org>
Date: Tue, 12 Oct 2004 23:43:19 +0900
Subject: [langsmith:153] Re: 並行プログラミングのサポート

"HAMADA, Masaaki" <allchapters nifty.com> writes:

> > あとは、キューのサイズが有限だと、やっぱりデッドロックが…とか。
> 
> 今時のOSならスタックは自動伸張しますが、キューも効率よく柔軟に伸び縮み
> するようにできないかな?

可能だとは思います。ただ、やはり有限ではありますよね。

> > 今月の「コンピュータ・ソフトウェア」に昔のABCL/1 (Actor Based
> > Concurrent Language)の論文が再録されています。
> 
> おお、まさにアクターの名を持ったプログラミング言語なんですね。
> その論文を読んでみたいですが「コンピュータ・ソフトウェア」とは
> 学会誌か何かでしょうか?

日本ソフトウエア科学会の会誌ですが、岩波書店から発売されており、大きい
書店なら置いていると思います(ISSN: 0289-6540,雑誌コード: 13843-3)。

> > ABCL/1では、メッセージ送信に
> > ・過去型(非同期)
> > ・現在型(同期的: 2つの過去型メッセージ送信で実現)
> > ・未来型(非同期に送信して、返答は他のオブジェクトへ送らせる: 過去型と
> >   現在型の組合せで実現)
> > の3つがあり、過去型に当たる非同期なものしかないActorより簡潔に記述でき
> > るということになっています。
> 
> ざっとググッてみると未来型というのが丁度Futureパターンを使ったもののよう
> ですね。現在型でレスポンスが返ってくるまではそのスレッドはブロックするか
> どうかが気になるところ・・

ブロックします。
レスポンスを表す特殊なメッセージが来るまで休眠状態となります。

> あとアクターベースとなると基本は全オブジェクトがメッセージパッシングに
> なっちゃいそうですが、実用上それはあまりにオーバーヘッドが大き過ぎるの
> よく言われるところかと思います。

まあ、並行オブジェクトモデル(ABCM/1)を素直に実現した研究用の言語ですの
で。ただ、効率的な実装に関する研究も行なわれていると思います。(良く知
りません。)

> MicrosoftのCOMではオブジェクトが属するスレッドモデル空間を表すアパート
> という概念がありますが、そのアパート(シングルスレッドアパートメント)全体
> をひとつのアクターと見立てるぐらいの粒度で考えられればな、と思ってます。
> で、そのシングルスレッドアパートメントで並行動作したい場合はcoroutine
> (Windows用語ならfiberかな?)を使うと。
> 
> 考えてるだけではしょうがないので、実は上記のモデルをもつようなプログラミング
> 言語を細々と作り始めています。あまり時間がとれないのでなかなか作業進みません
> がいつか公開できればいいなっ(現在flex/bisonと格闘中)

ABCL/1の文法は(Actorと同じく)Lispをベースにしています。
最初の実装も、Lispで書かれた疑似並列的なものだったようです。

Schemeのcontinuationの機能を使えば、疑似並列的な実装はわりと簡単に書け
ると思います。(SteelらがSchemeを作ったきっかけは、「HewittのActorを理
解しようと(並列性を除いた部分を)作ってみたらSchemeが出来た」そうです。)

つねづね思うことですが、言語のプロトタイプを作るならLispやSchemeに限る
と思います。パーザを作る努力の大半は不要ですし、木構造の操作も容易です。

				前田敦司

--
ML: langsmith quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       131 2004-09-28 00:46 [allchapters nifty.co] 並行プログラミングのサポート            
       132 2004-09-28 09:09 ┣[matz ruby-lang.org  ]                                       
       133 2004-09-29 03:22 ┃┗[allchapters nifty.co]                                     
       149 2004-10-09 23:59 ┃ ┗[maeda-langsmith atus]                                   
       152 2004-10-12 21:43 ┃  ┗[allchapters nifty.co]                                 
->     153 2004-10-12 23:43 ┃   ┗[maeda-langsmith atus]                               
       157 2004-10-14 13:00 ┃    ┣[maeda-langsmith atus]                             
       158 2004-10-15 00:30 ┃    ┗[allchapters nifty.co]                             
       159 2004-10-15 02:08 ┃     ┗[maeda-langsmith atus] CPS (Re: 並行プログラミングのサポート)
       134 2004-10-05 00:53 ┗[mas pb.highway.ne.jp]                                       
       137 2004-10-07 01:18  ┗[allchapters nifty.co]