“ eval”的概念叫什么名字?

时间:2018-12-27 07:28:28

标签: eval metaprogramming language-concepts

我正在寻找编程概念的名称,即 getOwners(): Observable<Owner[]> { const httpOptions = { headers: new HttpHeaders({ 'Header Key': 'Header Value', }) }; return this.http.get<Owner[]>(this.ownersUrl) .pipe( catchError(this.handleError('getOwners', [])) ); } 是--- eval是执行字符串作为表达式的函数。

我对在代码eval中执行原始字符串以及从文件中执行原始字符串(例如执行任何eval('print("hello")')扩展名)感兴趣。我认为合适的术语是“ 运行时元编程”,但我想知道这是否正确以及.php函数是否提供其他概念。

1 个答案:

答案 0 :(得分:1)

“解释器”是一个术语,用于处理代表某种程序的字符串(直接或在文件中提供)并返回答案的函数。

通常,解释器在获取答案的过程中不会“编译”字符串。如果您知道会编译字符串,则解释器并不是真正正确的单词,您可能只需要将其称为“ eval(uator)”即可。 (当然,由于您的示例是一个黑匣子,因此您实际上并不知道它在内部做什么,并且构建此类工具的人们希望它们能够快速运行)。

[元编程是关于操纵其他程序的程序,有时仅限于“检查”其他程序。您可能会争辩说,要计算其答案,您的函数正在执行(元编程)“检查”。如果这样做的话,最终将经典编译混入元编程中,这不是元编程的典型视图。通常,元编程是关于非编译/解释活动的。]