{{stub}} {{language|CBASIC}}
CBASIC was the commercial outgrowth of the BASIC-E compiler
written by Gordon Eubanks as his Master's thesis while a 
student at the Naval Postgraduate School. CBASIC -- which
was marketed for both 8 and 16 bit CP/M systems -- differed from
many of the BASIC dialects of the day in two major respects:
(1) line numbers were not required unless the statement was
the target of a GOTO or GOSUB statement (and were in any event
treated simply as labels) and (2) real (floating point) variables
were implemented as 14-digit binary coded decimal (BCD), which,
particularly in business and accounting applications, avoided round-off 
errors which purely binary floating point computations were prone
to. Integer and string variables (which required % and $ suffixes,
respectively) were also provided, as well as multi-dimensional arrays.
Identifiers could be of any length, although only the first 31
characters were significant. CBASIC supported multiline user-defined 
functions with parameters passed by value but did not support recursion.
CBASIC was implemented as a compiler-interpreter: the source code was
compiled into an intermediate form, which could then be executed by
invoking a run-time interpreter. A companion compiler, [[CB80]], was
offered that compiled to machine code.