转译器和编译器

Neo*_*Jun 5 javascript code-translation

我想知道转译器和编译器之间的关系。

例如,我有一种语言('让我们称之为 foo'),它将被转换为 javascript。

foo -----transpiled-----> javascript
Run Code Online (Sandbox Code Playgroud)

但是,javascript 下 foo 有限制吗?

如:“没有服务器端脚本的帮助,JavaScript 无法写入服务器上的文件”

foo ----x----> write to files on the server without the help of a server side script
Run Code Online (Sandbox Code Playgroud)

如果是这样,是否可以退出javascript的限制?

例如使 foo 能够写入文件本身。

foo ---------> write to files on the server
Run Code Online (Sandbox Code Playgroud)

注意:我要的是解释和原因等等,而不是代码!

再次注意:它是否可以通过其他库退出限制?

编辑:所以,如果我从另一种语言(如 python)添加另一个库,是否有助于退出限制?

chr*_*s-l 4

您无法摆脱目标语言的限制。但是,您可以创建一个兼容层来模拟缺少的功能并以某种方式提供功能。

在您的示例中,如果 foo 内部函数writefile()是写入文件的函数,您可以创建一个提供 writefile 函数的库,该函数使用 ajax 将文件存储到服务器(或 cookie 或 localstore 等)。无需更改原始 foo 脚本即可工作。

这正是编写转译器的主要部分之一:您不仅需要翻译语言,还必须模拟缺失的功能。

(您也可以选择禁用缺少的功能)

  • 感谢您:“这正是编写转译器的主要部分之一:您不仅需要翻译语言,还必须模拟缺失的功能。” (3认同)