是否可以将 Ruby 嵌入到 Erlang 中?Yecc 会是正确的工具吗?如果可能的话,大概需要多少工时?
5 回答
Erlectricity 将 Ruby 暴露给 Erlang,反之亦然:
Jose Valim 网址http://elixir-lang.org/有一个名为 Elixir 的东西,它可以让您编写类似于 ruby 的代码并在 erlang VM 上运行它。
所以代码在很多地方看起来都很相似,比如:
iex> name = "world"
iex> "hello #{name}"
"hello world"
在许多情况下,更多的是 Erlang'y:
# function
iex> x = fn(a, b) -> a + b end
#Fun<erl_eval.12.111823515>
iex> x.(1, 2)
3
和模块=):
iex> defmodule Math do
...> def sum(a, b) do
...> a + b
...> end
...> end
iex> Math.sum(1, 2)
3
它以任何方式帮助您。我知道 Jose 在停止专注于 Rails 之后,最近又开始了大规模的工作。可能他会得到 Riak 集成和某种 Web 框架。那可能很有趣!
你需要更详细地解释你想要做什么。在这种情况下,“嵌入”是一个相当模糊的词。
如果您打算在 Erlang 中实现 Ruby 解析器/解释器,那么 Yecc 将是合适的,但我猜这不是您想要做的。
如果你想从 Erlang 调用 Ruby 代码,这可以通过类似于 Erlang 的jinterface应用程序用于与 Java 对话的方式来完成。(你也可以在这个主题上谷歌。)
如果不花一两个星期的工作,弄清楚应该做什么以及如何做,你就不能期望得到任何现实的估计。否则,您最终会得到“从 2 个月到两年的任何时间”,这可能不是很有帮助。
根据您的任务是什么,您可以做一些简单的事情,例如生成一个 ruby 进程以通过 STDIN/OUT 与之对话。
如果你想在 Erlang 中评估一些 ruby 代码,你应该准备花大约一年的时间来发布简单的代码。
Ruby 语法非常复杂,而 erlang 有一个非常不同的虚拟机。