可以执行自己的代码(作为字符串文字传递)的编程语言叫什么?我脑海中的设置与此类似(暂时忘记输入代码、结果等):
string eight = "5+3"
int result = run(eight)
在哪里
run
是关键字。那是一种反射式编程语言吗?
最佳答案
你能想到的最好的就是你所要求的就是“有一个评估功能”(正如哈维尔在他对你的问题的评论中提到的那样)。
自托管不是必需的,也不一定能满足您的需求。两个例子是:C 是一种自托管语言,它不能在字符串中执行它自己的代码,但 Tcl 不是一种自托管语言,它可以执行它自己在字符串中给出的代码。
与反射/自省(introspection)相同,能够自己进行自省(introspection)并不意味着您可以在字符串中执行代码。具有反射但没有内置 eval 的语言的两个示例是 C# 和 Java。
自我解释与自我托管的定义相同。 Tcl 是一种语言,它的 eval 函数不是自己编写的——它只是公开了用 C 实现的 Tcl 代码评估器。
乍一看,元循环评估器看起来像你想要的。它被定义为自我解释,其中 eval 函数是内置的,而不是在语言本身中实现的。但进一步看,您会注意到它是由用于实现该功能的机制定义的,而不是由功能本身定义的。 Tcl 又是一个异常(exception),它不满足元循环评估器的所有定义,但仍然具有 eval 函数(不适用,没有必要)。因此,在我看来,元循环评估器是“具有评估功能”功能的特定实现。
因此,我只想说任何“具有 eval 功能”的语言都可以满足您的要求。
关于programming-languages - 执行自己的代码的编程语言类的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2390667/