我正在编写一个与“C”非常相似的脚本语言解释器,区别在于数值变量的数据类型较少,只有int
(表示int数据类型)和{{1 (显然是一个真实的数字......)。
解释器是一种“虚拟机”(是的,脚本语言被编译成字节码流),现在我需要面对用于脚本语言的real
数据类型的决定虚拟机中的数字数据类型。现在我打算使用C
用于int64_t
和int
用于long double
,但是如果您考虑这两个,我想听听您的意见,非常“大”会有任何性能问题,如果我需要在只有32位架构的嵌入式硬件上运行解释器,它会有问题。
答案 0 :(得分:1)
嗯,是的,当然使用非常大的类型会对您的语言的执行成本产生(巨大的)影响。
许多嵌入式平台在硬件中没有浮点算法,而那些通常只有float
,甚至不是double
的嵌入式算法。它通常与整数相同,许多平台仍然是32位。
您将不得不回退到这些功能的软件仿真,这将使执行在速度方面以及所需的代码量方面都非常昂贵。