2
A
回答
1
嘗試單(http://www.monoproject.org)。它支持包括JavaScript在內的許多腳本語言。
0
通常,本程序對可編寫腳本的部分使用腳本語言,即Lua或Javascript。
3
在.Net中,您可以使用反射和CodeDOM即時編譯代碼。但這兩種方法都不是非常簡單或實用。單聲道有一些動態解釋C#的能力,但我還沒有仔細觀察它。
另一種選擇是使用像Boo或IronPython這樣的解釋.Net語言作爲數據庫代碼的語言。
無論哪種方式,請確保您認真考慮平臺的安全性。允許用戶執行任意代碼始終是一個充滿危險的練習。尋找簡單的eval()
方法往往太誘人了,即使存在這種方法,也就是而不是,這對於這種情況來說足夠好。
0
要回答您的技術問題:您不想編寫自己的語言和解釋器。這對你來說太麻煩了。所以選擇一些其他語言,比如說Python或者Lua,然後尋找可以讓你的C程序交給代碼執行的文檔。當然,腳本需要能夠執行某些操作,因此您需要找到如何將程序對象展示給腳本。另外,如果客戶端在更新數據庫中的源代碼時正在運行該程序,會發生什麼情況?客戶端是否應該重啓?您是要將整個程序作爲單行存儲在此數據庫中,還是要存儲單個函數?這會影響您構建更新的方式。
要解決您的問題的其他問題:爲什麼你想這樣做?將「解釋型語言」作爲系統設計規範的一部分通常不是一個好兆頭。真正的需求是這樣的:「我經常更新程序,我希望用戶始終擁有最新的副本?」如果是這樣,還有其他更好的方法可以解決這個問題(只需給我們實際場景和要求)。
1
如果您不想使用任何腳本,可以使用CodeDOM或Reflection(請參閱Reflection.Emit)。
下面是關於該主題真正有用的鏈接:
相關問題
- 1. Android NDK:編譯HDF5庫,源代碼
- 2. 編譯C源代碼時出錯
- 3. Haxe編譯爲C++和JS源代碼
- 4. MagickNet C++源代碼編譯失敗
- 5. 編譯器獨立C++代碼資源
- 6. 爲Android編譯C++ 11源代碼NDK
- 7. C++代碼使用.cpp源代碼編譯,但不包含.c
- 8. 反編譯預編譯源代碼ASP.NET
- 9. 在ubuntu中編譯/編譯源代碼
- 10. 用C++編譯器編譯c代碼
- 11. C代碼編譯
- 12. 編譯C代碼
- 13. 編譯renderscript源代碼
- 14. 編譯android源代碼
- 15. SML編譯器源代碼?
- 16. Android源代碼編譯
- 17. 編譯TypeScript源代碼
- 18. 麻煩編譯源代碼
- 19. nginx從源代碼編譯
- 20. 編譯java源代碼?
- 21. 如何Python的(C)的源代碼編譯成共享庫
- 22. 庫用於解析/修改C#源代碼(和之後編譯)
- 23. 從代碼內編譯QT源代碼
- 24. C庫源代碼
- 25. xcode不編譯c源碼
- 26. 如何編譯包含C源文件的C++源代碼?
- 27. 編譯C代碼爲C#
- 28. 我可以使用C++編譯器來編譯c源代碼嗎?
- 29. 將OpenMP代碼編譯爲C代碼
- 30. 將源代碼管理用於其資源的C++編譯器
+1提安全方面。 – 2010-07-19 01:38:48