Phantom objects are dynamically (heap) allocated only. No automatic (stack) objects exist. No static (classless) objects exist, but programmer can store 'global' data in the application's root class.
All the memory is processed with garbage collector. I must mention that EVERYTHING in Phantom is subject of garbage collection. Application as a whole will be killed if no object references it (practically it means that no data object for this app exist and no system directory, such as “all apps list” p
>Phantom objects are スタックがないんじゃなくて、「phantomのオブジェクトはスタックにもスタティックにも置かなくて、全部ヒープから取るよ。でもアプリケーションクラスにグローバルデータは置けるよ。」という話なんじゃ?逆に言えばPhantomオブジェクトでなければスタックに置かれる場合もあるだろうし、そもそもVMがスタックマシン(命令のオペランドがスタック)だし。
スタック排除 (スコア:3, 参考になる)
Re:スタック排除 (スコア:1)
>Phantom objects are
スタックがないんじゃなくて、「phantomのオブジェクトはスタックにもスタティックにも置かなくて、全部ヒープから取るよ。でもアプリケーションクラスにグローバルデータは置けるよ。」という話なんじゃ?逆に言えばPhantomオブジェクトでなければスタックに置かれる場合もあるだろうし、そもそもVMがスタックマシン(命令のオペランドがスタック)だし。
スタックにオブジェクト置かない、というよりヒープから取ったオブジェクトのグラフになってるのは、スタックやスタティック領域にオブジェクトを置かれると、それがガベジコレクタにとって例外的処理になって面倒だからだろう。
あと、家電用にはそんなのはまず使われないだろう。何よりもまず全くペイしない。