我正在开发一个程序,该程序处理大量对象和数据。因为我可以通过对我的应用程序使用某种“API”来注入操作。由于应用程序本身管理对象等,我想知道如何实现。例如,Unity3D 和 Panda3D 引擎允许使用多种语言,例如 ECMA 或 Python 进行脚本编写。我不是在寻找要投入的“游戏”脚本语言,而是关于如何支持各种脚本语言的指针。
为了论证起见,假设我的程序有属于 Cube 类的对象。立方体具有诸如旋转、移动、变换等类方法和颜色、中心、大小等属性。现在,我想让我的用户可以使用例如 JavaScript 来操作对象。然而,我的“核心”程序是用 Ruby 编写的。
- 我是否必须编写一个完整的包来从头开始评估用户代码及其语法(如实现自己的 JavaScript 版本)?或者是否有现有的包、骨架、框架、宝石等?
- 我将如何实现安全性以仅将脚本语言提供给允许操作的类(例如,将类标记为“可操作”的属性)。
我一直想知道企业应用程序是如何做到这一点的(游戏引擎也是如此......),所以感谢您的帮助和反馈。