{{stub}}{{language|S-BASIC}}
{{implementation|BASIC}}
S-BASIC (the S stands for "structured") was a native-code 
compiler for an ALGOL-like dialect of the BASIC programming 
language, and ran on 8-bit microcomputers using the Z80 CPU and 
the CP/M operating system. (There are a number of CP/M or
Z80 emulators that will allow the compiler to run on Windows
or Linux systems today.) The language and the compiler were 
developed during the period 1979-1981 by Gilbert Ohnysty, who saw 
a need for a true native-code compiler and a language 
implementation that preserved BASIC's ease of use and 
straight-forward syntax, while incorporating the syntactic and 
control-flow features associated with modern programming languages,
including local variables, recursion, statement grouping with 
BEGIN and END, looping with WHILE and REPEAT statements, 
multi-way decisions with a CASE statement, and named functions 
and procedures.  S-BASIC also incorporates a number of 
miscellaneous useful features: COMMENT and TEXT statements that 
eliminate the need for multiple REM or PRINT statements, a FIXED 
(binary coded decimal) variable type for financial calculations, 
BASED variables that may be positioned at run-time, and a 
powerful $INCLUDE command that allows functions and procedures to 
be gathered into library files and selectively extracted at 
compile time. Line numbers were not required unless the line was the target of a GOTO or GOSUB statement and were in any event treated simply as labels. All parameters to functions and procedures were passed by value; arrays, unfortunately, could not be passed as parameters.