# What is Full BASIC ?

## Full BASIC is the international standard.

Full BASIC is the current international standard for BASIC, which was established by the International Organization for Standardization (ISO) in 1991.
ISO Full BASIC is compatible with ANSI Full BASIC (American standard), and ECMA BASIC (European Standard).
Japanese Industrial Standard (JIS) Full BASIC was established in 1993.

## In what does Full BASIC differ from minimal BASIC ?

Numerical values are decimals.
Any numerical value is expressed as a decimal number. There are no errors that may be caused by expressing a decimal in a base-two number.

Computational results are accurate.
The accuracy in computation is rigorously prescribed. We can rely upon even the power operation and the supplied functions.

Supplied functions were reinforced.
Many supplied functions, such as the inverse sine and the inverse cosine, were added. The trigonometric functions allow degree measure.

Matrix operations are available.
Matrix operations are prepared. We can write data analysis programs easily.

Structured programming
As the structured control instructions are prepared, we can describe the flow of a program without depending on line numbers.

Structured exception handling
An Error raised during executing a program, such as an overflow or division by zero, is refereed to as an exception. As structured exception handling facilities are provided, we can describe exception handling plainly.

Procedure definitions allowing recursive calls
In addition to the supplied functions and DEF-lines, a user can define a function which is described in multi lines. You can use subprograms to define algorithms and invoke it. As a function or subprogram can be invoked within itself, recursive algorithms are easy to realize.

Graphics instructions which work on user-defined coordinates
Full BASIC has standardized graphics instructions. This avoids troubles such as graphics commands are different among different types of PC.
Graphics instructions work on user-defined coordinates. A User is not necessary to worry about pixel coordinates.

## Differences between Full BASIC and Microsoft BASIC

Full BASIC is not compatible with Microsoft BASIC or compatibles, such as N88-BASIC, Quick BASIC, Visual BASIC, etc. Although it is inconvenient that programs written in Microsoft syntax cannot be executed, there are some reasons that Full BASIC did not adopt it.

The syntax which is kind to beginners
Full BASIC does not compel beginners to know details of the syntax.
The syntax is designed as not to lead the discrepancy of interpretation between an implementation and beginners.
Thus beginners can learn the language by trial and error.

Only one type of numeric
There are no distinctions in numerical values such as integer type, single precision, double precision, and so on. Users are liberated from cramming the grammatical rules such as the rule that the product of integers is an integer.

Truth-values are not numerical values.
In the grammar of Microsoft BASIC, the result of comparison is a numerical value, -1 for true, 0 for false.
Thus, on Microsoft BASIC IF 1<A<3 THEN PRINT "Y" yields displaying "Y" regardless of the value of A.
On Full BASIC, truth values and numerical values are syntactically incompatible, and hence beginners are free from suffering for debugging such program as above.

No multi-statements are allowed.
Multi-statements are peculiar to Microsoft BASIC and compatibles, and have difficulty for beginners to use.
For example, two lines
100 IF A=1 THEN GOTO 200
110 IF A=2 THEN GOTO 300

and the combined line
100 IF A=1 THEN GOTO 200 : IF A=2 THEN GOTO 300

are different in meaning.

There are few reserved words
Almost all keywords are not reserved words. Because reserved words are few and any implementation is not allowed to enlarge the reserved words, such troubles as some program which runs on some computer do not run on another computer due to reserved words can not occur.
Furthermore, because function names on DEF-statements need not start with "FN", we can use simple and plain function names as f(x), g(x), and so on.