Stable release | |
---|---|
Implementation language | BASIC |
License | GPL 3 |
Filename extensions | .bas |
Website | smallbasic.github.io |
SmallBASIC is a BASIC programming language dialect with interpreters released as free software under the GNU General Public License version 3 for Microsoft Windows, Linux and Android.
The dialect is described by the authors as a second generation BASIC, and has a lot in common with QBasic. SmallBASIC includes trigonometric, matrices and algebra functions, a built in IDE, a string library, system, sound, and graphic commands along with structured programming syntax.
The "Small" prefix in the name SmallBASIC reflects the project's original intention of being used with the Palm, 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. [2] [3]
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. [2] [3]
SmallBASIC was designed to run on minimal hardware. One of the primary platforms supported was Palm OS, [4] where memory, CPU cycles, and screen space were limited. The SmallBASIC graphics engine could use ASCII graphics (similar to ASCII art) and therefore ran many programs on pure text devices. SmallBASIC runs even on Palm OS wristwatches made by Fossil, Inc.
SmallBASIC is available for all POSIX-Compliant operating systems (including Linux, BSD, and UNIX), [5] DOS/DJGPP, [6] Win32, [7] FLTK, [8] VTOS, [8] Franklin eBookMan, [9] Cygwin/MingW, [10] Helio/VT-OS, [11] Android, [12] the Nokia N770 Internet Tablet., [13] and on any system that supports SDL, FLTK, SVGALib, Linux framebuffer, or Windows GUI.
The syntax of SmallBASIC has a lot in common with QBasic. Line numbers are not required, and statements are terminated by newlines. Multiple statements may be written on a single line by separating each statement with a colon (:)
An example "Hello, World!" program is:
PRINT"Hello, World!"
An example of how SmallBASIC allows to load an image file and display the image:
I=IMAGE("image_name.png")'Loads a png fileI.SHOW(100,100)'shows the image on screen at the coordinates 100,100
External modules can be written in C to extend the functionality provided by SmallBASIC. [14] Since version 12.20 modules for Raylib, Nuklear and WebSockets are included in the release. [15] Additionally a loadable module to access the GPIO connector of the Raspberry Pi exists. [16]
In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.
The Z shell (Zsh) is a Unix shell that can be used as an interactive login shell and as a command interpreter for shell scripting. Zsh is an extended Bourne shell with many improvements, including some features of Bash, ksh, and tcsh.
Apache Subversion is a version control system distributed as open source under the Apache License. Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS).
Dillo is a minimalistic web browser particularly intended for older or slower computers and embedded systems. It supports only plain HTML/XHTML and images over HTTP and HTTPS; scripting is ignored entirely. Current versions of Dillo can run on Linux, BSD, OS X, IRIX and Cygwin. Due to its small size, it was the browser of choice in several space-conscious Linux distributions. Dillo is free software, released under the GNU GPL-3.0-or-later.
CinePaint is a free and open source computer program for painting and retouching bitmap frames of films. It is a fork of version 1.0.4 of the GNU Image Manipulation Program (GIMP). It enjoyed some success as one of the earliest open source tools developed for feature motion picture visual effects and animation work. The main reason for this adoption over mainline GIMP was its support for high bit depths which can be required for film work. The mainline GIMP project later added high bit depths in GIMP 2.9.2, released November 2015. It is free software under the GPL-2.0-or-later. In 2018, a post titled "CinePaint 2.0 Making Progress" announced progress, but, as of 2024, version 2.0 has not been released.
Gambas is the name of an object-oriented dialect of the BASIC programming language, as well as the integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a recursive acronym for Gambas Almost Means Basic. Gambas is also the word for prawns in the Spanish, French, and Portuguese languages, from which the project's logos are derived.
Compiere is an open-source ERP and CRM business solution for Small and Medium-sized Enterprises (SME) in distribution, retail, service, and manufacturing. Compiere is distributed by Consona Corporation and through a Partner Network, who are a collection of trained and authorized business partners.
wxWidgets is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with no significant code changes. A wide choice of compilers and other tools to use with wxWidgets facilitates development of sophisticated applications. wxWidgets supports a comprehensive range of popular operating systems and graphical libraries, both proprietary and free.
GNU GRUB is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.
DJ's GNU Programming Platform (DJGPP) is a software development suite for Intel 80386-level and above, IBM PC compatibles which supports DOS operating systems. It is guided by DJ Delorie, who began the project in 1989. It is a port of the GNU Compiler Collection (GCC), and mostly GNU utilities such as Bash, find, tar, ls, GAWK, sed, and ld to DOS Protected Mode Interface (DPMI). Supported languages include C, C++, Objective-C/C++, Ada, Fortran, and Pascal.
Irrlicht is an open-source game engine written in C++. It is cross-platform, officially running on Windows, macOS, Linux and Windows CE and due to its open nature ports to other systems are available, including FreeBSD, Xbox, PlayStation Portable, Symbian, iPhone, AmigaOS 4, Sailfish OS via a Qt/QML wrapper, and Google Native Client.
VLC media player is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desktop operating systems and mobile platforms, such as Android, iOS and iPadOS. VLC is also available on digital distribution platforms such as Apple's App Store, Google Play, and Microsoft Store.
Fast Light Toolkit (FLTK) is a cross-platform widget library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Made to accommodate 3D graphics programming, it has an interface to OpenGL, but it is also suitable for general GUI programming.
FontForge is a FOSS font editor which supports many common font formats. Developed primarily by George Williams until 2012, FontForge is free software and is distributed under a mix of the GNU General Public License Version 3 and the 3-clause BSD license. It is available for operating systems including Linux, Windows, and macOS, and is localized into 12 languages.
K9Copy is a free and open-source DVD backup and DVD authoring program for Unix-like operating systems such as Linux and BSD. It is licensed under the GNU General Public License.
The Environment Modules system is a tool to help users manage their Unix or Linux shell environment, by allowing groups of related environment-variable settings to be made or removed dynamically.
GLtron is a 3D snake game based on the light cycle portion of the film Tron. The game is free and open-source software and has been ported to many mobile and non-mobile operating systems such as Windows, MacOS, Symbian and Android over the years.
NanoLinux is an open source, free and very lightweight Linux distribution that requires only 14 MB of disk space including tiny versions of the most common desktop applications and several games. It is based on the Core version of the Tiny Core Linux distribution and uses Busybox, Nano-X instead of X.Org, FLTK 1.3.x as the default GUI toolkit, and SLWM. The included applications are mainly based on FLTK.
Fldigi is a free and open-source program which allows an ordinary computer's sound card to be used as a simple two-way data modem. The software is mostly used by amateur radio operators who connect the microphone and headphone connections of an amateur radio SSB or FM transceiver to the computer's headphone and microphone connections, respectively.
Art of Illusion is a free software, and open source software package for making 3D graphics.
SmallBASIC.