関係ない話題ばっかだし、サボってるし、、、
abdev, その他 4月 16th, 2007ということで、久々のサブミット!
ニ連休、これまたお気に入りのアーティストが増えました。有名だから皆知ってるだろなぁ~
YUI
http://www.yui-net.com/
さて、時期AB、伸び伸びですね~(こんなんでいいのかっっ)f(^^;;;最近は仕事が忙しいといえばそうなのですが、合間の時間で好きなことはできています。
【オブジェクトはALL参照型になっています】
何かとなると、値型のオブジェクトが邪魔をしていたAB4でしたが、結局こういう決断にたどり着きました。ん?オブジェクトがデフォルトで参照型になると、何がよいかって?そりゃ、まぁ色々と特権が付くのですよ!(←書き始めると止まらなくなりそうなので、今日はハショります。寝たいし。)
【動的型情報がつきます】
アップキャストは勿論、ダウンキャストも可能になります。オブジェクト自身が一体どんな構造をしているのか、実行時に調べることが出来ます。今後、オブジェクトと外部データのシリアライズに威力を発揮してくれることでしょう。
【もう保守的じゃないGC】
GCは不必要なメモリオブジェクトを判別するとき、グローバルルートまたはローカルルートを元に参照データをたどってマーキングしていきます。
ネイティブなコードを吐くコンパイラはなかなか苦手なのだと思いますが、、データそのものがあるだけでは、その中が参照データなのか、ただの数値型なのかは判断がつきません。となると、何でもいいから、怪しいヤツはマークしておくこと!となるのですが、いかんせん遅いんです(実際、直近のAB5βがそれでした)。
そこで、AB5では動的型情報を活用することで、参照のみを辿ることで余分な処理がザックリ切り捨てました。まずはかなり快適になっています。
更に今後は各オブジェクトメモリに年齢を付けて世代別の機構を取り入れていこうと考えているため、パフォーマンスは乞うご期待といったところでしょうか。
【これからの配列は動的なのがデフォルト】
AB4までの配列、C言語から一切成長していない構造で自由度が少なかったことかと思います。可変データを扱うときはポインタを定義して、mallocとかして、、、というように、Basic言語の想定を遥かに超えたコーディングを余儀なくされていたことと思います。
AB5からは、ArrayListが標準になります。現在のβ版ではまぁまぁ動くようになっているので、実用化に向けた取り組みをしていきたいところです。
と、AB本体に関する最近の流れをサラッと取り上げてみましたが、なんといってもライブラリの充実化が今までにない勢いで進んでいるところでしょうか。明らかに、以前と比べるとレベルの高い開発者の方に各タスクをお願いできています。とても頼もしい限りです。
そろそろ色々とアクションを起こしていきたいところ。時間が出来次第、ブログ再開したいなー
4月 16th, 2007 at 16時01分30秒
> もう保守的じゃないGC
> 参照のみを辿ることで余分な処理がザックリ切り捨てました。
それってある意味めっちゃ保守的ですね。
参照のアドレスを整数型にキャストして・・・ということはできなくなりますが。
ところで、そうなるとポインタは大丈夫なのでしょうか?
今の世界的な流れとしてポインタは参照に取って代わられつつありますが、ないよりもあった方が便利です。
Javaで goto がなくなって難儀している僕が言います :-)
4月 16th, 2007 at 16時34分02秒
確かに、”保守的じゃない” というと語弊があるかな…。
ポインタはなくならないです。GCたどるのは、厳密には参照とポインタになります。ただし、ABランタイムが管理するマネージドヒープ領域(Newとかmallocとかで確保した部分)を超えたメモリ空間は検出の対象外なので注意が必要です。例えば、HeapAllocとかでゴリゴリ書いてあるコードはGCは面倒を見てくれません。
ポインタはなくなりませんが、アプリレベルでのコーディングでは非推奨になることは間違いないでしょう。