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

yarv-dev:536

From: SASADA Koichi <ko1 atdot.net>
Date: Thu, 21 Jul 2005 15:05:53 +0900
Subject: [yarv-dev:536] [im]mutable string

 ささだです。

http://www.namikilab.tuat.ac.jp/~sasada/diary/200507.html#d20
で、「文字列は mutable か immutable、どちらがいいか」みたいな議論が
ちょっとありました。

a. プログラミングのしやすさ
b. 実行効率の高さ(トータルな計算時間)

として見たとき、まぁそれぞれ色んな要因があるとは思うのですが、

a. プログラミングのしやすさ
a.1: 文字列に色々出来たほうがいい
a.2: 色々出来ると覚えることが増えるので制限したほうがいい


b. 実行効率の高さ(トータルな計算時間)
b.1: immutable だとリテラルごとに文字列生成する必要がなくなって効率的
(共有、非共有などが処理系の都合で柔軟に行える)
b.2: immutable だと排他制御気にしなくていいので
b.3: mutable だと文字列変更操作が使えるのでそのつど新しい文字列を生成し
なくてよいので効率的(bang メソッドが使える、etc)

 など、定性的な議論はできると思うのですが(これについて、間違い、追加な
どあればご指摘ください)、なかなか定量的な議論は無いような気がします。

Q1. これについて、定量的な議論をした論文なり研究成果をご存知の方はいらっ
しゃいませんか?

 で、多分無さそうなのですが、じゃぁ、とりあえず各言語がどんな仕様なのか
集めてみようかと思いまして。


* mutable
  * Ruby
  * Scheme

* immutable
  * Java
  * Python


 不勉強なので、これくらいしかしらないんですが、どなたか他の言語でご存知
のものがあれば、教えていただけませんか(Q2)。GC のある言語において、と
いう制約が付くんだろうか。

-- 
// SASADA Koichi at atdot dot net
//


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

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

->     536 2005-07-21 15:05 [ko1 atdot.net       ] [im]mutable string                      
       538 2005-07-21 15:20 ┣[shudo computer.org  ]                                       
       540 2005-07-21 16:26 ┣[maeda-yarv atusi.org]                                       
       541 2005-07-21 18:58 ┗[shiro lava.net      ]                                       
       542 2005-07-22 08:36  ┣[shiro lava.net      ]                                     
       544 2005-07-24 01:24  ┗[usa garbagecollect.j]                                     
       545 2005-07-24 04:23   ┗[shiro lava.net      ]                                   
       546 2005-07-24 13:50    ┗[usa garbagecollect.j]                                 
       547 2005-07-24 16:54     ┗[matz ruby-lang.org  ]                               
       548 2005-07-24 18:49      ┗[shiro lava.net      ]