1、 Reference number ISO/IEC 13816:2007(E) ISO/IEC 2007INTERNATIONAL STANDARD ISO/IEC 13816 Second edition 2007-10-01 Information technology Programming languages, their environments and system software interfaces Programming language ISLISP Technologies de linformation Langages de programmation, leurs
2、 environnements et interfaces de logiciel systme Langage de programmation ISLISP ISO/IEC 13816:2007(E) PDF disclaimer This PDF file may contain embedded typefaces. In accordance with Adobes licensing policy, this file may be printed or viewed but shall not be edited unless the typefaces which are em
3、bedded are licensed to and installed on the computer performing the editing. In downloading this file, parties accept therein the responsibility of not infringing Adobes licensing policy. The ISO Central Secretariat accepts no liability in this area. Adobe is a trademark of Adobe Systems Incorporate
4、d. Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event that a pr
5、oblem relating to it is found, please inform the Central Secretariat at the address given below. COPYRIGHT PROTECTED DOCUMENT ISO/IEC 2007 All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical,
6、 including photocopying and microfilm, without permission in writing from either ISO at the address below or ISOs member body in the country of the requester. ISO copyright office Case postale 56 CH-1211 Geneva 20 Tel. + 41 22 749 01 11 Fax + 41 22 749 09 47 E-mail copyrightiso.org Web www.iso.org P
7、ublished in Switzerland ii ISO/IEC 2007 All rights reservedISO/IEC 13816:2007(E) Contents 1S c o p e 1 2 Normative references 1 3 Compliance of ISLisp processors and text 2 4 Terms and denitions 2 5 Notation and conventions 7 6 Lexemes 9 6 . 1 S e p a r a t o r s. 1 0 6 . 2 C o m m e n t s. 1 0 7 Te
8、xtual representation 10 8 Reserved identiers 11 9 Errors 11 9 . 1 C l a s s e so fe r r o rs p e c i c a t i o n. 1 2 9 . 2 P e r v a s i v ee r r o rt y p e s. 1 2 10 Classes 13 1 0 . 1M e t a c l a s s e s 1 3 1 0 . 2P r e d e n e dc l a s s e s. 1 5 1 0 . 3S t a n d a r dc l a s s e s. 1 6 1 0 .
9、3 . 1S l o t s 1 6 1 0 . 3 . 2C r e a t i n gi n s t a n c e so fc l a s s e s. 1 6 11 Scope and extent 17 1 1 . 1T h el e x i c a lp r i n c i p l e. 1 7 1 1 . 2S c o p eo fi d e n t i e r s 1 7 1 1 . 3S o m es p e c i cs c o p er u l e s. 1 8 1 1 . 4E x t e n t. 1 8 12 Forms and evaluation 19 1 2
10、. 1F o r m s. 1 9 1 2 . 2F u n c t i o na p p l i c a t i o nf o r m s . 2 0 1 2 . 3S p e c i a lf o r m s. 2 0 1 2 . 4D e n i n gf o r m s 2 1 1 2 . 5M a c r of o r m s 2 1 1 2 . 6T h ee v a l u a t i o nm o d e l 2 1 1 2 . 7F u n c t i o n s. 2 2 1 2 . 8D e n i n go p e r a t o r s 2 6 13 Predicat
11、es 28 1 3 . 1B o o l e a nv a l u e s 2 8 1 3 . 2C l a s sp r e d i c a t e s 2 8 1 3 . 3E q u a l i t y 2 9 1 3 . 4L o g i c a lc o n n e c t i v e s 3 1 14 Control structure 33 1 4 . 1C o n s t a n t s. 3 3 1 4 . 2V a r i a b l e s . 3 4 c ISO/IEC 2007 All rights reserved iiiISO/IEC 13816:2007(E)
12、1 4 . 3D y n a m i cv a r i a b l e s 3 7 1 4 . 4C o n d i t i o n a le x p r e s s i o n s. 3 8 1 4 . 5S e q u e n c i n gf o r m s. 4 0 1 4 . 6I t e r a t i o n 4 1 1 4 . 7N o n - l o c a le x i t s 4 2 14.7.1 Establishing and invoking non-local exits . . . . . . . . . . . . . . . . . . . 42 14.7.
13、2 Assuring data consistency during non-local exits . . . . . . . . . . . . . . . 46 15 Objects 47 1 5 . 1D e n i n gc l a s s e s 4 7 15.1.1 Determining the class precedence list . . . . . . . . . . . . . . . . . . . . . . 50 1 5 . 1 . 2A c c e s s i n gs l o t s 5 1 1 5 . 1 . 3I n h e r i t a n c e
14、o fs l o t sa n ds l o to p t i o n s 5 1 1 5 . 2G e n e r i cf u n c t i o n s. 5 2 1 5 . 2 . 1D e n i n gg e n e r i cf u n c t i o n s 5 2 1 5 . 2 . 2D e n i n gm e t h o d sf o rg e n e r i cf u n c t i o n s. 5 4 15.2.2.1 Agreement on parameter specia l i z e r sa n dq u a l i e r s. 5 5 15.2.2
15、.2 Congruent lambda-lists for all methods of a generic function . . . 55 1 5 . 2 . 3I n h e r i t a n c eo fm e t h o d s 5 5 15.3 Calling generic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 1 5 . 3 . 1S e l e c t i n gt h ea p p l i c a b l em e t h o d s 5 6 1 5
16、. 3 . 2S o r t i n gt h ea p p l i c a b l em e t h o d s. 5 6 1 5 . 3 . 3A p p l y i n gm e t h o d s 5 7 15.3.3.1 Simple method combination . . . . . . . . . . . . . . . . . . . . . 57 15.3.3.2 Standard method combination . . . . . . . . . . . . . . . . . . . . 57 15.3.4 Calling more general metho
17、ds . . . . . . . . . . . . . . . . . . . . . . . . . . 59 1 5 . 4O b j e c tc r e a t i o na n di n i t i a l i z a t i o n 6 0 1 5 . 4 . 1I n i t i a l i z e - o b j e c t 6 0 1 5 . 5C l a s se n q u i r y. 6 1 16 Macros 61 17 Declarations and coercions 63 18 Symbol class 65 1 8 . 1S y m b o ln a m
18、 e s 6 5 18.1.1 Notation for symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 1 8 . 1 . 2A l p h a b e t i cc a s ei ns y m b o ln a m e s 6 6 18.1.3 nil and () 6 7 1 8 . 2S y m b o lp r o p e r t i e s 6 7 1 8 . 3U n n a m e ds y m b o l s 6 8 19 Number class 68 1 9 . 1N u m
19、 b e rc l a s s. 6 9 1 9 . 2F l o a tc l a s s. 7 7 1 9 . 3I n t e g e rc l a s s 8 0 20 Character class 83 21 List class 84 2 1 . 1C o n s . 8 4 2 1 . 2N u l lc l a s s. 8 7 2 1 . 3L i s to p e r a t i o n s 8 7 22 Arrays 91 iv c ISO/IEC 2007 All rights reservedISO/IEC 13816:2007(E) 2 2 . 1A r r a
20、yc l a s s e s. 9 1 2 2 . 2G e n e r a la r r a y s 9 2 2 2 . 3A r r a yo p e r a t i o n s. 9 3 23 Vectors 95 24 String class 96 25 Sequence functions 99 26 Stream class 102 2 6 . 1S t r e a m st o l e s1 0 3 2 6 . 2O t h e rs t r e a m s.1 0 5 27 Input and output 107 27.1 Argument conventions for
21、input functions . . . . . . . . . . . . . . . . . . . . . . . 107 2 7 . 2C h a r a c t e rI / O 1 0 7 2 7 . 3B i n a r yI / O1 1 1 28 Files 112 29 Condition system 114 2 9 . 1C o n d i t i o n s.1 1 5 2 9 . 2S i g n a l i n ga n dh a n d l i n gc o n d i t i o n s1 1 5 29.2.1 Operations relating to
22、condition signaling . . . . . . . . . . . . . . . . . . . 116 29.2.2 Operations relating to condition handling . . . . . . . . . . . . . . . . . . . 117 2 9 . 3D a t aa s s o c i a t e dw i t hc o n d i t i o nc l a s s e s.1 1 8 2 9 . 3 . 1A r i t h m e t i ce r r o r s.1 1 8 2 9 . 3 . 2D o m a i n
23、e r r o r s 1 1 8 2 9 . 3 . 3P a r s ee r r o r s1 1 8 2 9 . 3 . 4S i m p l ee r r o r s.1 1 9 2 9 . 3 . 5S t r e a me r r o r s.1 1 9 2 9 . 3 . 6U n d e n e de n t i t ye r r o r s .1 1 9 2 9 . 4E r r o ri d e n t i c a t i o n1 2 0 30 Miscellaneous 122 Index 123 c ISO/IEC 2007 All rights reserved
24、vISO/IEC 13816:2007(E) Foreword ISO (the International Organization 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 S
25、tandards through technical committees established by the respective organization to deal with particular elds of technical activity. ISO and IEC technical committees collaborate in elds of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and
26、IEC, also take part in the work. In the eld of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2. The main task of the joint technical committee is
27、to prepare International Standards. Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75% of the national bodies casting a vote. Attention is drawn to the possibi
28、lity that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. ISO/IEC 13816 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming
29、 languages, their environments and system software interfaces. This second edition cancels and replaces the rst edition (ISO/IEC 13816:1997), which has been technically revised. vi c ISO/IEC 2007 All rights reservedISO/IEC 13816:2007(E) Introduction The programming language ISLISP is a member of the
30、 LISP family. The following factors inuenced the establishment of design goals for ISLISP: 1. A desire of the international LISP community to standardize on those features of LISP upon which there is widespread agreement. 2. The existence of the incompatible dialects COMMON-LISP, EULISP, LE-LISP,and
31、SCHEME (mentioned in alphabetical order). 3. A desire to arm LISP as an industrial language. This led to the following design goals for ISLISP: 1. ISLISP shall be compatible with existing LISP dialects where feasible. 2. ISLISP shall have as a primary goal to provide basic functionality. 3. ISLISP s
32、hall be object-oriented. 4. ISLISP shall be designed with extensibility in mind. 5. ISLISP shall give priority to industrial needs over academic needs. 6. ISLISP shall promote ecient implementations and applications. c ISO/IEC 2007 All rights reserved viiINTERNATIONAL STANDARD ISO/IEC 13816:2007(E)
33、Information technology Programming languages, their environments and system software interfaces Programming language ISLISP 1S c o p e This International Standard species syntax and semantics of the computer programming language ISLISP by specifying requirements for a conforming ISLISP processor and
34、 a conforming ISLISP text. This International Standard does not specify: (a) the size or complexity of an ISLISP text that exceeds the capacity of any specic data processing system or the capacity of a particular processor, nor the actions to be taken when the corresponding limits are exceeded; (b)
35、the minimal requirements of a data processing system that is capable of supporting an implementation of a processor for ISLISP; (c) the method of preparation of an ISLISP text for execution and the method of activation of this ISLISP text, prepared for execution; (d) the typographical presentation o
36、f an ISLISP text published for human reading; (e) extensions that might or might not be provided by the implementation. 2 Normative references The following referenced documents are indispensable for the application of this document. For dated references, only the edition cited applies. For undated
37、references, the latest edition of the referenced document (including any amendments) applies. ISO/IEC TR 10034:1990, Guidelines for the preparation of conformity clauses in programming language standards IEEE standard 754-1985. Standard for binary oating point arithmetic c ISO/IEC 2007 All rights re
38、served 1ISO/IEC 13816:2007(E) 3 Compliance of ISLisp processors and text An ISLISP processor complying with the requirements of this International Standard shall: (a) accept and implement all features of ISLIS P specied in this International Standard; (b) reject any text that contains any textual us
39、age which this International Standard explicitly denes to be a violation (see 9); (c) be accompanied by a document that provides the denitions of all implementation-dened features; (d) be accompanied by a document that separately describes any features accepted by the processor that are not specied
40、in this International Standard; these extensions shall be described as being “extensions to ISLISP as specied by ISO/IEC 13816:2007(E).” A complying ISLISP text shall not rely on implementation-dependent features. However, a complying ISLISP text may rely on implementation-dened features required by
41、 this International Standard. A complying ISLISP text shall not attempt to create a lexical variable binding for any named constant dened in this International Standard. It is a violation if any such attempt is made. 4 Terms and denitions For the purposes of this document, the following terms and de
42、nitions apply. 4.1 abstract class class that by denition has no direct instances 4.2 activation computation of a function Note: Every activation has an activation point, an activation period, and an activation end. The activator, which is a function application form prepared for execution, starts th
43、e activation at the activation point. 4.3 accessor association of a reader and a writer for a slot of an instance 4.4 argument position occurrence of a text unit as an element in a form excluding the rst one 2 c ISO/IEC 2007 All rights reservedISO/IEC 13816:2007(E) 4.5 binding concept that has both
44、a syntactic and a semantic aspect, where syntactically, “binding” describes the relation between an identier and a binding ISLISP form, and semantically, “binding” describes the relation between a variable, its denoting identier, and an object (or, the relation between a variable and a location) Not
45、e 1: The property of being bound can be checked textually by relating dening and applied identier occurrences. Note 2: Semantically, the binding relation might be imagined to be materialized in some entity, the binding. Such a binding entity is constructed at run time and destroyed later, or might h
46、ave indenite extent. 4.6 class object that determines the structure and behavior of a set of other objects called its instances Note: The behavior is the set of operations that can be performed on an instance. 4.7 condition object that represents a situation that has been (or might be) detected by a
47、 running program 4.8 denition point textual point of an ISLISP text that is the start of an identiers representation of an ISLISP object 4.9 direct instance instance of a class but not an instance of one of its subclasses Note: Every ISLISP object is direct instance of exactly one class, which is ca
48、lled “its class”. The set of all direct instances together with their behavior constitute a class. 4.10 dynamic having an eect that is determined only through program execution and that cannot, in general, be determined statically 4.11 dynamic variable variable whose associated binding is determined
49、 by the most recently executed active block that established it, rather than statically by a lexically apparent block according to the lexical principle 4.12 evaluation computation of a form prepared for execution which results in a value and/or a side-eect c ISO/IEC 2007 All rights reserved 3ISO/IEC 13816:2007(E) 4.13 execution sequence of (sometimes nested) activations 4.14 extension implementation-dened modication to the requirements of this International Standar