数据类型的表示是不是应该由其语言规范严格指定? [关闭]
Posted
技术标签:
【中文标题】数据类型的表示是不是应该由其语言规范严格指定? [关闭]【英文标题】:Should Data Types' representations be strictly specified by their language's specification? [closed]数据类型的表示是否应该由其语言规范严格指定? [关闭] 【发布时间】:2013-10-29 04:37:56 【问题描述】:我在阅读我的“编程语言”课程时遇到了这个问题,发现它很有趣。我想听听其他人的意见:
某些语言定义指定了数据的特定表示 类型在内存中,而其他仅指定的语义行为 那些类型。
对于后一类的语言,一些实现保证 特定的代表,而其他人保留选择的权利 不同情况下的不同表现形式。采用哪种方法 你认为更好吗?为什么?
我的意见是,后一种方法更好,因为我们可以定义自己的自定义数据类型,并在不同的地方和情况下以不同的方式使用它们。你怎么看?
【问题讨论】:
这与自定义数据类型无关;这是关于规范的松散程度。 【参考方案1】:从你回答的解释部分来看,你似乎完全误解了这个问题。
编程语言标准要求语言实现(即语言编译器、解释器或虚拟机)中数据类型的特定表示。可以选择这些编译器、解释器和虚拟机的设计者来决定表示,而不是相应语言的程序员。
“您认为哪种方法更好,为什么?”问题的一部分要求您从两个不同的角度分析设计语言的过程 - 构建语言的程序员和使用该语言编写程序的程序员。对一组程序员可能有益的事情可能对另一组程序员不利。此外,一个小组可能认为好的东西实际上可能会造成持续的维护问题。
例如,如果规范规定整数必须表示为 32 位,并使用二进制补码表示负数,那么将语言移植到具有符号+值表示的硬件的编程语言设计人员可能还有很多工作要做。另一方面,如果程序员使用一种未指定表示的语言编写并假设表示在所有平台上都是相同的,则可能会创建完全不可移植的程序。
【讨论】:
【参考方案2】:我取决于你要实现什么。
C 等一些语言直接将数据表示到内存,而 Java 将数据表示到 Java 虚拟机。
如果您询问要在多接近真实机器的情况下操作数据,这个问题可能会更准确。
【讨论】:
以上是关于数据类型的表示是不是应该由其语言规范严格指定? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章