您如何称呼可以执行自己的代码(作为字符串文字传递)的编程语言?我脑海中的设置与此类似(暂时忘记输入代码、结果等):

string eight = "5+3"
int result = run(eight)

在哪里 run 是关键字。这是一种反射式编程语言吗?

有帮助吗?

解决方案

我想你正在谈论 元循环评估器. 。你的 run 命令是 评估 在里面 评估-应用循环, ,在计算机程序的结构和实现中描述。

其他提示

最好你可以跟这正是你问什么是"有一个eval功能"(正如哈维尔*在他的评论你的问题)。

自主持是不必要也不一定做你想要什么。两个例子是:C是一个自主办的语言,无法执行其自身的代码在一串但Tcl不是一个自主办的语言,能够执行其自身的代码给出一串。

  • 作为一个侧面说明,有一半的时间C运行环境中,没有API执行的外部进程。因此,虽然在某些环境中,你可以配置系统使C够执行其自己的编译器,然后执行它自己的代码一般是不是真正的你是什么要求。

  • 侧面侧面的注意。如果我们可以欺骗和使用"执行外部编译器"路线做到这一点,然后一个语言不需要自托管做什么你想要的。它只是需要一个可执行的功能叫它自己编译器(这往往是写在C)。

同样反映/反省,有能力做到的反省自己并不意味着你可以执行的代码。两个例子的语言已经反射但没有一个内置的eval C#和Java。

  • 作为一个侧面说明,一旦你有一个eval功能通常可以做反射/反思的尽管是在一个笨拙的办法。

自解释性具有相同的问题与其定义为自主持。Tcl是一种语言在其eval功能不是写在本身--它只是暴露了Tcl code评估程序实现的。

乍一看,元圆评估程序看起来像你想要什么。它被定义为自我解释其eval功能是建立在,而不是实现在该语言本身。但是看着你会进一步注意到,它的定义是通过该机制用于实现特征,而不是要素本身。Tcl又是一个例外,它不能满足所有的定义是什么元圆评估人员,但有一个eval功能尽管如此(不适用,没有必要)。因此它看起来对我像一个元圆评估程序是一个具体实施的"有一个eval"功能特征。

因此,我只想说,任何的语言,"有一个eval功能",可以做什么你都要求。

你问的类的语言等同于“自托管”语言。一种自主导语言是一个,存在用于其编译器或解释的相同的语言的实现。

这里的一个证明。

每个自托管的语言能够运行自己的程序。如果你通过了,例如,C代码到一个C程序,该程序可以包括编译器(用C编写的),编译和运行代码。这样一个C程序执行任意的C代码。

现在假设有这样的特性的语言X其能够运行在该语言的任意代码,所述代码被作为字符串传递。然后,你可以创建一个程序,只需要一个字符串作为输入,并在其中执行代码。这将是在X.实现X语言的解释而这是一种自主导语言的定义中。

下面是这个解释看起来是这样的:

execute ARGV[0]

所以,我们已经证明,与所需的属性每种语言是自托管,每个自托管语言具有这种性质。这意味着,您所请求的类等于类自托管的语言。

自托管可能。我知道Lisp是这样的语言和Wikipedia提到了它作为一个自托管编译器。

同像性是一个相关的概念,但我不认为这是什么你”重新找任一

  

在计算机编程,的同像性是一些编程语言的特性,在该方案的主要表示也是在一个基本类型语言本身的数据结构,从均聚的意思相同图标的意思表示。这使得没有这个属性元编程比在语言更容易。

是的,我一直认为这是由思考涵盖。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top