为了账号安全,请及时绑定邮箱和手机立即绑定

标准委员会关心的异国情调架构

标准委员会关心的异国情调架构

C++ C
慕虎7371278 2019-06-18 11:14:24
标准委员会关心的异国情调架构我知道C和C+标准保留了语言实现的许多方面-定义仅仅是因为如果有一个具有其他特性的体系结构,那么为它编写一个符合标准的编译器是非常困难或不可能的。我知道40年前任何一台电脑都有自己独特的规格。但是,我不知道今天使用的任何体系结构:CHAR_BIT != 8signed不是二的补充(我听说Java有这个问题)。浮点不是IEEE 754兼容的(编辑:我的意思是“不在IEEE 754二进制编码中”)。我问这个问题的原因是,我经常向人们解释,C+不要求任何其他低级别的方面,比如固定大小的类型,这是很好的†..这很好,因为与“其他语言”不同,它使代码在正确使用时可以移植(Edit:因为它可以移植到更多的体系结构中,而不需要模拟机器的低级方面,例如符号+大小结构上的两种补码算法)。但我感到很遗憾,我自己无法指出任何具体的架构。因此,问题是:哪些体系结构显示了上述属性?† uint*_tS是可选的。
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

看看这个

Unisys ClearPath Dorado服务器

为尚未迁移所有Univac软件的人提供向后兼容性。

要点:

  • 36位字
  • CHAR_BIT == 9

  • 补足
  • 72位非ieee浮点
  • 代码和数据的单独地址空间
  • 用词
  • 没有专用堆栈指针

不知道他们是否提供了C+编译器,但他们.


现在,他们的C手册的最新版本的链接已经浮出水面:

Unisys C编译器编程参考手册

第4.5节有一个9、18、36和72位的数据类型表。


查看完整回答
反对 回复 2019-06-18
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

在浮点实现中,完全遵从ieee 754是很少见的.在这方面削弱规范允许进行大量优化。

例如,子范数支持X87和SSE之间的差异。

像合并乘法和加法这样的优化(在源代码中是分开的)也稍微改变了结果,但是在某些体系结构上是很好的优化。

或者在x86上,严格的IEEE遵从可能需要设置某些标志,或者需要在浮点寄存器和普通内存之间进行额外的传输,以迫使它使用指定的浮点类型而不是其内部80位浮点数。

有些平台根本没有硬件浮点数,因此需要在软件中进行仿真。而IEEE 754的一些需求在软件中的实现可能是昂贵的。特别是,舍入规则可能是一个问题。

我的结论是,如果您不总是希望保证严格的IEEE遵从性,那么您不需要异国情调的体系结构来进入这种情况。由于这个原因,很少有编程语言保证严格遵循IEEE标准。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 364 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信