ВМ для схемы с поддержкой распараллеливания

Я написал оценщик схемы на Java, который выполняет некоторые приемы параллелизации. На данный момент это не может использоваться никем, кроме меня, но я получаю некоторые результаты.

Фронтенд и мидл-энд подходят для моих целей, и это те части, на которых я хочу сосредоточиться, но мой бэкэнд отстой. Он неоптимизирован, работает медленно или не имеет надлежащей оптимизации хвостового вызова.

Поэтому вместо этого я хочу настроить таргетинг на существующую виртуальную машину. Кто-нибудь знает кандидата на это? Это не обязательно должна быть виртуальная машина корпоративного класса, но, по крайней мере, она должна

  • быть (относительно) легким для таргетинга из Схемы
  • быть (достаточно) портативным
  • поддержка параллельных конструкций из коробки



Ответы (4)


Если бы вы могли компилировать свою схему и запускать ее на виртуальной машине Erlang, это было бы здорово. Люди уже серьезно думают об этом и это проект, который делает обратное.

person Vijay Mathew    schedule 08.12.2010

Виртуальная машина Microsoft CLR/.NET поддерживает параллелизм и имеет инструкцию хвостового вызова. Реализация Mono является бесплатным программным обеспечением и вполне переносима.

В качестве альтернативы вы можете настроить таргетинг на Racket, который поддерживает параллельные конструкции и упростит таргетинг из вашей системы Scheme.

person Sam Tobin-Hochstadt    schedule 08.12.2010

Три модели реализации для схемы от Dybvig предоставляет очень простую модель на основе кучи. реализация компилятора/VM с надлежащей поддержкой продолжения и оптимизации хвостового вызова. Код находится на схеме, но его легко перевести. Я использовал его для реализации Scheme в Javascript.

person z5h    schedule 08.12.2010

Другая очевидная виртуальная машина, на которую стоит ориентироваться, — это виртуальная машина Java, которая дает вам дополнительные преимущества Hotspot JITter и совместимость с другими программами Java.

Bigloo компилирует Scheme в байт-код Java VM или через .NET cil.

person erjiang    schedule 08.12.2010