2010-11-08 81 views
2

我需要一种脚本语言来描述非常复杂的工作流程。沙盒和无堆栈python?

  • 这些工作流程需要每当需要用户输入,并且 恢复它发出后(可能是后来 个月)被暂停 。看起来像Stackless的可序列化延续将是一个不错的选择。

  • 用户还需要能够自己编辑 工作流程。我不确定序列化继续如何处理底层代码更改。我认为我可能需要保存Git版本散列以及延续,并且仅在没有需要状态的检查点处“升级”延续。

  • 我更喜欢Python语法,因为 可读性是非常高的优先级, 和动态特性是关键。不过,我愿意接受建议。

  • 最终,我可能会编写一个可视化流程图编辑器来处理底层代码。

我已经深入了解了Stackless和PyPy。 Stackless似乎没有提供任何沙盒承诺,而PyPy似乎同时提供无堆栈和沙盒,但我无法同时找到任何提及的

任何解决方案?如果有一位专家能帮助我解决问题,那么我有一个paypal帐户,我愿意使用它。

回答

2

对于本机协同例程库,在大多数语言中,您的序列化要求将会很困难。您可能需要以另一种方式实现协同例程以允许对象图序列化。

lua有冥王星库,它可以坚持线程(协程):http://lua-users.org/wiki/PlutoLibrary

至于在沙箱“安全”的执行,Lua是首选。您可以在一个应用程序中拥有多个lua状态,而且它不存在任何问题,并且支持该语言中的协同例程。它还具有VM形式相当快的优点,并且在很多情况下luajitcompetitive with Java JIT

+0

序列化是我正在寻找的关键功能。它被很多语言吹捧。例如,Java有JavaFlow。 但我发现广告的功能和实用功能可能会有很大的不同。我希望有人有使用上述功能的经验。 – 2010-11-11 15:56:10

+0

@计算机:尝试冥王星的Lua - 它声称能够序列化lua_states。 http://lua-users.org/wiki/PlutoLibrary – 2010-11-12 06:27:18

+0

谢谢,我来看看。了解任何使用情况? – 2011-03-08 15:30:33