Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
IEC 15475-1:2004, which is identical to ISO/IEC 15475-1:2004, defines the syntax, semantics, and run-time behavior of the Full BASIC programming language. This standard is part of a multi-part series that covers the core language (Part 1), modules (Part 2), and additional features (subsequent parts). It supersedes the earlier standard ISO/IEC 10279:1991 and provides a rich, structured, and extensible language suitable for education, rapid prototyping, and application development.
The standard specifies the full feature set of BASIC, including control structures, data types, file handling, graphical output, and exception handling. It aims to ensure portability and interoperability across implementations while preserving the simplicity that made BASIC widely adopted.
The standard mandates support for numeric (real and complex), string, and logical data types. It also defines structured data types such as arrays (with dynamic bounds) and records (via the TYPE construct). Table 1 summarises the core data types and their attributes.
| Type | Classification | Default Precision | Range (Minimum) |
|---|---|---|---|
| REAL | Numeric | 10 decimal digits | 1.0E-38 to 1.0E+38 |
| COMPLEX | Numeric | 10+10 digits | Real and imaginary as above |
| STRING | Character | 1 character | 0 to 231–1 length |
| LOGICAL | Boolean | – | TRUE / FALSE |
Full BASIC supports structured programming constructs: IF–THEN–ELSE, SELECT CASE, FOR–NEXT, DO–LOOP (with WHILE/UNTIL), and EXIT for loop termination. Subprograms are defined using EXTERNAL SUB and FUNCTION constructs, with formal parameters passed by reference by default. Recursion is explicitly permitted.
EXTERNAL unless they are internal to a module. The standard does not allow nested subprogram definitions except via modules (Part 2).The standard defines a comprehensive I/O model based on channels (numeric identifiers). Files can be sequential or direct-access, formatted or unformatted. The OPEN, READ, WRITE, and CLOSE statements conform to a consistent syntax. Graphical output is supported via the PLOT and DRAW statements, with transformations (scaling, rotation).
The standard includes a robust exception-handling mechanism using WHEN–USE blocks. It defines a set of mandatory exception conditions (e.g., division by zero, subscript out of range, file not found) and permits user-defined exceptions. The EXAMINE statement allows runtime interrogation of exception status.
An implementation claiming compliance with IEC 15475-1:2004 must satisfy all mandatory requirements indicated by the verb “shall”. The standard distinguishes between:
To claim “Full BASIC” conformance, an implementation must pass a validation suite (e.g., the one available from ISO/IEC JTC 1/SC 22). The standard does not define a formal certification body, but self-certification with documented test results is common.
© 2026 — This technical article is prepared for informational purposes. Always refer to the official standard text for authoritative requirements.