Hubbry Logo
search
logo
UBASIC
UBASIC
current hub

UBASIC

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
UBASIC

UBASIC is a freeware (public domain software without source code) BASIC interpreter written by Yuji Kida at Rikkyo University in Japan, specialized for mathematical computing.

UBASIC is a ready-to-run language that does not need to be set up with another advanced language, which is a common problem with multi-digit math languages. It runs in DOS or in a DOS box under DOS shell, Microsoft Windows, etc. It is specialized for number theory, primality testing, factoring, and large integers (up to 2600 digits). Being an implementation of BASIC makes it easy to read programs without having to do extensive study, as BASIC is a language that has a structure and syntax close to ordinary algebra. The help files have articles and lessons for beginners.

UBASIC has a built-in on-line editor with several aids for debugging. It can show cross references to calling lines, lines containing a variable, and lists of variables/arrays. It can renumber lines, change variable names, and append additional programs. It can trace, single step, and time by milliseconds to help determine the fastest way to do highly repetitive sections. It can redefine function keys, either to provide an easy one-keypress function or to prevent a standard function from being accidentally used when it shouldn't. It can shell to DOS or execute a DOS command. It can convert between single-byte character set and double-byte character set, but to have much use for this, the host computer would likely need an aware operating system. Documents may be added to or modified in UBHELP.HLP.

Primality testing with APRT-CLE (to 884 digits) (it is best to run this under UBASIC version 8.8F or later): 500 digits said to take 5 hours on a PP-200, 150 digits takes about 16 minutes on a 486-100, about 2¼ minutes on a K6@233; 250 digits takes about 13½ minutes on a K6@233. Recent machines can be up to 10 times faster. APRT-CLE is often the algorithm of choice for testing primality of integers within its range.

Factoring with programs such as ECMX is quite fast. It can find factors with the number of digits in the low-20s fairly easily, mid-20s somewhat less easily, and upper-20s with lower chance of success. It has found a 30-digit factor. (Finding factors with the elliptic curve method is always chancy for larger factors. The greater the number of curves that are tested the greater the chances of success, but the number needed (on average, one can sometimes get lucky or unlucky) increases rapidly with the size of factors. It is always best to use the fastest machine available. ECMX uses the accepted standards for limits of when to stop working with one curve and switch to the next. It has preliminary primality testing, finding small factors, and powers.

Being interpreted allows modifying programs and then restarting (using GOTO) in the middle of a run, even multi-day, without losing accumulated data. Stopping is not recommended unless a program has been saving the data safely somewhere, or if users forgot to write any way to save data when quitting (perhaps they did not expect to find any and were trying to prove it). When doing anything that might lose valuable data, or if you need to do something else for a time, then you can FREEZE the current program to a file and later MELT it (as long as the lower memory configuration is the same).

UBASIC has line numbers. It does not use indentation to control structure. It has subroutines and user functions with passed parameters and local variables. Parameters can be passed by value or by name. User functions and subroutines may be passed as parameters. It has limited labels. It has various options for conditional functions. Users can indent as much as needed or not at all, and can have as much structure as wanted or spaghetti code. It is a mistake to consider UBASIC as "not modern" (as might be inferred by a reader of articles that confuse indentation with structure and don't favor line numbers). Having line numbers allows easy jumping to an intermediate point in a routine, which can sometimes save duplicating lines.

UBASIC version 8 has the high-precision real and complex arithmetic (up to 2600 digits) of prior versions, and adds exact rational arithmetic and arithmetic of single-variable polynomials with complex, rational, or modulo p coefficients, as well as string handling and limited list handling abilities. In also has context-sensitive on-line documentation (read UBHELP.DOC for information). The file that this uses is ASCII and can be printed for a paper document.

See all
User Avatar
No comments yet.