Information technology — Programming languages — Full BASIC
Specifies the programming language which is derived from the ANSI X3.113-1987. For details of the syntax and semantics see ANSI X3.113-1987. Annexes A and B are for information only.
Technologies de l'information — Langages de programmation — Full BASIC
Standards Content (sample)
--_-- ---m-P -_-.---- -.-. ~ II.
Information technology - Programming
languages - Full BASIC
Technologies de I’informaiion - Langages de programmafion - Full
zzzr __-_ - ___. --
- ___. . - -- --
---__-_. -- - -- - -__-
---------------------- Page: 1 ----------------------
IS0 (the International Organization for Standardization) and IEC (the
International Electrotechnical Commission) form the specialized system
for worldwide standardization. National bodies that are members of IS0
or IEC participate in the development of International Standards through
technical committees established by the respective organization to deal
with particular fields of technical activity. IS0 and IEC technical com-
mittees collaborate in fields of mutual interest. Other international or-
ganizations, governmental and non-governmental, in liaison with IS0
and IEC, also take part in the work.
In the field of information technology, IS0 and IEC have established a
joint technical committee, ISO/IEC JTC I. Draft International Standards
adopted by the joint technical committee are circulated to national bod-
ies for voting. Publication as an International Standard requires ap-
proval by at least 75 % of the national bodies casting a vote.
International Standard ISO/IEC 10279 was prepared by Joint Technical
Committee ISO/IEC JTC 1, Information technology.
Annexes A and B are for information only.
8 ISO/IEC 1991
All rights reserved. No part of this publication may be reproduced or utilized in any form
or by any means, electronic or mechanical, including photocopying and microfilm, withoutpermission in writing from the publisher.
lSO/IEC Copyright Office l Case Postale 56 l CH-1211 Geneve 20 l Switzerland
Printed in Switzerland
---------------------- Page: 2 ----------------------
INTERNATIONAL STANDARD ISOllEC 10279:1991 (E)
- Programming languages - Full
This International Standard specifies the programming language Full BASIC and is derived from the American
National Standard X3.113-1987. For details of the syntax and semantics see ANSI X3.113-1987 which specifies
the syntax of programs written in BASIC, including core BASIC and various extensions thereto;
the formats of data and the minimum precision and range of numeric representations and the
minimum length and set of characters in strings that are acceptable as input to an automatic dataprocessing system being controlled by a program written in BASIC;
the formats of data and the minimum precision and range of numeric representations and the
minimum length and set of characters in strings that can be generated as output by an automaticdata processing system being controlled by a program written in BASIC;
the semantic rules for interpreting the meaning of a program written in BASIC;
errors and exceptional circumstances to be detected and also the manner in which such errors andexceptional circumstances are to be handled
This lnternatior 1 al Standard also refers to ECMA-116 for the specification of mini-graphics. Note: ECMA-116 isbased on ANS I X3.1 13-1987.
7 al Standard specifies its own conformance subsets, which include those specified in ANSI X3.1 13-This lnternatiol
1987 and ECMA-116.
This International Standard is designed to promote the interchangeability of BASIC programs among a variety ofautomatic data processing systems.
2 Normative references
The following standards contain provisions which, through reference in this text, constitute provisions of this
International Standard. At the time of publication, the editions indicated were valid. All standards are subject to
revision, and parties to agreements based on this International Standard are encouraged to investigate the
possibility of applying the most recent editions of the standards indicated below. Members of IEC and of IS0maintain registers of currently valid International Standards.
ANSI X3.1 13-l 987: Information systems - programming languages - full BASIC.
STANDARD ECMA-116: 1986, BAS/C.
---------------------- Page: 3 ----------------------
lSO/IEC 10279:1991 (E)
3 Technical content
3.1 Principal technical content
Apart from the conformance rules the technical content of this International Standard is defined in part by Sections
3 to 16 of the ANSI X3.1 13-1987 (which will be referred to a ANS BASIC). The definition of resewed wordin ANS
BASIC Section 3.2 is for information only with respect to this International Standard.
The technical content for the mini-graphics module of this International Standard is defined by Section 13 ofECMA-116.
3.2 Additional reserved words
For the subset core, insert the following paragraph after paragraph 6 of Subsection 4.42 of ANS BASIC.
“The keywords ACCESS, AND, ANGLE, AREA, ARITHMETIC, ASK, AT, BASE, BEGIN, BREAK, CALL,
CASE, CHAIN, CLEAR, CLIP, CLOSE, COLLATE, COLOR, DATA, DATUM, DEBUG, DECIMAL, DECLARE, DEF,
DEGREES, DEVICE, DIM, DISPLAY, DO, ELAPSED, ELSEIF, END, ERASE, ERASABLE, EXIT, EXTERNAL,
FILETYPE, FOR, FUNCTION, GO, GOSUB, GOTO, GRAPH, IF, IMAGE, INPUT, INTERNAL, IS, LENGTH, LET,
LINE, LINES, LOOP, MARGIN, MAT, MISSING, NAME, NATIVE, NEXT, NUMERIC, OFF, ON, OPEN, OPTION, OR,
ORGANIZATION, OUTIN, OUTPUT, POINT, POINTER, POINTS, PROGRAM, PROMPT, RADIANS, RANDOMIZE,
READ, RECSIZE, RECTYPE, REST, RESTORE, RETURN, SAME, SELECT, SEQUENTIAL, SET, SETTER, SIZE,
SKIP, STANDARD, STATUS, STEP, STOP, STREAM, STRING, STYLE, SUB, TAB, TEXT, THEN, THERE,
TIMEOUT, TO, TRACE, UNTIL, USING, VARIABLE, VIEWPORT, WHILE, WINDOW, WITH, WRITE, andZONEWIDTH shall not be used as identifiers.”
There are two aspects of conformance to a set of modules in this International Standard: conformance by a program
written in the BASIC language, and conformance by an implementation which processes such programs. The
conformance requirements are structured so that any program conforming to a set of modules will produce the
same results when executed by any implementation conforming to the same or an encompassing set of modules
(though certain implementation-dependent features are noted in ANS BASIC Appendix C).4.1 Modules
The programming language defined by this International Standard is organized in a modular fashion. Conformance
to this International Standard is defined with respect to particular sets of the following fifteen modules andcombinations thereof:
A core module, which encompasses all programs whose syntax conforms to ANS BASIC Sections
4 to 10, parts of ANS BASIC Section 11 (excluding internal-format record and native-format recordfiles), and ANS BASIC Section 12.
A subset core module, which encompasses all programs whose syntax conforms to ANS BASIC
Sections 4 to 10 (except that a substitute definition of reserved word applies -- see 3.2), parts of
ANS BASIC Section 11 (excluding enhanced-internal and enhanced-native files), and ANS BASIC
Subsection 12.2. (The subset core module is identical to the core module except that the list ofreserved words is larger and exception handling is excluded.)
An enhanced-internal file module, which encompasses all programs whose syntax conforms to the
enhanced production rules in ANS BASIC Section 11 (lacking the prefix “N”), together with thecore.
An enhanced-internal file subset module, which encompasses all programs whose syntax
conforms to the enhanced production rules in ANS BASIC Section 11 (lacking the prefix “N”),together with the subset core.
---------------------- Page: 4 ----------------------
DSO/IEC 10279:1991 (E)
An enhanced-native file module, which encompasses all programs whose syntax conforms to the
enhanced native production rules in ANS BASIC Section 11 (indicated with the prefix “N“),together with the core.
An enhanced-native file subset module, which encompasses all programs whose syntax conforms
to the enhanced native production rules in ANS BASIC Section 11 (indicated with the prefix “N”),together with the subset core.
A graphics module, which encompasses all programs whose syntax conforms to ANS BASICSection 13, together with the core.
A graphics subset module, which encompasses all programs whose syntax conforms to ANSBASIC Section 13, together with the subset core.
A minig~@Ucs module, which encompasses all programs whose syntax conforms to ECMA-116Section 13 (see Annex B), together with the core.
A minigraphics subset module, which encompasses all programs whose syntax conforms toECMA-116 Section 13 (see Annex B), together with the subset core.
A real-time module, which encompasses all programs whose syntax conforms to ANS BASICSection 14, together with the core.
A real-time subset module, which encompasses all programs whose syntax conforms to ANSBASIC Section 14, together with the subset core.
A fixed decimalmodule, which encompasses all programs whose syntax conforms to ANS BASICSection 15, together with the core.
A fixed decimal subset module, which encompasses all programs whose syntax conforms to ANSBASIC Section 15, together with the subset core.
An editing module, which encompasses all unsorted programs and editing commands whosesyntax conforms to ANS BASIC Section 16.
In addition, the Conformance Modules shall include those described in ANS X3-l 13, Section 2, and in ECMA-116,
Section 2. (Note: See Annex A for details on the relationship between these conformance modules and theconformance modules defined in ANS X3-l 13 and ECMA-116.)
4.2 Program conformance
A program conforms to a set of modules in this International Standard only when
the program and each statement or other syntactic element contained therein is syntactically valid
according to the syntactic rules specified by this International Standard as belonging to that set;
the program as a whole violates none of the global constraints imposed by this InternationalStandard on the application of the syntactic rules.
---------------------- Page: 5 ----------------------
ISO/IEC 10279:1991 (E)
4.3 Implementation conformance
An implementation conforms to a set of modules in this International Standard only when
it accepts and processes all programs conforming to that set of modules in this InternationalStandard;
it reports reasons for rejecting any program which does not conform to that set of modules in thisInternational Standard;
it interprets errors and exceptional circumstances according to the specifications of thisInternational Standard;
it interprets the semantics of each statement of a conforming program according to thespecifications in this International Standard;
it interprets the semantics of a conforming program as a whole according to the specifications inthis International Standard;
it accepts as input nipulates, and can generate as output numbe rs of at least the p recision andt ma
range specified in this International Standard;
it accepts as input, manipulates, and can generate as output strings of at least the length andcomposed of at least those characters specified in this International Standard;
it is accompanied by documentation available to the user that describes the actions taken in regard
to features referred to as “undefined” or “implementation-defined” in this International Standard;
it is accompanied by documentation available to the user that describes and identifies allenhancements to the language defined in this International Standard.
This International Standard makes no requirement concerning the interpretation of the semantics of any statementor program as a whole that does not conform to this International Standard.
In addition, an implementation conforms to the editing requirements of this International Standard if it accepts and
processes unsorted programs and editing commands according to the specifications in ANS BASIC Section 16.4.4 Errors
This International Standard does not include specific requirements for reporting syntactic errors in the text of a
program. Implementations conforming to a set of modules in this International Standard may accept programs
written in an enhanced language without having to report all constructs not conforming to that set of modules.
Whenever a statement, or other program element, does not conform to the syntactic rules given herein, and that
statement, or program element, does not have a clear, well-documented implementation-defined meaning, an error
shall be reported. Errors shall be reported in a clear and well-documented way, and whenever feasible the
implementation should indicate the erroneous statement and the position of the error within the statement.4.5 Exceptions
An exception is a circumstance arising in the course of execution of a program when an implementation recognizes
that the semantic rules of this International Standard cannot be followed or that some resource constraint is about
to be exceeded. All exceptions described in this International Standard shall be detected, reported, and
processed when they occur, unless some mechanism provided in ANS BASIC Subsection 12.1 or in an
enhancement to this International Standard has been invoked by the user to handle exceptions.
In the absence of programmer-specified recovery procedures, exceptions shall be handled by the recovery
procedures specified in this International Standard. If no recovery procedure is specified in this International---------------------- Page: 6 ----------------------
ISO/IEC 10279:1991 (E)
Standard, or if restrictions imposed by the hardware or the operating environment make it impossible to follow the
procedure specified in this International Standard, then the way in which the exception is handled depends on the
context. If the exception occurred in an invocation of a function, picture, or subprogram, then the exception is
“propagated back” to the invoking statement in the invoking program unit (see ANS BASIC Subsection 12.1). If
this propagation procedure reaches the main-program or a parallel-section, or if the exception occurred in the main-
program or a parallel-section, then the exception shall be handled by terminating the program or, in the case of real-time-programs, the parallel-section, generating the exception.
The way in which the default exception handling mechanism reports an exception is implementation-defined,
except that the contents of the report shall identify at least the original exception code and the line number of theline in which the original exception occurred.
Except in the case of files, when several exceptions are caused by the execution of a single statement of a
program, this International Standard does not specify an order in which these exceptions shall be detected,reported, or processed.
If an implementation determines that a particular statement in a conforming program will always cause an exception
when executed, the implementation may issue a warning to the user. Nonetheless, the implementation shall
accept and execute the program, according to the normal semantic rules specified herein.---------------------- Page: 7 ----------------------
ISO/IEC 10279:I 991 (E)
Relationship of this International Standard to ANSI and ECMA
It is the intention of this International Standard that all programs and implementations that conform to ANS BASIC,
X3.1 13-1987, or to ECMA BASIC, ECMA-116, shall automatically conform to ISO/IEC BASIC.
In addition, this International Standard allows other conformance modules. Subclause 4.1 of this International
Standard defines fifteen conformance modules. These fifteen modules are based on nine portions of the ANSi
and ECMA Standards. The content of these fifteen modules in terms of the nine portions is shown below.
In particular, the core and six optional modules specified in ANS BASIC correspond to modules a), c), e), g), k), m),
and 0). The four conformance modules of ECMA-116 are shown in the following the table A.I. The ECMAconformance modules are
ECMA-1 with Mini-Graphics E-l +MG)
ECMA-2 with Mini-Graphics E-2+MG)
Core Subset Files Files Graph- Jllnr- Real- Fixed Editing
Internal Native its Graph. Time Decimal
--------------------------------------------------------------------- -----------------------------------------------------------------------------------X X
---------------------- Page: 8 ----------------------
ISO/IEC 10279:1991 (E)
The Mini Graphics Module
This annex reproduces (except for typographical corrections) Section 13 in ECMA-116 --mini-graphics , which can
be described informally as consisting of ANS BASIC Subsections 13.1 through 13.3 with the following deletions:From 13.1. None.
From 13.2. Delete references and production rules associated with more than a single TEXT style, size, or
orientation. Delete references to COLOR MIX. Reduce the minimum number of available line styles from four to
three. Reduce the minimum number of available point styles from five to three. Delete exceptions 11073, 4102,and 11088.
From 13.3. Delete the facility for generating an array of color cells. Delete refer-ences to array (MAT)
graphic output statements. Delete the second paragraph of 220.127.116.11 that deals with the interaction between
ordinary output and graphics output statements. Delete all references to the height, justification, and orientation of
text. Delete exceptions 6401 and 6402. Delete the reference in exception 11085 to the array-cells-statement.13. GRAPHICS
The facilities provided in section 13.1 through 13.3 are a subset of those provided by level Ob of the Graphical
Kernel System (GKS) as defined in IS0 7942. The values of the EXTYPE function for exceptions defined in GKSare 11000 plus the value of the GKS error number.
In GKS terms, any BASIC program that includes statements from Section 13 of this Standard has implied
calls to the functions OPEN GKS, OPEN WORKSTATION (#0, “Maindev”, I), and ACTIVATE WORKSTATION #0
before any graphics statements are executed, and calls to the functions DEACTIVATE WORSTATION #0, CLOSEWORKSTATION #0 and CLOSE GKS as the program terminates.
13.1 Coordinate Systems
13.1 .I General Description
The coordinates used to produce graphic output may be chosen to suit the application. The range of this
system of “problem coordinates” (world coordinates) is established by a SET WINDOW statement. This range is
mapped into a rectangular portion of an abstract viewing surface which can be specified by a SET VIEWPORT
statement. It is possible to specify what part of this abstract viewing surface will be presented to the user on the
display surface by a SET DEVICE WINDOW statement. This rectangle, in turn, may be located on the displaysurface by a SET DEVICE VIEWPORT statement.
No output will be produced outside the device viewport. It is possible to guarantee that all graphic outputwhich lies outside the viewport will be eliminated by enabling clipping.
Ask statements are provided to determine the current values for the parameters established by executionof one of the set statements or by default.
1 . set-object > WINDOW boundaries /
VIEWPORT boundaries /
DEVICE WINDOW boundaries /
DEVICE VIEWPORT boundaries /
boundaries boundary comma boundary comma
boundary comma boundary
---------------------- Page: 9 ----------------------
ISOIIEC 10279:I 991 (E)
> ASK ask-object status-clause?
5 . status-clause
> WINDOW boundary-variables /
6 . ask-object
VIEWPORT boundary-variables /
DEVICE WINDOW boundary-variables /
DEVICE VIEWPORT boundary-variables /
DEVICE SIZE numeric-variable comma
7 . boundary-variables =
WINDOW 0, PI*2, -1, 1
VIEWPORT .5*width, width, .5*height, height
DEVICE WINDOW 0,
DEVICE VIEWPORT .3, .5, .I,
4. ASK WINDOW Xl, X2, Yl, Y2
ASK VIEWPORT L, R, B, T
ASK DEVICE WINDOW XMIN, XMAX, YMIN, YMAX
ASK DEVICE VIEWPORT LEFT, RIGHT, BOTTOM, TOP
ASK DEVICE SIZE Width, Height, Unit$
ASK CLIP CLIP STATE$