我已經在C++中爲我創建的語言構建了一個解釋器。C++解釋器概念問題
設計中的一個主要問題是我在語言中有兩種不同的類型:數字和字符串。所以,我必須繞過像一個結構:
class myInterpreterValue
{
myInterpreterType type;
int intValue;
string strValue;
}
此類的對象是在例如爲:在我的語言倒計時循環大約爲300萬次,第二次通過。
性能分析指出:85%的性能被字符串模板的分配函數所佔用。
這對我來說很清楚:我的解釋器設計不好,不足以使用指針。然而,我沒有選擇:在大多數情況下我不能使用指針,因爲我只需要複製。
如何做到這一點?像這樣的課是一個更好的主意嗎?
vector<string> strTable;
vector<int> intTable;
class myInterpreterValue
{
myInterpreterType type;
int locationInTable;
}
所以類只知道什麼類型它代表,並在表
然而,這一次有缺點的位置: 我不得不臨時值添加到字符串/ INT矢量表,然後再次移除它們,這將再次吃掉很多表演。
- 幫助,Python或Ruby等語言的解釋器如何做到這一點?它們以某種方式需要一個表示語言中的值的結構,如可以是int或string的某個值。
你的字符串是否可變? – 2010-04-18 00:07:21
他們和這個類一般用於一切:標識符,值等。所以是的。 – 2010-04-18 00:14:10