Чем отличаются виртуальные машины Squeak/Pharo/Newspeak Smalltalk?
Я видел 3 разных виртуальных машины во время изучения Smalltalk. Они Писк /Pharo/Newspeak. Какая разница между ними?
3 ответа
Виртуальная машина для Smalltalk довольно проста. Он содержит набор примитивных инструкций, на которые непосредственно ссылаются из кода Smalltalk. Это делает виртуальную машину легко подключаемой. Поэтому Squeak часто используется для экспериментов с виртуальной машиной.
Pharo - это проект по замене базовой библиотеки Squeaks, потому что внешний вид Squeak несколько устарел. Он использует Squeak VM и в основном совместим, но интерфейс совершенно другой.
На стороне VM Squeak есть ванильный VM. Насколько я знаю, это началось как часть проекта Squeak и до сих пор используется.
Затем Элиот Миранда, исследователь VM, объявил, что разрабатывает новую оптимизированную VM для Squeak. Cog с открытым исходным кодом и может использоваться с Squeak и Pharo. Он все еще активно развивается, но быстрее, чем базовая ВМ.
Newspeak - это совсем другое животное. Это эксперимент по созданию языка, который использует чистую передачу сообщений в качестве единственного примитива языка. Он основан на Squeak VM, но не совсем Smalltalk. Вы можете найти больше информации об этом на http://bracha.org/Site/Newspeak.html.
Squeak и Pharo - это разные диалекты Smalltalk, в то время как Newspeak - это другой язык, хотя он вдохновлен и во многом похож на Smalltalk и Self.
Что касается Squeak и Pharo, так как Pharo является форком Squeak, они оба работают на одном и том же типе виртуальной машины, они зависят от одного и того же набора команд VM и набора примитивов.
Что касается виртуальных машин Squeak и Pharo, существует несколько версий, но наиболее важными из них являются классическая виртуальная машина Squeak и новая виртуальная машина Cog на основе jit. Но оба они выполняют в целом один и тот же набор команд.
Хотя мы находимся на виртуальных машинах sqeak и pharo, интересно, что вы можете взломать свою собственную виртуальную машину, источники доступны и написаны в подмножестве Smalltalk, а также есть набор инструментов, который позволяет вам вносить изменения и создавать свою собственную виртуальную машину. Существует большая серия постов от Мариано Мартинеса Пека, в которых рассказывается, как играть с ВМ, вот вступительный пост:
http://marianopeck.wordpress.com/2011/03/31/journey-through-the-vm/
И Squeak, и Pharo используют одну и ту же виртуальную машину. У Newspeak есть своя собственная, которая берет свое начало от Squeak VM.