标准摘要
[中文适用范围]: 本技术报告基于信息处理领域两个主要领域的标准化经验。一个领域涵盖编程语言。另一个领域涵盖应用程序实现其目标所需的服务。这些服务被划分为若干个相关的组,每个组称为系统功能 (SYSTEM FACILITY),可通过功能接口 (FUNCTIONAL INTERFACE) 访问。系统功能的规范(称为功能规范)定义了一系列系统功能,每个功能都执行一些定义明确的服务。由于原则上没有理由认为某个系统功能不应该被程序使用,无论该程序使用何种语言编写,因此系统功能规范制定者通常会定义一个与语言无关的“抽象”功能接口。这样,特定系统功能中的概念就可以由该领域的专家进行改进,而无需考虑语言特性。定义特定系统设施的内部一致性视图,以一致的方式将系统功能相互关联,并将系统功能与系统设施内的其他层关联起来,包括用于与整个系统中其他对象通信的协议。然而,如果这两个领域独立标准化,即使程序是用标准编程语言编写的并且只使用标准系统设施,也无法保证程序从一个操作环境迁移到另一个操作环境。系统设施与编程语言的语言绑定提供了映射系统设施功能接口的语言语法。这使得用该语言编写的程序能够以标准方式访问构成系统设施的系统功能。语言绑定的目的是实现使用特定语言的特定设施的程序的可移植性。已经为其开发了语言绑定的系统设施示例包括 GKS、NDL 和 SQL(参见参考文献)。预计未来将需要进一步开发语言绑定。一些目前正在标准化的系统设施没有语言绑定,其他系统设施将进行标准化。存在 n × m 种语言绑定的可能性,其中 n 表示语言数量,m 表示系统设施数量。本技术报告的范围包括对语言绑定方法进行分类,详细报告具体实例,并为未来的语言绑定标准提供建议指南。 [外文原描述]: ISO/IEC TR 10182:2016 is based on experience gained in the standardization of two major areas in information processing. One area covers programming languages. The other area is composed of the services necessary to an application program to achieve a goal. The services are divided into coherent groups, each referred to as a SYSTEM FACILITY, that are accessed through a FUNCTIONAL INTERFACE. The specification of a system facility, referred to as a FUNCTIONAL SPECIFICATION, defines a collection of SYSTEM FUNCTIONS, each of which carries out some well-defined service. Since in principle there is no reason why a particular system facility should not be used by a program, regardless of the language in which is written, is the practice of system facility specifiers to define an 'abstract' functional interface that is language independent. In this way, the concepts in a particular system facility may be refined by experts in that area without regard for language peculiarities. An internally coherent view of a particular system facility is defined, relating the system functions to each other in a consistent way and relating the system functions to other layers within the system facility, including protocols for communication with other objects in the total system. However, if these two areas are standardized independently, it is not possible to guarantee that programs from one operating environment can be moved to another, even if the programs are written in a standard programming language and use only standard system facilities. A language binding of a system facility to a programming language provides language syntax that maps the system facility's functional interface. This allows a program written in the language to access the system functions constituting the system facility in a standard way. The purpose of a language binding is to achieve portability of a program that uses particular facilities in a particular language. Examples of system facilities that have had language bindings developed for them are GKS, NDL, and SQL (see Clause 3). It is anticipated that further language binding development will be required. Some system facilities currently being standardized have no language bindings and additional system facilities will be standardized. There is a possibility of n × m language bindings, where n is the number of languages and m the number of system facilities. The scope of this Technical Report is to classify language binding methods, reporting on particular instances in detail, and to produce suggested guidelines for future language binding standards. Note that the language bindings and the abstract facility interfaces must have a compatible run time representation, but the abstract facility does not necessarily have to be written in the host language. For example, if the application program is using a Pascal language binding and the corresponding facility is written in FORTRAN, there must be a compatible run time representation in that operating environment. How this compatibility is achieved is outside the scope of these guidelines. This is generally a property of the operating environment defined by the implementor, and is reviewed briefly in this Technical Report.
英文名称Information technology - Programming languages, their environments and system software interfaces - Guidelines for language bindings