首页> 外文学位 >A rigorous framework for fully supporting the IEEE standard for floating-point arithmetic in high-level programming languages.
【24h】

A rigorous framework for fully supporting the IEEE standard for floating-point arithmetic in high-level programming languages.

机译:严格支持高级编程语言中浮点运算的IEEE标准的严格框架。

获取原文
获取原文并翻译 | 示例

摘要

Processors conforming to the IEEE Standard for Floating-Point Arithmetic have been commonplace for some years, and now several programming languages seem to support or conform to this standard, from hereon referred to as “the IEEE Standard.” For example, The Java Language Specification by Gosling, Joy, and Steele, which defines the Java language, frequently mentions the IEEE Standard. Indeed, Java, as do other languages, supports some of the features of the IEEE Standard, including a couple floating-point data formats, and even requires (in section 4.2.4 “Floating-Point Operations” of the aforementioned book) that “operators on floating-point numbers behave exactly as specified by IEEE 754.”; Arguing that the support current languages offer is not enough, this thesis establishes clear criteria for what it means to fully support the IEEE Standard in a programming language. Each aspect of the IEEE Standard is examined in detail from the point of view of how various arithmetic engines implement that aspect of the IEEE Standard, how different languages (and implementations thereof) support it, and what the range of options are in supporting that aspect. Practical recommendations are then offered (particularly, but not exclusively, for Ada and Java), taking, for example, programmer convenience and impact on performance into consideration. A detailed model specification following these recommendations is provided for the Ada language.; In addition, a variety of issues related to the floating-point aspects of programming languages are discussed, so as to serve as a more complete guide to language designers. One such issue is floating-point expression evaluation schemes, and, more specifically, whether bit-for-bit identical results are actually achievable on a variety of platforms that conform to the IEEE Standard, as the Java language promises. Closely tied to this issue is that of double rounding, which occurs when a (possibly intermediate) result is rounded more than once before subsequent use or before being delivered to its final destination. So this thesis discusses when double rounding makes a difference, how it can be avoided, and what the performance impact is in avoiding it.
机译:符合IEEE浮点算术标准的处理器已经有几年了,现在,几种编程语言似乎支持或符合该标准,从此被称为“ IEEE标准”。例如,Gosling,Joy和Steele制定的Java语言规范(定义Java语言)经常提到IEEE标准。实际上,Java和其他语言一样,支持IEEE标准的某些功能,包括几种浮点数据格式,甚至要求(在上述书籍的第4.2.4节“浮点运算”中)“浮点数运算符的行为完全符合IEEE 754的规定。”;争论当前语言提供的支持还不够,因此,本文为以编程语言完全支持IEEE标准建立了明确的标准。从各种算术引擎如何实现IEEE标准的该方面,不同语言(及其实现)如何支持该标准以及在支持该方面的选项范围的角度出发,详细研究了IEEE标准的每个方面。 。然后提供实用的建议(特别但并非唯一地针对Ada和Java),例如考虑程序员的便利性和对性能的影响。遵循这些建议的详细模型规范针对Ada语言提供。此外,还讨论了与编程语言浮点方面有关的各种问题,以便为语言设计者提供更完整的指南。这样的问题之一就是浮点表达式评估方案,更具体地说,正如Java语言所承诺的那样,在符合IEEE标准的各种平台上实际上是否可以获得逐位相同的结果。与这个问题紧密相关的是双舍入,这是在(可能是中间的)结果在后续使用之前或交付给最终目的地之前被舍入超过一次时发生的。因此,本文讨论了双舍入何时会有所作为,如何避免这种情况以及避免这种情况会对性能产生什么影响。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号