gpt4 book ai didi

python - 多平台代码生成

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:40 25 4
gpt4 key购买 nike

我正在设计一个编排引擎,它可以在多个环境中自动执行任务:JavaScript Web UI、Python Web 服务器和 C 运行时。一种可能的方法是用每种语言编写编排核心。这似乎很脆弱,因为每个新的引擎功能都需要添加到每种受支持的语言中(并且必须多次解决错误,同时处理每种语言中的不同习惯用法)。另一种方法是用最低公分母语言(可能是 c)编写一次核心,然后用其他语言包装它。但是,我认为将编译后的库部署到浏览器即使不是不可能,也将是一场噩梦。因此,我正在考虑的另一个选择是模板和代码生成。然后可以编写一次引擎(可能用 Python),并使用 jinja 模板将工作流程编译到每个目标。

最后一种方法听起来可行吗?如果我走这条路,我应该注意哪些陷阱?我应该忍气吞声,把引擎写三遍吗?

最佳答案

无论您使用哪种技术,您都将面临三个潜在问题:

  1. 在所有 N 个目标中使用“相同(编排驱动程序)数据”。每个目标都有一种首选方式来表示该数据。您可以选择一个最低公分母(例如,文本或 XML),但代价是使目标引擎编写起来更加笨拙
  2. 在 N 个目标中的每个目标中找到等效效果。想象一下您在每个目标中都需要“eval”(我希望不需要);即使它们看起来有相似的实现,一些细节也会出错,你必须解决这个问题
  3. 一个或多个目标的性能较差。

如果您编写自己的实现代码,则可以更轻松地克服 2) 和 3)。

如果您生成代码,您可以更灵活地更改特定目标的运行方式。如果您使用简单的基于文本的"template"来生成目标语言代码,您将无法生成非常高效的代码;你无法优化你生成的内容。如果您使用更复杂的代码生成器,您也许能够生成/优化结果。

很难说你会遇到多少麻烦,部分原因是你没有告诉我们这个引擎会做什么或目标语言是什么。即使有这些数据,也很难判断;在您拥有一个正在运行的系统之前,您无法确定不会出现意外情况。

人们在面对未知事物时会使用复杂的代码生成技术,因为这可以最大限度地提高灵 active ,从而更容易克服复杂性。

当人们没有精力学习如何使用复杂的生成器时,他们会使用更简单的代码生成。如果他们幸运的话,不会出现任何问题,他们就会获胜。如果这个实验不需要做很多工作,那么您应该尝试一下并期待最好的结果。

关于python - 多平台代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36818862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com