В чем разница между виртуальными машинами Squeak / Pharo / Newspeak Smalltalk?

StackOverflow https://stackoverflow.com/questions/6334082

Вопрос

Изучая Smalltalk, я увидел 3 разные виртуальные машины.Это Писк / Фарон / Новояз.В чем разница между ними?

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

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

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

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

http://marianopeck.wordpress.com/2011 / 03/31 / путешествие через виртуальную машину /

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top