9

Smalltalkについて学びながら、3つの異なるVMを見ました。彼らはSqueak/Pharo/Newspeakです。それらの違いは何ですか?

4

3 に答える 3

9

SqueakとPharoはSmalltalkの異なる方言ですが、Newspeakは異なる言語ですが、インスピレーションを得て、多くの点でSmalltalkとSelfに似ています。

SqueakとPharoについては、PharoはSqueakのフォークであるため、どちらも同じ種類の仮想マシンで実行され、同じVM命令セットとプリミティブのセットに依存します。

SqueakおよびPharo仮想マシンにはいくつかのバージョンがありますが、最も重要な2つの種類は、従来のsqueakVMと新しいjitベースのCog仮想マシンです。しかし、どちらも一般的に同じ命令セットを実行します。

sqeakおよびpharoVMにいる間、独自のVMをハックできることは興味深いことです。ソースが利用可能であり、Smalltalkサブセットで記述されています。また、変更を加えて独自のVMを構築できるツールセットがあります。マリアーノマルティネスペックからの素晴らしい一連の投稿があり、VMで遊ぶ方法を説明しています。紹介記事は次のとおりです。

http://marianopeck.wordpress.com/2011/03/31/journey-through-the-vm/

于 2011-06-14T07:02:50.553 に答える
7

Smalltalkの仮想マシンは非常に基本的です。Smalltalkコードから直接参照される一連のプリミティブ命令が含まれています。これにより、実際のVMを簡単にプラグインできます。そのため、Squeakは仮想マシンの実験によく使用されます。

Pharoは、Squeakのルックアンドフィールがやや古くなっているため、Squeaks基本ライブラリを置き換えるプロジェクトです。Squeak VMを使用し、ほとんどの場合互換性がありますが、インターフェイスは完全に異なります。

SqueakのVM側には、バニラVMがあります。私の知る限り、それはSqueakプロジェクトの一部として始まり、現在も使用されています。

それからしばらく前に、VMの研究者であるEliot Mirandaは、Squeak用に最適化された新しいVMを開発していると発表しました。Cogはオープンソースであり、SqueakとPharoで使用できます。それはまだ活発に開発されていますが、基本的なVMよりも高速です。

ニュースピークはまったく別の動物です。これは、言語の唯一のプリミティブとして純粋なメッセージパッシングを使用する言語を作成するための実験です。これはSqueakVMに基づいていますが、実際にはSmalltalkではありません。詳細については、http://bracha.org/Site/Newspeak.htmlを参照してください。

于 2011-06-13T22:15:14.047 に答える
5

これまでのところ、SqueakとPharoの両方が同じVMを共有しています。Newspeakには、SqueakVMに由来する独自の機能があります。

于 2011-06-13T18:00:47.557 に答える