2009-12-21 6 views
9

Кто-нибудь знает о внедрении интерпретатора языка сценариев (что-то подходящего для игры) в Erlang? Что-то вроде Javascript или Lua было бы здорово.Erlang Scripting Language Interpreter

+1

Зачем вам нужен переводчик Javascript или Lua, написанный в Erlang? Какую пользу вы, по вашему мнению, получите от чего-то подобного? –

+1

Я пишу игровой сервер в Эрланге, и я бы хотел, чтобы игроки могли писать сценарии для игры, которая запускается на сервере. – Paul

+0

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

ответ

5

Вы можете попробовать C/C++ port driver для использования переводчика lua (или другого), erlua, более вероятно, что вам нужно (он работает через драйвер порта, я думаю).

3

Erlang сам по себе может использоваться как язык сценариев. См. escript в документах Erlang.

+1

Это классно, но я ищу язык, похожий на два, упомянутых мной. У меня такое чувство, что сам Эрланг не мог бы сделать такой отличный скриптовый язык. =/ – Paul

3

I второе предложение Виджей использовать Эрланг. Тем не менее, я также укажу на существование Reia, который, кажется, именно то, о чем вы просите.

EDIT: Правильно, поэтому есть erlyjs, компилятор JavaScript, предназначенный для виртуальной машины Erlang. Я вообще не знаю, на какой стадии развития находится этот проект, насколько он прогрессирует и т. Д., Но вы можете это проверить. Не уверен, требует ли он компиляции JS-кода в будущем, вам нужно будет убедиться в этом ...

Here вы найдете одну из нескольких вилок github базы кода. Насколько я вижу, все в Эрланге.

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

+0

Возможно, я недостаточно четко прохожу, но я не хочу писать программы Erlang (как, впрочем, программы, которые будут компилироваться на байт-код Erlang) на другом языке. То, что я ищу, - это переводчик, написанный * в * Эрланге. – Paul

+0

Ну, с домашней страницы Reia: «Рейя (произносится RAY-uh) - это язык сценариев на языке Ruby/Python». Он компилирует вашу программу в байтовый код, но так же Python - в обоих случаях это происходит «на лету», когда это необходимо. Синтаксис не похож на Erlang IMO. Я думаю, это не совсем похоже на JS/Lua, но, по крайней мере, стоит посмотреть. Во всяком случае, я не уверен, что невозможно запустить JavaScript на компьютере, основанном на Erlang; будет выглядеть вокруг и обновляться, если я что-то найду. –

+0

Да, erlyjs выглядит как потрясающий проект, к сожалению версия github выглядит довольно незрелой, и все это доступно. Исходный код repo google загадочно исчез: http://code.google.com/p/erlyjs/ Я также рассмотрел, как CouchDB обрабатывает javascript, и я вижу, что он порождает процессы SpiderMonkey.Возможно, я мог бы найти способ вставить V8 в Erlang Cnode ... Bummer. Спасибо за вашу помощь! – Paul

0

Этот вопрос возникает в поиске Google, но комментарии не отвечают на исходный запрос. Ответ, который искал оригинальный плакат, - luerl on github - https://github.com/rvirding/luerl

Luerl is lua 5.3 vm, выполненный в Эрланге и разработанный Робертом Вирджином - одним из оригинальных разработчиков Erlang.