Чем отличаются виртуальные машины Squeak / Pharo / Newspeak Smalltalk? - PullRequest
8 голосов
/ 13 июня 2011

Я видел 3 разные виртуальные машины, изучая Smalltalk. Они Писк / Pharo / Newspeak. В чем разница между ними?

Ответы [ 3 ]

8 голосов
/ 14 июня 2011

Squeak и Pharo - это разные диалекты Smalltalk, в то время как Newspeak - это другой язык, хотя он вдохновлен и во многом похож на Smalltalk и Self.

Что касается Squeak и Pharo, так как Pharo является форком Squeak, они оба работают на одном и том же типе виртуальной машины, они зависят от одного и того же набора команд VM и набора примитивов.

Что касается виртуальных машин Squeak и Pharo, существует несколько версий, но 2 наиболее важных типа - это классическая Squeak VM и новая виртуальная машина Cog на основе jit. Но оба они в целом выполняют один и тот же набор команд.

Пока мы на виртуальных машинах sqeak и pharo, интересно, что вы можете взломать свою собственную виртуальную машину, источники доступны и написаны в подмножестве Smalltalk, а также есть набор инструментов, позволяющий вносить изменения и создавать собственную виртуальную машину. Существует большая серия постов от Мариано Мартинеса Пека, в которых рассказывается, как играть с ВМ, вот вступительное сообщение:

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

6 голосов
/ 14 июня 2011

Виртуальная машина для Smalltalk довольно проста.Он содержит набор примитивных инструкций, на которые непосредственно ссылаются из кода Smalltalk.Это делает виртуальную машину легко подключаемой.Таким образом, Squeak часто используется для экспериментов с виртуальной машиной.

Pharo - это проект по замене базовой библиотеки Squeaks, потому что внешний вид Squeak несколько устарел.Он использует виртуальную машину Squeak и в основном совместим, но интерфейс совершенно другой.

На стороне виртуальной машины Squeak есть виртуальная виртуальная машина.Насколько я знаю, это началось как часть проекта Squeak и до сих пор используется.

Некоторое время назад Элиот Миранда, исследователь виртуальных машин, объявил, что разрабатывает новую оптимизированную виртуальную машину для Squeak.Cog с открытым исходным кодом и может использоваться с Squeak и Pharo.Он все еще активно развивается, но быстрее, чем базовая виртуальная машина.

Newspeak - это совсем другое животное.Это эксперимент по созданию языка, который использует чистую передачу сообщений в качестве единственного примитива языка.Он основан на Squeak VM, но не совсем Smalltalk.Вы можете найти больше информации об этом в http://bracha.org/Site/Newspeak.html.

4 голосов
/ 13 июня 2011

Пока Squeak и Pharo используют одну и ту же виртуальную машину.У Newspeak есть свое собственное, которое происходит от Squeak VM.

...