我在這裏討論C和/或C++,因爲這是我認識的用於解釋器的唯一語言,其中以下可能是一個問題:如何用C和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++編寫的實驗玩具解釋器?
你問什麼樣的戰略口譯一般使用?特別是C/C++的解釋器如何做到這一點?或者C/C++在編譯時如何執行此操作? – MtnViewMark 2010-03-30 18:56:38
*口譯員如何解決這個問題? *我怎樣才能解決這個我自己的實驗玩具翻譯? – sub 2010-03-30 18:58:22