S-BASIC

S-BASIC (for Structured Basic) was a "structured" BASIC variant, distributed with Kaypro CP/M systems.[1][2] It was made by Topaz Programming is distributed by Micro-Ap (San Ramon, CA).[3]

SBasic was compatible with the syntax of Basic, a programming language commonly used in the 1970s through the 1980s, as well as Fortran77. However, the language relaxed many of the requirements of Basic and had more flexibility than Fortran. For instance, line numbers were optional, and permitted non-numeric characters. In addition, SBasic offered developers structured programming concepts, including recursion and nesting. Many PL-1 programs could be compiled with little modification, though SBasic did not offer an extensive function library.

Among the more advanced features was the ability to "base" a variable or array, making the memory location dynamic and modifiable during execution. SBasic programs had the ability to access memory areas reserved for the operating system unless prohibited from doing so by the operating system itself. (Kaypro's CP/M had no such prohibitions.) This enabled direct utilization and modification of DMA and other memory areas. This feature also permitted a program to modify itself at run-time. This capability also allowed modifying the instruction pointer, so a program could effectively link other executable modules that were read during execution as data.

Unlike Basic interpreters that stored "p-code" that was parsed by an execution module, SBasic was a two-pass compiler, ultimately producing .com files that were executable. The language was written in a subset of itself and compiled using a .com kernel, then stored on diskette (or hard drive on the last KayPro model). The source was distributed with some KayPro models. This encouraged open-source-like modification of the language, with some early pre-Internet user groups exchanging physical diskettes by regular mail.

Not to be confused with the namesake SBasic (S for Spectral Basic) Programming Language for the commercial Spectral UV-Visible software.[4][5]

Reception

Jerry Pournelle in 1983 wrote that SBASIC "is quite nice", stating that it "rivals CB-80". He presumed that Kaypro users would "will begin by using Microsoft MBASIC, then start translating their programs into S-BASIC and learn more about structured programming". Pournelle added, "If I had to give an award for the most unreadable computer document I've ever seen, the original S-BASIC manual would win hands down"; however, Kaypro had rewritten it and "is a great deal more sensible".[2]

gollark: The 15GB figure is for without images. With images (probably downscaled) my copy is 80GB.
gollark: Wikipedia fits into 15GB (minus user pages etc) and it uses horrible inefficient XML.
gollark: If you drop the images and HTML formatting and whatever else most ebooks contain, and do compression better than ZIP does, you could probably reach some *ridiculous* compression ratios.
gollark: An average ebook is something like 1MB and that's for 100000 words + cover image.
gollark: If it's *anything* but "basically 100% of the day" you need batteries.

References

  1. "Archived copy". Archived from the original on 2010-12-08. Retrieved 2009-04-16.CS1 maint: archived copy as title (link)
  2. Pournelle, Jerry (June 1983). "Zenith Z-100, Epson QX-10, Software Licensing, and the Software Piracy Problem". BYTE. 8 (6). p. 411. Retrieved 20 October 2013.
  3. Miller, A.R. (April 1981), "SBasic: A Structured, Compiling Language for CP/M", Interface Age, Cerritos, California: McPheters, Wolfe & Jones, 6 (4): 92–96, 0-71486-02631 04, archived from the original on February 23, 2012, retrieved 21 May 2009
  4. UV-Visible spectrophotometer - Spectral Software, retrieved 21 May 2009
  5. Paul, Liberatore, Simplifying Routine Analyses using Spectral SBasic Programming Language—Chlorophyll Analysis (PDF), GBC Scientific Application Notes—UV-Visible
Notes


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.