SmallBASIC
Encyclopedia
SmallBASIC is a BASIC
programming language
dialect with interpreter
s released as free software
under the GNU General Public License
version 2.
. It is a structured BASIC, and contains the most advanced math functions and operators found on graphing calculators such as matrices and Gauss-Jordan method.
, a small hand-held device. SmallBASIC was designed for portability, and is written in C
with separate modules containing any code that is unique to a particular platform.
SmallBASIC is intended to support the same sorts of applications supported by GW-BASIC
and QBASIC
on the IBM PC, with support for drawing Graphic Primitives
to the screen, creating sounds, String Manipulation
, and displaying text in various fonts. SmallBASIC also adds functions such as "File Save", "Save As", "Close File", and "Open File" to the Palm, a device with no native filesystem. SmallBASIC is also intended as a tool for mathematics, with built-in functions for Unit conversion
, Algebra
, Matrix math, Trigonometry
, Statistics
, and for two and three dimensional Equation Graphing
.
Other programming languages for PalmOS that are written in SmallBASIC include Exclamation and Brainfuck
, where memory, CPU cycles, and screen space are limited. The SmallBASIC graphics engine can use ASCII graphics (similar to ASCII art
) and therefore run many programs on pure text devices. SmallBASIC runs even on Palm OS wristwatches made by Fossil, Inc.
It is available for all POSIX
-Compliant operating systems (including Linux
, BSD, and UNIX
), DOS
/DJGPP
, Win32
, FLTK
, VTOS, Franklin eBookMan
, Cygwin
/MingW
, Helio/VT-OS, Android (work in progress), the Nokia
N770 Internet Tablet., and on any system that supports SDL
, FLTK
, SVGALib
, Linux framebuffer
, or Windows GUI
.
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....
dialect with interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...
s released as free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
version 2.
Description
The dialect is described by the authors as a second generation BASIC, and has a lot in common with QBasicQBasic
QBasic is an IDE and interpreter for a variant of the BASIC programming language which is based on QuickBASIC. Code entered into the IDE is compiled to an intermediate form, and this intermediate form is immediately interpreted on demand within the IDE. It can run under nearly all versions of DOS...
. It is a structured BASIC, and contains the most advanced math functions and operators found on graphing calculators such as matrices and Gauss-Jordan method.
Intended application
The "Small" prefix in the name SmallBASIC reflects the project's original intention of being used with the PalmPalm (PDA)
Palm handhelds were Personal Digital Assistants which ran the Palm OS. Palm devices have evolved from handhelds to smartphones which run Palm OS, WebOS, and Windows Mobile...
, a small hand-held device. SmallBASIC was designed for portability, and is written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
with separate modules containing any code that is unique to a particular platform.
SmallBASIC is intended to support the same sorts of applications supported by GW-BASIC
GW-BASIC
GW-BASIC was a dialect of the programming language BASIC developed by Microsoft from BASICA, originally for Compaq. It is compatible with Microsoft/IBM BASICA, but was disk based and did not need the ROM BASIC. It was bundled with MS-DOS operating systems on IBM PC compatibles by Microsoft...
and QBASIC
QBasic
QBasic is an IDE and interpreter for a variant of the BASIC programming language which is based on QuickBASIC. Code entered into the IDE is compiled to an intermediate form, and this intermediate form is immediately interpreted on demand within the IDE. It can run under nearly all versions of DOS...
on the IBM PC, with support for drawing Graphic Primitives
Geometric primitive
The term geometric primitive in computer graphics and CAD systems is used in various senses, with the common meaning of the simplest geometric objects that the system can handle . Sometimes the subroutines that draw the corresponding objects are called "geometric primitives" as well...
to the screen, creating sounds, String Manipulation
String (computer science)
In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet....
, and displaying text in various fonts. SmallBASIC also adds functions such as "File Save", "Save As", "Close File", and "Open File" to the Palm, a device with no native filesystem. SmallBASIC is also intended as a tool for mathematics, with built-in functions for Unit conversion
Conversion of units
Conversion of units is the conversion between different units of measurement for the same quantity, typically through multiplicative conversion factors.- Process :...
, Algebra
Algebra
Algebra is the branch of mathematics concerning the study of the rules of operations and relations, and the constructions and concepts arising from them, including terms, polynomials, equations and algebraic structures...
, Matrix math, Trigonometry
Trigonometry
Trigonometry is a branch of mathematics that studies triangles and the relationships between their sides and the angles between these sides. Trigonometry defines the trigonometric functions, which describe those relationships and have applicability to cyclical phenomena, such as waves...
, Statistics
Statistics
Statistics is the study of the collection, organization, analysis, and interpretation of data. It deals with all aspects of this, including the planning of data collection in terms of the design of surveys and experiments....
, and for two and three dimensional Equation Graphing
Graph of a function
In mathematics, the graph of a function f is the collection of all ordered pairs . In particular, if x is a real number, graph means the graphical representation of this collection, in the form of a curve on a Cartesian plane, together with Cartesian axes, etc. Graphing on a Cartesian plane is...
.
Other programming languages for PalmOS that are written in SmallBASIC include Exclamation and Brainfuck
Brainfuck
The brainfuck programming language is an esoteric programming language noted for its extreme minimalism. It is a Turing tarpit, designed to challenge and amuse programmers, and is not suitable for practical use...
Platforms
SmallBASIC was designed to run on minimal hardware. One of the primary platforms supported is Palm OSPalm OS
Palm OS is a mobile operating system initially developed by Palm, Inc., for personal digital assistants in 1996. Palm OS is designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management...
, where memory, CPU cycles, and screen space are limited. The SmallBASIC graphics engine can use ASCII graphics (similar to ASCII art
ASCII art
ASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable characters defined by the ASCII Standard from 1963 and ASCII compliant character sets with proprietary extended characters...
) and therefore run many programs on pure text devices. SmallBASIC runs even on Palm OS wristwatches made by Fossil, Inc.
Fossil, Inc.
Fossil, Inc. is a designer and manufacturer of clothing and accessories, primarily watches and jewelry, but also sunglasses, wallets, handbags, belts, shoes and clothing, based in Richardson, Texas, United States...
It is available for all POSIX
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
-Compliant operating systems (including Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, BSD, and UNIX
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
), DOS
DOS
DOS, short for "Disk Operating System", is an acronym for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions 95, 98, and Millennium Edition.Related...
/DJGPP
DJGPP
DJGPP is a development suite for 386+ IBM PC compatibles which supports DOS-enabled operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the popular GCC compiler, as well as mostly GNU utilities such as bash, find, tar, ls, awk, sed, and ld to DPMI...
, Win32
Windows API
The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name "Windows API" more accurately reflects its roots in 16-bit Windows and its support on...
, FLTK
FLTK
FLTK is a cross-platform GUI library developed by Bill Spitzak and others. Made with 3D graphics programming in mind, it has an interface to OpenGL, but it is also suitable for general GUI programming....
, VTOS, Franklin eBookMan
Franklin eBookMan
The Franklin eBookMan is a discontinued handheld device made to read ebooks. This gadget, made from 1999 until 2002, has standard PDA functions and can play and record sounds. It has a black on green touchscreen, contains 8 or 16 MB of RAM, and uses its own proprietary operating system...
, Cygwin
Cygwin
Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, software tools, and data of the Unix-like environment...
/MingW
MinGW
MinGW , formerly mingw32, is a native software port of the GNU Compiler Collection and GNU Binutils for use in the development of native Microsoft Windows applications; MinGW can function either as a cross compiler targeting Windows or as a native toolchain run on Windows itself...
, Helio/VT-OS, Android (work in progress), the Nokia
Nokia
Nokia Corporation is a Finnish multinational communications corporation that is headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki...
N770 Internet Tablet., and on any system that supports SDL
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....
, FLTK
FLTK
FLTK is a cross-platform GUI library developed by Bill Spitzak and others. Made with 3D graphics programming in mind, it has an interface to OpenGL, but it is also suitable for general GUI programming....
, SVGALib
SVGALib
SVGAlib is an open-source low-level graphics library which runs on Linux and FreeBSD and allows programs to change video mode and display full-screen graphics. Some popular games like Quake and Doom used it in their original releases....
, Linux framebuffer
Linux framebuffer
The Linux framebuffer is a graphic hardware-independent abstraction layer to show graphics on a computer monitor, typically on the console...
, or Windows GUI
Graphics Device Interface
The Graphics Device Interface is a Microsoft Windows application programming interface and core operating system component responsible for representing graphical objects and transmitting them to output devices such as monitors and printers....
.
Reception
- Tech Republic calls it "an excellent tool to begin programming with."
- ASCII-World says "SmallBASIC is an excellent tool for mathematics"
- David Mertz, Ph.D. and Andrew Blais, Ph.D. of Gnosis Software say "SmallBASIC has one of the better development interfaces [we have] reviewed. "
External links
- SmallBASIC's SourceForge entry
- SmallBASIC Home Page at SourceForge