标准编号:ISO/IEC TR 10182:2016
中文名称:信息技术 序设计语言及其环境和系统软件接口 语言绑定指南
英文名称:Information technology — Programming languages, their environments and system software interfaces — Guidelines for language bindings
发布日期:2016-03
标准范围
This Technical Report is based on experience gained in the standardization of two major areas ininformation processing. One area covers programming languages. The other area is composed of theservices necessary to an application program to achieve its goal. The services are divided into coherentgroups, 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 collectionof 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 it is written, it is the practice of system facility specifiers to definean ‘abstract’ functional interface that is language independent. In this way, the concepts in a particularsystem facility may be refined by experts in that area without regard for language peculiarities. Aninternally coherent view of a particular system facility is defined, relating the system functions to eachother 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 thatprograms from one operating environment can be moved to another, even if the programs are writtenin a standard programming language and use only standard system facilities. A language binding of asystem facility to a programming language provides language syntax that maps the system facility’sfunctional interface. This allows a program written in the language to access the system functionsconstituting the system facility in a standard way. The purpose of a language binding is to achieveportability of a program that uses particular facilities in a particular language. Examples of systemfacilities that have had language bindings developed for them are GKS, NDL, and SQL (see Bibliography).It is anticipated that further language binding development will be required. Some system facilitiescurrently being standardized have no language bindings and additional system facilities will bestandardized. There is a possibility of n × m language bindings, where n is the number of languages andm the number of system facilities.The scope of this Technical Report is to classify language binding methods, reporting on particularinstances in detail, and to produce suggested guidelines for future language binding standards.Note that the language bindings and the abstract facility interfaces shall have a compatible run timerepresentation, 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 correspondingfacility is written in FORTRAN, there shall be a compatible run time representation in that operatingenvironment. How this compatibility is achieved is outside the scope of these guidelines. This isgenerally a property of the operating environment defined by the implementor, and is reviewed brieflyin this Technical Report.