It describes an advanced version of BASIC with many features including structured programming, matrix math, input/output for file handling, and many other options.
It was completely ignored; the microcomputer revolution had occurred while the specification was being argued over, and by the early-1980s Microsoft BASIC running on tens of millions of home computers had already come and gone.
Watching the process drag on, the Dartmouth participants left to produce True BASIC based on parts of the standard, but this saw little use.
[citation needed] The introduction of Dartmouth BASIC in 1964 combined a number of emerging concepts in the computer field, including timesharing and direct interaction with the user, known at the time as a "conversational interface".
The group decided that a complete standard based on SBASIC would take some time to agree on, so the ANSI BASIC effort was split into two milestones.
[10] John G. Kemeny and Thomas E. Kurtz, the original designers of BASIC and members of the ANSI group, were critical of the process.
In some cases, an index 0 is more natural, so OPTION BASE 0 was added in later versions of the Dartmouth code so the same definition would have four slots, 0 to 3.
[11] Initially, the X3.60 group was targeting a summer 1982 date for the first technical review copy, which would be sent to the ANSI X3 committee in the fall.
[16] Referring to the issue of array bounds, it is noted that the committee agreed the adopted solution was "intolerable" and made plans to fix it "later".
[17] There is no evidence that any of the participants actually built a conforming version after the release of the standard and any mention of ongoing effort promptly disappears.
[19] On the large-systems side, the original use as a teaching language was being increasingly replaced by Pascal, as the external problems BASIC aimed to address, like interactivity and online editing, were now available in most systems.
Stephen Garland was asked to prepare a series of College Board tests for high school students, and wrote them in Pascal instead.
[21] It became clear to the Dartmouth participants in the ANSI group that the effort had no hope of being completed in any reasonable time period.
The language was not well received, with many reviews expressing the same concerns about feature bloat that had been raised about the Full BASIC standard.
CHAIN could also include an optional WITH followed by a list of parameters, in which case it was expected to return a value in a variable with the same name as the program (see "Structure", below).
[26] Many of the commonly used keywords found in Minimal or other dialects remained; PRINT, INPUT, DATA and READ for instance.
[27] Dartmouth BASIC introduced the REM statement for in-line comments and this was universally supported in other dialects.
[29] A more controversial change was that the LET keyword was now required for all assignments in order to make the parsing simpler, whereas in every other dialect LET was optional.
As BASIC did not have the concept of scope, many programs relied on the global behaviour and used variables to pass information in and out of subroutines.
Minimal had avoided this issue by only having numeric variables, but Full included strings as well, denoted using the dollar-sign, for instance A$.
[27] Full BASIC required decimal math for the default implementation of the floating point system.
As this was not universally supported in hardware, especially on minis and micros, it also added the OPTION ARITHMETIC NATIVE which indicates that math should be carried out using the system's default floating point implementation, whatever that may be.
[45] Full also added a new system to directly specify the lower and upper bounds using the TO keyword, for instance, DIM A(100 TO 200) which makes a one-dimensional 101-slot array.
[31] The list of primary built-in functions remained similar to previous versions of BASIC, including common examples like SQR or ABS.
For Full BASIC, the committee selected a variation on the concept introduced by HP, "string slicing".
[59] Like many BASICs of the era, Full added the TRACE ON command which would print out line numbers as the program executed.
[62] Around the same time that Full was being designed, a parallel effort was underway to define the Graphics Kernel System, or GKS.
[64] As images are often built up from common elements, Full added the new PICTURE block structure, which is otherwise similar to a SUB and invoked with DRAW rather than CALL.
Because the actual data from such devices tends to be multi-part, not something simple like a string or number, the real-time library also added the ability to define STRUCTUREs that could then be read or written as an atomic unit.
[1] Additionally, in BASIC-1 all fundamental keywords like PRINT were reserved words which simplified the parser, while in BASIC-2 they followed the ANSI pattern and could be used within user-created subroutines and functions.