2013-02-18 107 views
0

我正在寫一個腳本語言解釋器,它非常類似於「C」,區別在於數字變量的數據類型較少,只有int(表示int數據類型)和real (顯然是一個實數...)。爲腳本語言選擇正確的數據類型

解釋器是一種「虛擬機」(是的,腳本語言被編譯成字節碼流),現在我需要面對決定什麼樣的C數據類型用於腳本語言數字數據類型在虛擬機中。現在我打算使用int64_t作爲int s和long double作爲real s,但是我想聽聽你的意見,如果你考慮這兩個,相當「大」會有任何性能問題,並且如果它有問題的話如果我需要在只有32位體系結構的嵌入式硬件上運行解釋器。

回答

1

嗯,是的,當然使用非常大的類型會對您的語言的執行成本產生(巨大的)影響。

許多嵌入式平臺在硬件中沒有浮點運算,而那些經常只有float,甚至不是double。它也常常與整數相同,許多平臺仍然只有32位。

您將不得不回退到這些功能的軟件仿真,這會在速度方面造成相當高的成本,而且會導致所需的代碼量。

+0

好的......在這種情況下,我想我會在字節碼流中指定「立即」值的類型(取決於它的值......會增加字節碼生成/解釋的額外複雜度)以及「虛擬機「將此考慮在內並與相應的類型一起工作。謝謝。 – fritzone 2013-02-18 09:07:47