[ANN] Erjang — Erlang VM поверх Java VM
От: Mamut Швеция http://dmitriid.com
Дата: 05.12.09 07:45
Оценка: 29 (4)
Колебался, куда закинуть, сюда, потому что Эрланг, или в Философию, потому что потенциальный флейм

Erjang

Erjang — это виртуальная машина для Эрланга, которая работает на Java.

Как это работает?

Виртуальная машина загружает .beam-файлы, транслирует их в .class-файлы и передает в Java VM.

В будущем планируется сделать Erjang самодостаточной виртуальной машиной для Эрланга (планаруется реализация всех BIF'ов в Java, избавление от внешних рланговских процессов и необходимости использовать jinterface для некоторых участков кода)

Работает ли оно?

Примерно 3/4 из .beam-файлов в стандартной поставке Erlang/OTP успешно конвертируются в .class-файлы. Это конечно не означает, что все из них транслируется корректно, время покажет.

На анный момент запускаются простые примеры из src/main/erl, такие как ring, fib и другие. Это значит, что ключевые моменты (процессы, сообщения, динамическая подгрузка, исключения, трассировка, exit-сигналы, spawn, spawn_link) работают.

Для больших чисел fib в Erjang'е работает в полтора раза быстрее, чем в родной VM (в частности, из-за более эффективной реализации bignum в Java).

проект на GitHub'е

Так же в вики есть дополнительная информация о том, как реализуются различные тонкости Эрланга (хвостовая рекурсия, паттерн матчинг и т.п.)

— Паттерн матчинг: http://wiki.github.com/krestenkrab/erjang/how-erjang-compiles-pattern-matching
— Хвостовая рекурсия: http://wiki.github.com/krestenkrab/erjang/how-erjang-compiles-tail-recursion
— Процессы: http://wiki.github.com/krestenkrab/erjang/how-erjang-handles-processes


В комментариях к новости было сказано прекрасное: "по такому случаю предлагаю переименовать jpython в pyjon"


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.