2010-11-08 80 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