为32位运行时库添加64位指针支持

D. A. Smith
{"title":"为32位运行时库添加64位指针支持","authors":"D. A. Smith","doi":"10.5555/240920.240933","DOIUrl":null,"url":null,"abstract":"has extended the address space accessible to applications beyond the traditional 32-bit address space. This new address space is referred to as 64-bit virtual memory and requires a 64-bit pointer for memory access. The operating system has an additional set of new memory allocation routines that allows programs to allocate and release 64-bit memory. In OpenVMS Alpha version 7.0, this set of routines is the only mechanism available to acquire 64-bit memory. For application programs to take advantage of these new OpenVMS programming interfaces, high-level programming languages such as C had to support 64-bit pointers. Both the C compiler and the C runtime library required changes to provide this support. The compiler needed to understand both 32-bit and 64-bit pointers, and the run-time library needed to accept and return such pointers. The compiler has a new qualifier called /pointer_size, which sets the default pointer size for the compilation to either 32 bits or 64 bits. Also added to the compiler are pragmas (directives) that can be used within the source code to change the active pointer size. An application program is not required to compile each module using the same /pointer_size qualifier; some modules may use 32-bit pointers while others use 64-bit pointers. Benson, Noel, and Peterson describe these compiler enhancements. The DEC C User’s Guide for OpenVMS Systems documents the qualifier and the pragmas. The C run-time library added 64-bit pointer support either by modifying the existing interface to a function or by adding a second interface to the same function. Public header files define the C run-time library interfaces. These header files contain the publicly accessible function prototypes and structure definitions. The library documentation and header files are shipped with the C compiler; the C run-time library ships with the operating system. This paper discusses all phases of the enhancements to the C run-time library, from project concepts through the analysis, the design, and finally the implementation. The DEC C Runtime Library Reference Manual for OpenVMS Systems contains user documentation regarding the changes.","PeriodicalId":253466,"journal":{"name":"Digit. Tech. J.","volume":"48 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"Adding 64-bit Pointer Support for a 32-bit Run-time Library\",\"authors\":\"D. A. Smith\",\"doi\":\"10.5555/240920.240933\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"has extended the address space accessible to applications beyond the traditional 32-bit address space. This new address space is referred to as 64-bit virtual memory and requires a 64-bit pointer for memory access. The operating system has an additional set of new memory allocation routines that allows programs to allocate and release 64-bit memory. In OpenVMS Alpha version 7.0, this set of routines is the only mechanism available to acquire 64-bit memory. For application programs to take advantage of these new OpenVMS programming interfaces, high-level programming languages such as C had to support 64-bit pointers. Both the C compiler and the C runtime library required changes to provide this support. The compiler needed to understand both 32-bit and 64-bit pointers, and the run-time library needed to accept and return such pointers. The compiler has a new qualifier called /pointer_size, which sets the default pointer size for the compilation to either 32 bits or 64 bits. Also added to the compiler are pragmas (directives) that can be used within the source code to change the active pointer size. An application program is not required to compile each module using the same /pointer_size qualifier; some modules may use 32-bit pointers while others use 64-bit pointers. Benson, Noel, and Peterson describe these compiler enhancements. The DEC C User’s Guide for OpenVMS Systems documents the qualifier and the pragmas. The C run-time library added 64-bit pointer support either by modifying the existing interface to a function or by adding a second interface to the same function. Public header files define the C run-time library interfaces. These header files contain the publicly accessible function prototypes and structure definitions. The library documentation and header files are shipped with the C compiler; the C run-time library ships with the operating system. This paper discusses all phases of the enhancements to the C run-time library, from project concepts through the analysis, the design, and finally the implementation. The DEC C Runtime Library Reference Manual for OpenVMS Systems contains user documentation regarding the changes.\",\"PeriodicalId\":253466,\"journal\":{\"name\":\"Digit. Tech. J.\",\"volume\":\"48 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1900-01-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Digit. Tech. J.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.5555/240920.240933\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Digit. Tech. J.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.5555/240920.240933","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

摘要

在传统的32位地址空间之外扩展了应用程序可访问的地址空间。这个新的地址空间被称为64位虚拟内存,需要64位指针来访问内存。操作系统有一组额外的新的内存分配例程,允许程序分配和释放64位内存。在OpenVMS Alpha 7.0版本中,这组例程是获取64位内存的唯一机制。为了使应用程序能够利用这些新的OpenVMS编程接口,C等高级编程语言必须支持64位指针。C编译器和C运行时库都需要修改才能提供这种支持。编译器需要理解32位和64位指针,运行时库需要接受并返回这样的指针。编译器有一个名为/pointer_size的新限定符,它将编译器的默认指针大小设置为32位或64位。编译器中还添加了可在源代码中用于更改活动指针大小的pragmas(指令)。应用程序不需要使用相同的/pointer_size限定符来编译每个模块;一些模块可能使用32位指针,而其他模块可能使用64位指针。Benson、Noel和Peterson描述了这些编译器增强。OpenVMS系统的DEC C用户指南记录了限定符和pragmas。C运行时库通过修改函数的现有接口或通过向同一函数添加第二个接口来添加64位指针支持。公共头文件定义C运行时库接口。这些头文件包含可公开访问的函数原型和结构定义。库文档和头文件随C编译器一起发布;C运行时库随操作系统一起提供。本文讨论了C运行库增强的各个阶段,从项目概念到分析,设计,最后实现。OpenVMS系统的DEC C运行时库参考手册包含有关这些更改的用户文档。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Adding 64-bit Pointer Support for a 32-bit Run-time Library
has extended the address space accessible to applications beyond the traditional 32-bit address space. This new address space is referred to as 64-bit virtual memory and requires a 64-bit pointer for memory access. The operating system has an additional set of new memory allocation routines that allows programs to allocate and release 64-bit memory. In OpenVMS Alpha version 7.0, this set of routines is the only mechanism available to acquire 64-bit memory. For application programs to take advantage of these new OpenVMS programming interfaces, high-level programming languages such as C had to support 64-bit pointers. Both the C compiler and the C runtime library required changes to provide this support. The compiler needed to understand both 32-bit and 64-bit pointers, and the run-time library needed to accept and return such pointers. The compiler has a new qualifier called /pointer_size, which sets the default pointer size for the compilation to either 32 bits or 64 bits. Also added to the compiler are pragmas (directives) that can be used within the source code to change the active pointer size. An application program is not required to compile each module using the same /pointer_size qualifier; some modules may use 32-bit pointers while others use 64-bit pointers. Benson, Noel, and Peterson describe these compiler enhancements. The DEC C User’s Guide for OpenVMS Systems documents the qualifier and the pragmas. The C run-time library added 64-bit pointer support either by modifying the existing interface to a function or by adding a second interface to the same function. Public header files define the C run-time library interfaces. These header files contain the publicly accessible function prototypes and structure definitions. The library documentation and header files are shipped with the C compiler; the C run-time library ships with the operating system. This paper discusses all phases of the enhancements to the C run-time library, from project concepts through the analysis, the design, and finally the implementation. The DEC C Runtime Library Reference Manual for OpenVMS Systems contains user documentation regarding the changes.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信