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

Я видел 3 разных виртуальных машины, изучая Smalltalk. Это писк/фаро/новояз. В чем разница между ними?


person eonil    schedule 13.06.2011    source источник


Ответы (3)


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

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

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

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

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

person DefLog    schedule 13.06.2011
comment
Цель Pharo выходит далеко за рамки замены устаревшего интерфейса. Речь идет об эволюции (что, как сказал Алан Кей, было целью Squeak — сделать эту проклятую вещь устаревшей). Вы можете прочитать видение Фаро здесь - person Sean DeNigris; 17.07.2012

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/

person Davorin Ruševljan    schedule 14.06.2011

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

person Janko Mivšek    schedule 13.06.2011
comment
Начиная с версии 2.0, для Pharo требуется специальная обновленная виртуальная машина, которая по-прежнему обратно совместима со старыми версиями Pharo/Squeak. - person camillobruni; 18.07.2012