| CBASIC | |
|---|---|
The workflow of compiler and interpreter | |
| Developer | Gordon Eubanks |
| First appeared | 1976; 50 years ago (1976) |
| Implementation language | PL/M |
| OS | CP/M |
CBASIC is acompiled version of theBASICprogramming language written for theCP/Moperating system byGordon Eubanks in 1976–1977. It is an enhanced version ofBASIC-E.[1][2]
BASIC-E was Eubank's master's thesis project.[1][2] It was developed inPL/M by Eubanks forGary Kildall's new CP/M operating system while both men were at theNaval Postgraduate School inMonterey, California.[1][2] BASIC-E was based on a BASIC compiler originally written by Gary Kildall in 1974.[1][2]
Because it was developed at public expense, BASIC-E is in thepublic domain and cannot be marketed exclusively.[1][2][3]Seymour Rubinstein, the marketing director ofIMSAI contacted Eubanks and asked him to create a saleable version under contract for theIMSAI 8080microcomputer.[4] Eubanks developed CBASIC in his spare time while he was still a naval officer stationed on the submarineUSSGeorge Washington atVallejo, California. He retained joint ownership of the program with IMSAI, and soldCB80 through his own company,Compiler Systems until it was acquired byDigital Research[5][1][2] in 1981.
BASIC-E and early versions of CBASIC compiledsource code into an intermediatep-code file, which was then executed by a separaterun-time interpreter program. CBASIC could execute in a minimum of 24 KB of memory. Line numbers in the program source were optional, unless needed as a label for a program jump. CBASIC proved very popular because it incorporated 14-digitbinary-coded decimal (BCD) math which eliminatedMBASIC's rounding errors that were sometimes troublesome foraccounting.
CBASIC2 adds the following features:
InfoWorld in 1980 described CBASIC as the "primary language for the development of commercial CP/M applications", because of developers' widespread familiarity with BASIC and ability to distribute royalty-free binaries without source code to CBASIC owners. The magazine stated that the language had become popular "despite serious drawbacks", including the requiredpreprocessor for interpreted source code making debugging difficult, slow speed, and incompatible changes.[6] Despite noting "irritants",Jerry Pournelle in December 1980 praised CBASIC's design and documentation. He said thatBASCOM produced much faster binaries without CBASIC's awkward edit-compile-run-debug loop, however.[7] In May 1982 he said that "advantages abound" in CB80 compared to BASCOM, such as the ability to redimension arrays, and superiorgarbage collection. Pournelle assured readers that the documentation was far superior to the usual Digital Research manuals. He denounced, however, the $2000 annual fee to sell software using CB80 as "sheer madness".[5] In September 1982 Pournelle said that CB80 "remains a real competitor toPascal andPL/I [with] few of the inherent defects of BASIC", citing itslocal variables and Pascal-likefunctions, and approved of its new, freer licensing.[8] He said in May 1983 that Digital Research had "practically ruin[ed]" Eubanks' CBASIC manual after acquiring his company, but that the new edition was much better.[9]