有没有办法将代码从一种高级表示转换为另一种?例如,在 Javascript 中,一种流行的维护状态的方法是使用名为 Redux 的第三方库。另一方面,VueJS 有自己的 Redux 版本,有点相似但又有所不同。有没有办法在两种表示之间自动转换?
我怀疑可能有一种使用 AST 的方法;然而,至少在 JS 中,AST 似乎擅长低级转换,例如:const x = 2*4
到const x = 8
. 然而(同样,至少对于 JS 而言),像我上面描述的那样进行更高级别的转换似乎很痛苦。
如果没有现成的解决方案,最先进的技术是什么(即当前的研究论文等)?