S-BASIC

Last updated

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 S-BASIC "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]

Related Research Articles

BASIC Family of programming languages

BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use. The original version was designed by John G. Kemeny and Thomas E. Kurtz and released at Dartmouth College in 1964. They wanted to enable students in fields other than science and mathematics to use computers. At the time, nearly all use of computers required writing custom software, which was something only scientists and mathematicians tended to learn.

Fortran General-purpose programming language

Fortran is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.

True BASIC

True BASIC is a variant of the BASIC programming language descended from Dartmouth BASIC—the original BASIC. Both were created by college professors John G. Kemeny and Thomas E. Kurtz.

Turbo Pascal

Turbo Pascal is a software development system that includes a compiler and an integrated development environment (IDE) for the Pascal programming language running on CP/M, CP/M-86, and DOS. It was originally developed by Anders Hejlsberg at Borland, and was notable for its extremely fast compiling times. Turbo Pascal, and the later but similar Turbo C, made Borland a leader in PC-based development.

CP/M Discontinued family of computer operating systems

CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/85-based microcomputers by Gary Kildall of Digital Research, Inc. Initially confined to single-tasking on 8-bit processors and no more than 64 kilobytes of memory, later versions of CP/M added multi-user variations and were migrated to 16-bit processors.

In computer science, an interpreter is a computer program that directly executes instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of tpoiujhygtfdsqwertyuiope following strategies for program execution:

  1. Parse the source code and perform its behavior directly;
  2. Translate source code into some efficient intermediate representation and immediately execute this;
  3. Explicitly execute stored precompiled code made by a compiler which is part of the interpreter system.

Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms.

Kaypro Corporation was an American home and personal computer manufacturer of the 1980s. The company was founded by Non-Linear Systems (NLS) to compete with the popular Osborne 1 portable microcomputer. Kaypro produced a line of rugged, "luggable" CP/M-based computers sold with an extensive software bundle which supplanted its competitors and quickly became one of the top-selling personal computer lines of the early 1980s.

Osborne 1 Early portable microcomputer

The Osborne 1 is the first commercially successful portable microcomputer, released on April 3, 1981 by Osborne Computer Corporation. It weighs 10.7 kg (24.5 lb), cost US$1,795, and runs the CP/M 2.2 operating system. It is powered from a wall socket, as it has no on-board battery, but it is still classed as a portable device since it can be hand-carried when packed.

In computer programming, a global variable is a variable with global scope, meaning that it is visible throughout the program, unless shadowed. The set of all global variables is known as the global environment or global state. In compiled languages, global variables are generally static variables, whose extent (lifetime) is the entire runtime of the program, though in interpreted languages, global variables are generally dynamically allocated when declared, since they are not known ahead of time.

Dartmouth BASIC is the original version of the BASIC programming language. It was designed by two professors at Dartmouth College, John G. Kemény and Thomas E. Kurtz. With the underlying Dartmouth Time Sharing System (DTSS), it offered an interactive programming environment to all undergraduates as well as the larger university community.

The Dartmouth Time-Sharing System (DTSS) was an operating system first developed at Dartmouth College between 1963 and 1964. It was the first successful large-scale time-sharing system to be implemented, and was also the system for which the BASIC language was developed. DTSS was developed continually over the next decade, reimplemented on several generations of computers, and finally shut down in 1999.

The history of programming languages spans from documentation of early mechanical computers to modern tools for software development. Early programming languages were highly specialized, relying on mathematical notation and similarly obscure syntax. Throughout the 20th century, research in compiler theory led to the creation of high-level programming languages, which use a more accessible syntax to communicate instructions.

MBASIC is the Microsoft BASIC implementation of BASIC for the CP/M operating system. MBASIC is a descendant of the original Altair BASIC interpreters that were among Microsoft's first products. MBASIC was one of the two versions of BASIC bundled with the Osborne 1 computer. The name "MBASIC" is derived from the disk file name MBASIC.COM of the BASIC interpreter.

Epson QX-10

The Epson QX-10 is a microcomputer running CP/M or TPM-III which was introduced in 1983. It was based on a Zilog Z80 microprocessor, running at 4 MHz, provided up to 256 KB of RAM organized in four switchable banks, and included a separate graphics processor chip (µPD7220) manufactured by NEC to provide advanced graphics capabilities. In the USA and Canada, two versions were launched; a basic CP/M configuration with 64 KB RAM and the HASCI configuration with 256 KB RAM and the special HASCI keyboard to be used with the bundled application suite, called Valdocs. The European and Japanese versions were like the CP/M configurations. TPM-III was used for Valdocs and some copy protected programs like Logo Professor.

In computer programming, a runtime system, also called runtime environment, primarily implements portions of an execution model. This is not to be confused with the runtime lifecycle phase of a program, during which the runtime system is in operation.

In computing, a parallel programming model is an abstraction of parallel computer architecture, with which it is convenient to express algorithms and their composition in programs. The value of a programming model can be judged on its generality: how well a range of different problems can be expressed for a variety of different architectures, and its performance: how efficiently the compiled programs can execute. The implementation of a parallel programming model can take the form of a library invoked from a sequential language, as an extension to an existing language, or as an entirely new language.

CUDA Parallel computing platform and programming model

CUDA is a parallel computing platform and application programming interface (API) model created by Nvidia. It allows software developers and software engineers to use a CUDA-enabled graphics processing unit (GPU) for general purpose processing – an approach termed GPGPU. The CUDA platform is a software layer that gives direct access to the GPU's virtual instruction set and parallel computational elements, for the execution of compute kernels.

Oracle Developer Studio, formerly named Oracle Solaris Studio, Sun Studio, Sun WorkShop, Forte Developer, and SunPro Compilers, is Oracle Corporation's flagship software development product for the Solaris and Linux operating systems. It includes optimizing C, C++, and Fortran compilers, libraries, and performance analysis and debugging tools, for Solaris on SPARC and x86 platforms, and Linux on x86/x64 platforms, including multi-core systems.

The OS/360 Object File Format is the standard object module file format for the IBM DOS/360, OS/360 and VM/370, Univac VS/9, and Fujitsu BS2000 mainframe operating systems. In the 1990s, the format was given an extension with the XSD-type record for the MVS Operating System to support longer module names in the C Programming Language. This format is still in use by the z/VSE operating system. In contrast, it has been superseded by the GOFF file format on the MVS Operating System and on the z/VM Operating System. Since the MVS and z/VM loaders will still handle this older format, some compilers have chosen to continue to produce this format instead of the newer GOFF format.

References

  1. "Archived copy". Archived from the original on 2010-12-08. Retrieved 2009-04-16.CS1 maint: archived copy as title (link)
  2. 1 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 2009Cite has empty unknown parameter: |coauthors= (help)
  4. UV-Visible spectrophotometer - Spectral Software , retrieved 21 May 2009Cite has empty unknown parameters: |month=, |dateformat=, and |coauthors= (help)
  5. Paul, Liberatore, Simplifying Routine Analyses using Spectral SBasic Programming Language—Chlorophyll Analysis (PDF), GBC Scientific Application Notes—UV-Visible
Notes