バート・フロイデンベルグの優れた答えに追いついています。
1)これはオブジェクトの能力を正確に理解していますか?
いいえ。 Bert氏が指摘したように、Smalltalkイメージは単なるメモリスナップショットです。 SmalltalkオブジェクトとSmalltalkプログラムの真実の単一のソースは、そのメモリ表現です。これは、プログラムがテキストファイルとして表現される他の言語と大きな違いです。
2)現代の言語にこの能力を追加する際の挑戦は何ですか(非Lisp、明らかに)?
技術的には、ほとんどの言語ではメモリスナップショットからアプリケーションをブートストラップする必要があります。私が誤解していない場合、このアプローチを使用してJavaアプリケーションの起動時間を短縮するソリューションがあります。あなたは正式なメモリ表現に同意しなければならないだろうし、プログラムを再起動するときにネイティブリソースを再初期化するよう注意する必要があるだろう。たとえば、Smalltalkでは、開いているファイルとネットワーク接続が再開されます。また、数字のエンディアンを修正するためのスタートアップフックもあります。
3)「シリアライゼーション」は正しい言葉ですか?正しい専門用語は何ですか?
ハイバーネーションは用語です。
Smalltalkのは、独自のVMで実行されるので、それは独自のメモリ状態を整理し、それ自体を管理しているので、これはうまく機能していることに注意してください。このためにビルドされていないCプログラムでこれを実行しようとした場合、ほとんどの場合は大丈夫でしょうが、コーナーケースが爆発する可能性があります。 – Marcin
スナップショットは、実行状態(プロセス、スタックフレームなど)が通常のオブジェクトメモリの一部であることを助けます。これにより、実行中のコードのスナップショットと再開が特に簡単になります。 –