Basic4GL

Last updated
Basic4GL
Basic4GL Banner.jpg
Paradigm Procedural
Developer Tom Mulgrew
First appeared2002;22 years ago (2002)
Stable release
v2.6.4 / July 30, 2017;6 years ago (2017-07-30)
OS Windows, Linux
License GPL (free software)
Website www.basic4gl.net
Influenced by
QuickBASIC, GW-BASIC

Basic4GL (B4GL; from Basic for openGL) is an interpreted, open source version of the BASIC programming language which features support for 3D computer graphics using OpenGL. While being interpreted, it is also able to compile programs on top of the virtual machine to produce standalone executable programs.

Contents

It uses a syntax similar to traditional dialects of BASIC and features an IDE and a very thorough and comprehensive debugger.

Basic4GL is not designed to compete with programming languages such as C++; it was intended to replace older languages such as QBasic or GFA BASIC.

Basic4GL features the usual commands that you would expect to find in a version of BASIC such as...

It also includes a few features that C programmers will be familiar with, such as support for pointers, structures and most importantly the entire OpenGL v1.1 API.

History

Tom Mulgrew created Basic4GL from a desire to be able to run OpenGL functions easily and quickly, [1] without all of the setup normally required in a language such as c++ and be more stable. He built a virtual machine similar to one used at his workplace. It started simply, with few OpenGL functions and minimal other functionality. The first version was relatively popular. [1]

The first version was named GLBasic, [1] which also happens to be a commercial programming language. The issue was civilly resolved, and Mulgrew's project renamed Basic4GL.

Mulgrew set himself the goal to expand Basic4GL to the point that it could load and display and MD2 model. [1]

Versions

2.3.0 - Added networking capability [2]

2.3.5 - Support for code compilation at runtime [3]

2.4.2 - Changed sound system from OpenAL to Audiere [4]

2.4.3 - Support for Plugin DLLs added [5]

2.5.0 - Support for functions added [6]

2.5.8 - Support for hexadecimal numbers [7]

Versions

Basic4GL was designed to run on the Windows operating system, but versions were being developed for Linux and Mac OS. Meanwhile, Gambas also features an OpenGL 2.1 component, with GL bindings also available for FreeBASIC and QB64.

Basic4GL for Linux

Basic4GL was being ported over to Linux. The major difference between Basic4GL for Windows and the attempted Linux version is that it uses the SDL library rather than Windows specific libraries to initialize an OpenGL enabled window.

Basic4GL for Mac

A version for Mac OS was also under development. No working versions have been released.

Basic4SDL

Based on the Linux build, a project to create an extended version of Basic4GL that wraps more closely to the SDL library (not to be confused with SDLBasic). [8]

Basic4Games

A successor to Basic4GL was also being developed dubbed "Basic4Games". Only one preview has been released.

Basic4GLj

A port of the language to the Java virtual machine. [9]

Example code

DimAForA=0To4Printr"Hello "; ANext

When the above code is entered into Basic4GL and executed, the following is output to the monitor screen.

Hello 0 Hello 1 Hello 2 Hello 3 Hello 4 

Features

Support for sound and music

When Basic4GL was first released it could only play sounds but in 2006 support for music was added using the Open Al sound engine but later replaced with Audiere.

Functions and subroutines

When Basic4GL was first released it had no support for functions. That changed however when version 2.5.0 was released in January 2008. Now Basic4GL has full support for local variables, parameters, forward declaration and recursion.

Plugins

In August 2006 support for Plugin DLLs was added to Basic4GL. This means that you can write your own commands and include them in the Basic4GL programming language, all you need is a C++ Compiler. Plugins expand the capabilities of Basic4GL and many exist, providing such things as physics engines, TrueType Fonts, collision detection etc.

SourceForge

Both Basic4GL for Windows and the new Linux version have been placed on SourceForge, this means that people are free to develop the languages and make improvements to them.

See also

Related Research Articles

<span class="mw-page-title-main">Blitz BASIC</span>

Blitz BASIC is the programming language dialect of the first Blitz compilers, devised by New Zealand-based developer Mark Sibly. Being derived from BASIC, Blitz syntax was designed to be easy to pick up for beginners first learning to program. The languages are game-programming oriented but are often found general purpose enough to be used for most types of application. The Blitz language evolved as new products were released, with recent incarnations offering support for more advanced programming techniques such as object-orientation and multithreading. This led to the languages losing their BASIC moniker in later years.

<span class="mw-page-title-main">Simple DirectMedia Layer</span> Free software multimedia library

Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.

<span class="mw-page-title-main">Wine (software)</span> Windows compatibility software

Wine is a free and open-source compatibility layer to allow application software and computer games developed for Microsoft Windows to run on Unix-like operating systems. Developers can compile Windows applications against WineLib to help port them to Unix-like systems. Wine is predominantly written using black-box testing reverse-engineering, to avoid copyright issues. No code emulation or virtualization occurs. Wine is primarily developed for Linux and macOS.

<span class="mw-page-title-main">PureBasic</span>

PureBasic is a commercially distributed procedural computer programming language and integrated development environment based on BASIC and developed by Fantaisie Software for Windows, Linux, and macOS. An Amiga version is available, although it has been discontinued and some parts of it are released as open-source. The first public release of PureBasic for Windows was on 17 December 2000. It has been continually updated ever since.

<span class="mw-page-title-main">Gambas</span> Integrated development environment

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.

<span class="mw-page-title-main">SmallBASIC</span> BASIC programming language dialect with interpreters released as free software

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.

<span class="mw-page-title-main">7-Zip</span> Open-source file archiver

7-Zip is a free and open-source file archiver, a utility used to place groups of files within compressed containers known as "archives". It is developed by Igor Pavlov and was first released in 1999. 7-Zip has its own archive format called 7z, but can read and write several others.

<span class="mw-page-title-main">Delphi (software)</span> General-purpose programming language and a software product

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

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.

<span class="mw-page-title-main">FreeBASIC</span> BASIC dialect

FreeBASIC is a free and open source multiplatform compiler and programming language based on BASIC licensed under the GNU GPL for Microsoft Windows, protected-mode MS-DOS, Linux, FreeBSD and Xbox. The Xbox version is no longer maintained.

<span class="mw-page-title-main">AutoHotkey</span> Automation-focused scripting language for Windows

AutoHotkey is a free and open-source custom scripting language for Microsoft Windows, initially aimed at providing easy keyboard shortcuts or hotkeys, fast macro-creation and software automation that allows users of most levels of computer skill to automate repetitive tasks in any Windows application. User interfaces can easily be extended or modified by AutoHotkey. The AutoHotkey installation includes its own extensive help file, and web-based documentation is also available.

<span class="mw-page-title-main">Compiz</span> Compositing window manager for the X Window System

Compiz is a compositing window manager for the X Window System, using 3D graphics hardware to create fast compositing desktop effects for window management. Effects, such as a minimization animation or a cube workspace, are implemented as loadable plugins. Because it conforms to the ICCCM conventions, Compiz can be used as a substitute for the default Mutter or Metacity, when using GNOME Panel, or KWin in KDE Plasma Workspaces. Internally Compiz uses the OpenGL library as the interface to the graphics hardware.

<span class="mw-page-title-main">Vala (programming language)</span> Programming language

Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.

XBLite is a free Open Source BASIC programming language compiler and development system. It was started in 2001 by David Szafranski in order to provide a Windows exclusive version of the XBasic dialect. XBLite is released under the GNU GPL licensing scheme, Standard libraries are released under the GNU LGPL licensing scheme.

<span class="mw-page-title-main">GLBasic</span> Commercial BASIC programming language

GLBasic is a commercial BASIC programming language that can compile to various platforms including Windows, Linux, Mac OS X, and some handheld devices. The language is designed to be simple and intuitive.

Basic4ppc is a programming language originally for Pocket PC handheld computers running Windows Mobile operating system, by Anywhere Software. Since 2014, B4x was renamed, and currently, 2023, supports multiple devices and their OS, including desktop and mobile solutions with development adaptions for these environments. The language is based on a BASIC-like syntax, taking advantage of Microsoft's .NET technology, to allow additional libraries, graphical user interface design of windows forms, rapid application development (RAD), and .NET framework compatible compilation. The language implements a unique way of adding objects to a program without being object-oriented. Its advantages are simplicity, development pace and the integration with .NET framework. A special version of the integrated development environment (IDE) allows developing straight onto the Windows Mobile device or. With the demise of Windows Mobile operating system and the devices running it Basic4PPC came to the end of its life in about 2012. For owners of Basic4PPC it remains a useful Windows-desktop BASIC compiler as it runs code directly in the Windows environment and it can compile a project to a Windows 'exe' file for use as a Windows program.

<span class="mw-page-title-main">Hollywood (programming language)</span> Programming language

Hollywood is a commercially distributed programming language developed by Andreas Falkenhahn which mainly focuses on the creation of multimedia-oriented applications. Hollywood is available for AmigaOS, MorphOS, WarpOS, AROS, Windows, macOS, Linux, Android, and iOS. Hollywood has an inbuilt cross compiler that can automatically save executables for all platforms supported by the software. The generated executables are completely stand-alone and do not have any external dependencies, so they can also be started from a USB flash drive. An optional add-on also allows users to compile projects into APK files.

<span class="mw-page-title-main">Simple and Fast Multimedia Library</span> Graphics and Multimedia Library written in C++

Simple and Fast Multimedia Library (SFML) is a cross-platform software development library designed to provide a simple application programming interface (API) to various multimedia components in computers. It is written in C++ with bindings available for Ada, C, Crystal, D, Euphoria, Go, Java, Julia, .NET, Nim, OCaml, Python, Ruby, and Rust. Experimental mobile ports were made available for Android and iOS with the release of SFML 2.2.

<span class="mw-page-title-main">Natron (software)</span> Open source compositing software

Natron is a free and open-source node-based compositing application. It has been influenced by digital compositing software such as Avid Media Illusion, Apple Shake, Blackmagic Fusion, Autodesk Flame and Nuke, from which its user interface and many of its concepts are derived.

References

  1. 1 2 3 4 Mulgrew, Tom. "Any Questions?". ProBoards. Retrieved 14 June 2011.
  2. Mulgrew, Tom. "v2.3.0 released". ProBoards. Retrieved 14 June 2011.
  3. Mulgrew, Tom. "Version 2.3.5 released". ProBoards. Retrieved 14 June 2011.
  4. Mulgrew, Tom. "Basic4GL v2.4.2 is released". ProBoards. Retrieved 14 June 2011.
  5. Mulgrew, Tom. "Basic4GL v2.4.3 is released". ProBoards. Retrieved 14 June 2011.
  6. Mulgrew, Tom. "Basic4GL v2.5.0". ProBoards. Retrieved 14 June 2011.
  7. Mulgrew, Tom. "Home". Archived from the original on 21 July 2011. Retrieved 18 July 2011.
  8. Wybiral (2007-02-18). "Basic". Ubuntu Forums . Basic4SDL: It's mostly an OpenGL+SDL playground for 3d graphics and such... But it works on linux and stays pretty true to the BASIC syntax.
  9. Proven, Liam (2023-03-28). "Nostalgic for VB? BASIC is anything but dead". The Register . Retrieved 2023-09-27. While Basic4GL has gone quiet, a port of it to the JVM, Basic4GLj is in active development.