ВМ для Схемы с поддержкой распараллеливания - PullRequest
1 голос
/ 08 декабря 2010

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 08 декабря 2010

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

2 голосов
/ 08 декабря 2010

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

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

1 голос
/ 08 декабря 2010

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

0 голосов
/ 08 декабря 2010

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

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

...