我在这里谈论的是C和/或C++,因为这些是我所知道的仅用于解释器的语言,其中以下可能会成为问题:
如果我们有一个解释性语言X,那么一个为它编写的库如何添加函数到该语言中,以便可以从使用该语言编写的程序中调用?
PHP示例:
substr( $str, 5, 10 );
- 如何将substr函数添加到PHP的“函数池”中,以便可以在脚本内调用?
对于PHP来说,将所有已注册的函数名称存储在数组中,并在脚本中调用函数时搜索该数组非常容易。但是,由于C(++)中显然没有eval,那么该函数如何被调用呢?我假设PHP没有100MB的代码,例如:
if( identifier == "substr" )
{
return PHP_SUBSTR(...);
} else if( ... ) {
...
}
哈哈,那会很有趣。我希望你到目前为止已经理解了我的问题。
- C/C++编写的解释器是如何解决这个问题的?
- 我如何解决我自己用C++编写的实验性玩具解释器的这个问题?