Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
International standard IEC 10279-94 (also published jointly as ISO/IEC 10279:1991 and its Amendment 1:1996) provides a definitive specification for the Full BASIC programming language. Originally developed to resolve fragmentation among vendor-specific BASIC dialects, the standard establishes a consistent minimal set and a full language profile that includes advanced features such as structured control constructs, subprograms, and—after the 1996 amendment—graphics primitives. This article offers an in‑depth look at the scope, technical requirements, implementation considerations, and compliance procedures defined by the standard.
IEC 10279-94 defines the syntax, semantics, and constraints for the Full BASIC language. The document covers two conformance levels:
Amendment 1:1996 (commonly referred to as amd1-1996) introduced a complete graphics subsystem, enabling applications to create and manipulate graphical windows, draw geometric shapes, and manage events. The amendment also clarified ambiguity in floating‑point arithmetic and defined an interoperable numeric format for saved data.
The core language specification is divided into several categories. The table below summarises the most significant elements and the level at which they must be implemented for compliance.
| Category | Key Elements | Requirement Level (Full BASIC) |
|---|---|---|
| Data Types | numeric (integer and real), string, boolean | Mandatory |
| Control Structures | IF‑THEN‑ELSE (single + block), SELECT CASE, FOR, DO (WHILE/UNTIL) | Mandatory |
| Subprograms | FUNCTION / SUB with local variables and parameter passing | Mandatory |
| Graphics (Amd 1) | WINDOW, PLOT, DRAW, BUTTON, and event handling primitives | Optional (but required for Full BASIC compliance after amendment) |
| File I/O | sequential and direct access, internal files, structured data | Mandatory |
| Array Operations | multidimensional arrays, array slicing, matrix arithmetic | Mandatory |
The standard mandates two floating‑point precision levels (REAL vs. INTEGER) and a STRING type with dynamic length. Boolean values are not first‑class data but are implicitly created by relational operators; implementations must treat true and false consistently in conditional expressions. The 1996 amendment further tightened the rules for decimal rounding and introduced an extended string library.
Full BASIC requires multi‑line control blocks. For example, the syntax IF condition THEN … ELSE … END IF is compulsory, eliminating traditional line‑numbering requirements for flow control. The SELECT CASE construct is mandatory, as are loops using FOR and DO. All loops support early exit with EXIT.
The amendment adds a device‑independent graphics model. Programs can create windows (WINDOW), set colors, draw lines and circles (PLOT LINES, DRAW CIRCLE), and respond to mouse/keyboard events. The graphics environment is event‑driven; compliance requires that the runtime queue and dispatch events according to the standard’s semaphore protocol.
When implementing a Full BASIC system, developers should pay attention to the following aspects to ensure conformance:
EXTERNAL keyword.ON ERROR.Conformance to IEC 10279-94 (as amended) can be tested using reference interpreter suites published by ISO or national testing bodies. The compliance process typically involves:
Implementers must document which parts of the standard are supported (e.g., minimal or full, graphics included). Products claiming Full BASIC compliance must satisfy all mandatory requirements from the base document and the amendment.
FOR loop termination can lead to rejection during certification, especially in safety‑critical projects where the standard is referenced by procurement regulations. This article is based on the 1994 edition of IEC 10279 and Amendment 1:1996. For the latest information, consult the ISO/IEC JTC 1 website or your national standards body. © 2026 International Standards Documentation.