1、BSI Standards PublicationPD ISO/IEC TR 10182:2016Information technology Programming languages,their environments andsystem software interfaces Guidelines for languagebindingsPD ISO/IEC TR 10182:2016 PUBLISHED DOCUMENTNational forewordThis Published Document is the UK implementation of ISO/IECTR 1018
2、2:2016. It supersedes BS ISO/IEC TR 10182:1993 which iswithdrawn.The UK participation in its preparation was entrusted to TechnicalCommittee IST/5, Programming languages, their environments andsystem software interfaces.A list of organizations represented on this committee can beobtained on request
3、to its secretary.This publication does not purport to include all the necessaryprovisions of a contract. Users are responsible for its correctapplication. The British Standards Institution 2016. Published by BSI StandardsLimited 2016ISBN 978 0 580 88135 0ICS 35.060Compliance with a British Standard
4、cannot confer immunity fromlegal obligations.This Published Document was published under the authority of theStandards Policy and Strategy Committee on 31 March 2016.Amendments issued since publicationDate Text affectedPD ISO/IEC TR 10182:2016Information technology Programming languages, their envir
5、onments and system software interfaces Guidelines for language bindingsTechnologies de linformation Langages de programmation, leurs environnements et interfaces logicielles des systmes Techniques dinterface pour les normes de langages de programmationTECHNICAL REPORTISO/IEC TR10182First edition2016
6、-03-15Reference numberISO/IEC TR 10182:2016(E) ISO/IEC 2016PD ISO/IEC TR 10182:2016ii ISO/IEC 2016 All rights reservedCOPYRIGHT PROTECTED DOCUMENT ISO/IEC 2016, Published in SwitzerlandAll rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwis
7、e in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISOs member body in the country of the requester.ISO copyright officeCh. d
8、e Blandonnet 8 CP 401CH-1214 Vernier, Geneva, SwitzerlandTel. +41 22 749 01 11Fax +41 22 749 09 47copyrightiso.orgwww.iso.orgISO/IEC TR 10182:2016(E)PD ISO/IEC TR 10182:2016ISO/IEC TR 10182:2016(E)Foreword ivIntroduction v1 Scope . 12 Terms and definitions . 12.1 Terms . 12.2 Abbreviated terms . 33
9、Overview of functional binding methods 33.1 Introduction to Methods . 33.2 System Facility Standard Procedural Interface (Method 1) . 43.3 User-Defined Procedural Interfaces (Method 2) . 53.4 Programming Language Extensions with Native Syntax (Method 3) 53.5 Programming Languages with Embedded Alien
10、 Syntax (Method 4) . 63.6 Binding Pre-Existing Language Elements (Method 5) 63.7 Conclusions 64 Guidelines 74.1 Organizational Guidelines for Preparation of Language Bindings . 74.2 General Technical Guidelines 94.3 Recommendations for Functional Specifications 94.4 Method-Dependent Guidelines for L
11、anguage Bindings 104.4.1 Introduction to Method-Dependent Guidelines .104.4.2 Guidelines for Standard Procedural Interfaces 104.4.3 Guidelines for User Defined Procedural Interfaces 174.4.4 Guidelines for Programming Language Extensions with Native Syntax .184.4.5 Uses of Programming Languages with
12、Embedded Alien Syntax .185 Future directions .18Annex A (informative) Graphic Binding Examples20Annex B (informative) GKS Bindings Generic Issues 27Bibliography .40 ISO/IEC 2016 All rights reserved iiiContents PagePD ISO/IEC TR 10182:2016ISO/IEC TR 10182:2016(E)ForewordISO (the International Organiz
13、ation for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respe
14、ctive organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of informati
15、on technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.The procedures used to develop this document and those intended for its further maintenance are described in the ISO/IEC Directives, Part 1. In particular the different approval criteria needed for the different t
16、ypes of document should be noted. This document was drafted in accordance with the editorial rules of the ISO/IEC Directives, Part 2 (see www.iso.org/directives).Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall no
17、t be held responsible for identifying any or all such patent rights. Details of any patent rights identified during the development of the document will be in the Introduction and/or on the ISO list of patent declarations received (see www.iso.org/patents).Any trade name used in this document is inf
18、ormation given for the convenience of users and does not constitute an endorsement.For an explanation on the meaning of ISO specific terms and expressions related to conformity assessment, as well as information about ISOs adherence to the WTO principles in the Technical Barriers to Trade (TBT), see
19、 the following URL: Foreword Supplementary information .The committee responsible for this Technical Report is ISO/IEC JTC 1, Information technology, Sub-Committee SC 22, Programming languages, their environments and system software interfaces.This first edition of ISO/IEC TR 10182:2016 cancels and
20、replaces the first edition of ISO/IEC TR 10182:1993, of which it constitutes a minor revision with the following changes: the references section has been deleted; minor editorial errors have been corrected.iv ISO/IEC 2016 All rights reservedPD ISO/IEC TR 10182:2016ISO/IEC TR 10182:2016(E)Introductio
21、nThis Technical Report is a compilation of the experience and knowledge gained by the members of ISO/IEC JTC1/SC22/WG11 (Techniques for Bindings) from the generation of programmers interfaces to FUNCTIONAL INTERFACE STANDARDS. Although current experience was derived from the fields of computer graph
22、ics and database management, the problems discussed are thought to be generally applicable for mappings of other functional interface standards to programming languages. This Technical Report is intendeda) to identify the problems and conflicts which shall be resolved;b) to suggest guidelines for fu
23、ture use;c) to provide scope and direction to required additional work, such as common procedural callingmechanisms and data types; andd) as a historical record of past experiences and decisions.This Technical Report is incomplete; the authors have concentrated on those areas where experience and ex
24、pertise was readily available. The ideas and issues brought forward here emerged from more than 10 years of work, and are represented in International Standards.Clause 3 of this Technical Report contains the results of a survey of current methods used for language binding development. Characteristic
25、s of each method are given, followed by reasons for the selection of the method.Application of the methods has suggested some guidelines that are presented in Clause 4. Clauses 3 and 4 contain documentation of the current state of language binding efforts; Clause 5 addresses future directions for la
26、nguage bindings.Circulation of this Technical Report is necessary at this stage, as input and discussion from representatives of ISO/IEC JTC1/SC21 (functional specification standards developers), ISO/IEC JTC1/SC24 (computer graphics standards developers), and ISO/IEC JTC1/SC22 (language standards de
27、velopers) is urgently sought. The Technical Report in its current form may be useful for those about to embark on language binding developments. ISO/IEC 2016 All rights reserved vPD ISO/IEC TR 10182:2016PD ISO/IEC TR 10182:2016Information technology Programming languages, their environments and syst
28、em software interfaces Guidelines for language bindings1 ScopeThis Technical Report 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
29、 to achieve its 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 car
30、ries 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 define an abstract functional interface that is language i
31、ndependent. 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
32、 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 anot
33、her, 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 facilitys functional interface. This allows a program written in the langu
34、age 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 a
35、re GKS, NDL, and SQL (see Bibliography). 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,
36、 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
37、 and the abstract facility interfaces shall 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 FORTR
38、AN, there shall 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.2
39、 Terms and definitions2.1 TermsABSTRACT SERVICE INTERFACE: An interface having an abstract definition that defines the format and the semantics of the function invoked independently of the concrete syntax (actual representation) of the values and the invocation mechanism.TECHNICAL REPORT ISO/IEC TR
40、10182:2016(E) ISO/IEC 2016 All rights reserved 1PD ISO/IEC TR 10182:2016ISO/IEC TR 10182:2016(E)ALIEN SYNTAX: Syntax of a language other than the host language.EMBEDDED ALIEN SYNTAX: Statements in a special language for access to a system facility, included in a source program written in a standard
41、programming language.EXTERNAL IDENTIFIER: An identifier that is visible outside of a program.FUNCTIONAL INTERFACE: The abstract definition of the interface to a system facility by which system functions are provided.FUNCTIONAL SPECIFICATION: The specification of a system facility. In the context of
42、this Technical Report, the functional specification is normally a potential or actual standard. For each system function the specification defines the parameters for invocation and their effects.HOST LANGUAGE: The programming language for which a standard language binding is produced; the language i
43、n which a program is written.IDENTIFIER: Name of an object in an application program that uses a system facility.IMPLEMENTATION-DEFINED: Possibly differing between different processors for the same language, but required by the language standard to be defined and documented by the implementor.IMPLEM
44、ENTATION-DEPENDENT: Possibly differing between different processors for the same language, and not necessarily defined for any particular processor.IMPLEMENTOR: The individual or organization that realizes a system facility through software, providing access to the system functions by means of the s
45、tandard language bindings.LANGUAGE BINDING OF f TO l or l LANGUAGE BINDING OF f: A specification of the standard interface to facility f for programs written in language l.LANGUAGE COMMITTEE: The ISO technical Subcommittee or Working Group responsible for the definition of a programming language sta
46、ndard.PROCEDURAL BINDING (system facility standard procedural interface): The definition of the interface to a system facility available to users of a standard programming language through procedure calls.PROCEDURAL INTERFACE DEFINITION LANGUAGE: A language for defining specific procedures for inter
47、facing to a system facility as used, for example, in ISO 8907:1987, Database Language NDL.PROCEDURE: A general term used in this Technical Report to cover a programming language concept which has different names in different programming languages subroutine and function in FORTRAN, procedure and fun
48、ction in Pascal, etc. A procedure is a programming language dependent method for accessing one or more system functions from a program. A procedure has a name and a set of formal parameters with defined data types. Invoking a procedure transfers control to that procedure.PROCESSOR: A system or mecha
49、nism that accepts a program as input, prepares it for execution, and executes the process so defined with data to produce results.PROGRAMMING LANGUAGE EXTENSIONS WITH NATIVE SYNTAX or native syntax binding: The functionality of the system facilities is incorporated into the host programming language so that the system functions appear as natural parts of the language. The compiler processes the language extensions and generates the appropriate calls to the system facility functions.SYSTEM FACILITY: A coherent collection of services to be ma