Stackless Virtual Machines
От: EvilChild Ниоткуда  
Дата: 12.10.06 20:27
Оценка:
Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.
Где бы почитать про безстековые? Интересует что это и какие у него есть преимущества.
Google выдаёт ссылки только по питону, а нужно общее описание идеи.
now playing: NASA Space Recordings Of Earth — Voice Of Earth I
Re: Stackless Virtual Machines
От: c-smile Канада http://terrainformatica.com
Дата: 12.10.06 20:39
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.

EC>Где бы почитать про безстековые? Интересует что это и какие у него есть преимущества.
EC>Google выдаёт ссылки только по питону, а нужно общее описание идеи.

Stackless Python это попытка создания VM Python которая не использует C stack. (наконец-то)
Не больше и не меньше.
Re: Stackless Virtual Machines
От: FR  
Дата: 12.10.06 20:45
Оценка: 19 (2)
Здравствуйте, EvilChild, Вы писали:

EC>Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.

EC>Где бы почитать про безстековые? Интересует что это и какие у него есть преимущества.
EC>Google выдаёт ссылки только по питону, а нужно общее описание идеи.

Могу про питон сказать. Главный смысл разделения там машиного стека и стека интерпретатора в том, чтобы легко сохранять и восстанавливать состояние интерпретатора для реализации легких, не зависимых от OS потоков. Ну и дополнительные преимущества сопрограммы и рекурсия ограниченная только виртуальной памятью.
Re: Stackless Virtual Machines
От: Mamut Швеция http://dmitriid.com
Дата: 13.10.06 07:50
Оценка:
EC>Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.
EC>Где бы почитать про безстековые? Интересует что это и какие у него есть преимущества.
EC>Google выдаёт ссылки только по питону, а нужно общее описание идеи.

Стэк там есть, тольк он реализован внутри виртуальной машины и не зависит от стека операционной системы.

Например, вот, например рассуждения на эту тему в контексте Эрланга
... << RSDN@Home 1.2.0 alpha rev. 655>>


dmitriid.comGitHubLinkedIn
Re: Stackless Virtual Machines
От: mishaa Россия http://kmmbvnr.livejournal.com
Дата: 13.10.06 10:19
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.

EC>Где бы почитать про безстековые? Интересует что это и какие у него есть преимущества.
EC>Google выдаёт ссылки только по питону, а нужно общее описание идеи.

Может имеет смысл посмотреть на Continuation Passing Style? Правда это по большей части имеет отношение к компиляции.
-- Главное про деструктор копирования не забыть --
Re[2]: Stackless Virtual Machines
От: EvilChild Ниоткуда  
Дата: 13.10.06 18:47
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Stackless Python это попытка создания VM Python которая не использует C stack. (наконец-то)

А почему наконец-то? В чём выигрыш в их случае?
now playing: Monolake — Melting
Re[3]: Stackless Virtual Machines
От: FR  
Дата: 14.10.06 07:41
Оценка: 20 (3)
Здравствуйте, EvilChild, Вы писали:

EC>Здравствуйте, c-smile, Вы писали:


CS>>Stackless Python это попытка создания VM Python которая не использует C stack. (наконец-то)

EC>А почему наконец-то? В чём выигрыш в их случае?

http://www.iso.ru/journal/articles/print/63.html
Re: Stackless Virtual Machines
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.10.06 16:18
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.


Не надо путать виртуальные машины рассчитанные на JIT-компиляцию и внутреннюю архитектуру интерпретаторов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Stackless Virtual Machines
От: EvilChild Ниоткуда  
Дата: 14.10.06 16:28
Оценка: +1
Здравствуйте, VladD2, Вы писали:

EC>>Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.


VD>Не надо путать виртуальные машины рассчитанные на JIT-компиляцию и внутреннюю архитектуру интерпретаторов.

А эти классификации не ортогональны?
now playing: Sinthetix — Future Fear
Re[2]: Stackless Virtual Machines
От: c-smile Канада http://terrainformatica.com
Дата: 14.10.06 20:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, EvilChild, Вы писали:


EC>>Слышал, что виртуальные машины бывают стековые — JVM, CLR и безстековые — Stackless Python.


VD>Не надо путать виртуальные машины рассчитанные на JIT-компиляцию и внутреннюю архитектуру интерпретаторов.


JIT транслирует последовательность bytecodes в native code который (как правило) исполняется регистровой машиной (процессором).
Но JIT компиляция не изменяет стековую природу самого bytecode. Стек заложен в самой архитектуре JVM и CLR и он там есть и работает даже с JIT.
Re[3]: Stackless Virtual Machines
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.10.06 22:20
Оценка: +1
Здравствуйте, c-smile, Вы писали:

CS>JIT транслирует последовательность bytecodes в native code который (как правило) исполняется регистровой машиной (процессором).

CS>Но JIT компиляция не изменяет стековую природу самого bytecode. Стек заложен в самой архитектуре JVM и CLR и он там есть и работает даже с JIT.

После компиляции о байткоде никто уже больше не вспоминает. С этого момента разговоры о нем просто являются спекуляцией.

Именно по этому я и говорю, что "не надо поутать". Джит-ы ближе к нормальным компиляторам по свойствам. А когда говорят "виртуальная машина" применительно к Яве и дотнету, то понимают нечто иное нежели когда говорят о виртуальной машине как неком наборе универсальных команд.

Разговоры же о стеках заложенных в виртуальных машинах вообще полнешая ерунда. Стековые языки типа MSIL используются для компактного представления кода. Они в висшей степени виртуальны так как практически никогда не выполняются на прямую. Ну, а с точки зрения функциональности нет никакой разницы как записывать код. При условии, конечно, что код был полон по Тюрингу.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Stackless Virtual Machines
От: FR  
Дата: 16.10.06 05:40
Оценка: 3 (1)
Здравствуйте, VladD2, Вы писали:

VD>Разговоры же о стеках заложенных в виртуальных машинах вообще полнешая ерунда. Стековые языки типа MSIL используются для компактного представления кода. Они в висшей степени виртуальны так как практически никогда не выполняются на прямую. Ну, а с точки зрения функциональности нет никакой разницы как записывать код. При условии, конечно, что код был полон по Тюрингу.


Если нужны полноценые (вытесняющиеся) легкие потоки то, есть разница как записывать код, и даже откомпилированный. Так как у самых распрастраненых платформ машиный стек мешает этой задаче, то состояние программы не должно зависеть от него. В общем Stackless ортогонален компилируемости и jit'ам.
Re[5]: Stackless Virtual Machines
От: EvilChild Ниоткуда  
Дата: 16.10.06 16:37
Оценка:
Здравствуйте, FR, Вы писали:

FR>Если нужны полноценые (вытесняющиеся) легкие потоки то, есть разница как записывать код, и даже откомпилированный. Так как у самых распрастраненых платформ машиный стек мешает этой задаче, то состояние программы не должно зависеть от него. В общем Stackless ортогонален компилируемости и jit'ам.


Я правильно понял, что ведуться работы по интеграции PyPy и Stackless Python?
Если так, то эти вещи и в самом деле ортогональны.
now playing: Rido — Dark Thief
Re[6]: Stackless Virtual Machines
От: FR  
Дата: 16.10.06 16:42
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Я правильно понял, что ведуться работы по интеграции PyPy и Stackless Python?


Угу.

EC>Если так, то эти вещи и в самом деле ортогональны.


Ну еще можно (если есть) использовать легкие потоки из OS (например Fibers из Win32), но для кроссплатформенных трансляторов это не выход.
Re[7]: Stackless Virtual Machines
От: EvilChild Ниоткуда  
Дата: 16.10.06 17:18
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, EvilChild, Вы писали:


EC>>Я правильно понял, что ведуться работы по интеграции PyPy и Stackless Python?


FR>Угу.


Нашёл ещё подтверждение, Parrot регистровая машине, т.е. безстековая, но тем не менее планируют JIT:

Possible future languages and projects

There is strong interest in parts of the Ruby community. The Python community is taking more of a wait-and-see attitude, due to already having Psyco, a just-in-time Python-to-machine-code compiler, Jython, a Python-to-Java-bytecode compiler, and IronPython to compile to the .NET platform, as well the in-development PyPy, a rewrite of Python in Python itself aimed to provide static code generation as well as high-level optimization.

now playing: Rido — Density
Re[4]: Stackless Virtual Machines
От: c-smile Канада http://terrainformatica.com
Дата: 16.10.06 20:50
Оценка: 3 (1)
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, c-smile, Вы писали:


CS>>JIT транслирует последовательность bytecodes в native code который (как правило) исполняется регистровой машиной (процессором).

CS>>Но JIT компиляция не изменяет стековую природу самого bytecode. Стек заложен в самой архитектуре JVM и CLR и он там есть и работает даже с JIT.

VD>После компиляции о байткоде никто уже больше не вспоминает. С этого момента разговоры о нем просто являются спекуляцией.


Узнаю Влада, главное больше стали в голосе и люди тебе поверят...

Q:When native code is ready, it can replace the bytecodes. By not targeting an interpreted scenario, have you completely ruled out that approach to execution in a CLR?

Anders Hejlsberg: No, we haven't completely ruled that out. We can still interpret. We're just not optimized for interpreting. We're not optimized for writing that highest performance interpreter that will only ever interpret....

Re[5]: Stackless Virtual Machines
От: c-smile Канада http://terrainformatica.com
Дата: 16.10.06 20:53
Оценка:
CS>

CS>Q:When native code is ready, it can replace the bytecodes. By not targeting an interpreted scenario, have you completely ruled out that approach to execution in a CLR?

CS>Anders Hejlsberg: No, we haven't completely ruled that out. We can still interpret. We're just not optimized for interpreting. We're not optimized for writing that highest performance interpreter that will only ever interpret....


Взято отсюда: http://www.artima.com/intv/choices.html
Re[5]: Stackless Virtual Machines
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.10.06 16:38
Оценка:
Здравствуйте, c-smile, Вы писали:

VD>>После компиляции о байткоде никто уже больше не вспоминает. С этого момента разговоры о нем просто являются спекуляцией.


CS>Узнаю Влада, главное больше стали в голосе и люди тебе поверят...


Узнаю c-smile-а. Главное перевести обсуждение с проблемы на оппонента, и все тебе поверят...

CS>

CS>Q:When native code is ready, it can replace the bytecodes. By not targeting an interpreted scenario, have you completely ruled out that approach to execution in a CLR?

CS>Anders Hejlsberg: No, we haven't completely ruled that out. We can still interpret. We're just not optimized for interpreting. We're not optimized for writing that highest performance interpreter that will only ever interpret....


И что из этого следует? "Они" конечно могут что-то интерпретировать, но нигде этого не делают. Интерпретатор дотнета я видел только в одном месте — в Моно. И он используется только в тех случаях когда для ОС нет полноценной реализации моно. Дотнет проектировался под компиляцию, и вести рассуждения о стековой машине в его отношении просто бред. Более того интерпретатор (если его кто-то захочет написать) вполне может преобразовывать MSIL в своей промежуточный код для повышения эффектиности. Кстати, Феникс (фрэймворк для оптимизации и компияции) использует свой IR в который умудряется конвертировать как MSIL, так и обычный машинный x86-код. Из MSIL естественно можно взять больше информации, но это из-за ниличия метаданных, а не из-за стековрой организации MSIL-а.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Stackless Virtual Machines
От: smidy СССР  
Дата: 25.10.06 15:43
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>NASA Space Recordings Of Earth — Voice Of Earth I


В космосе звук не распространяется — это то что говорит режиссер Звездных Войн залу при демонстрации новой серии.


Тихо там... однако...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
STOP Java !
STOP .NET !
STOP JIT at ALL !
Take UnRestricted !
Re[2]: Stackless Virtual Machines
От: EvilChild Ниоткуда  
Дата: 25.10.06 16:38
Оценка:
Здравствуйте, smidy, Вы писали:

EC>>NASA Space Recordings Of Earth — Voice Of Earth I


S>В космосе звук не распространяется — это то что говорит режиссер Звездных Войн залу при демонстрации новой серии.

S>

S> Тихо там... однако...


Дядьки из NASA это мнение не разделяют:

The Voice of Earth Sounds come from the interaction of the Solar Wind with the magnetosphere of Earth. You are hearing the Aura Borealis, NASA Injun I, Hawkeye, IMP1 and ISEE I Space Probes Recordings.
These space sounds of Earth were recorded by the Injun I, Hawkeye, IMP I and ISEE I space probes from Earth orbit.
Although space is a vacuum, this does not mean that there is no sound. it only means that there is no air in space to act as a medium to transmit soundwaves to your ear. The specially designed instruments on board these probes were designed to pick up and record these vibrational frequencies. This information, which was sent back to Earth and decoded, are the beautiful and intriguing sounds you hear on this recording. The sounds you hear are interactions of the solar wind with the Earth's magnetosphere, ionosphere, plasma wave phenomena and interactions between Earth's ionosphere and magnetosphere. These vibration frequencies are all exactly within the range of human hearing, 20 — 20,000 Hz. This is truly the real "Voice" of Earth.

now playing: Break — Catch Off
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.