Penguin

Acronym for Beginners All-Purpose Symbolic Instruction Code (supposedly a Backronym, made up after the name BASIC was already in use).

10 PRINT "This is a"
20 PRINT "Haiku program"
30 GOTO 10

A simplistic interactive ProgrammingLanguage designed at Dartmouth University in the 1960's to teach mathematics students how to program. They would go on to programming in Fortran IV, so this is the language that BASIC most closely resembles.

Not to be confused with VisualBasic, a wildly extended dialect of BASIC that only resembles its ancestor remotely and is still part of MicrosoftCorporation's portfolio and strategy. Also QuickBASIC from Microsoft (Not to be confused with QBASIC which was a very cutdown version included with DOS 5 mainly used as the line editor for DOS. QuickBASIC for DOS was a compiler with a powerful IDE and lots of built in commands and functions. Both QuickBASIC and VisualBASIC are more stuctured langauge than the original BASIC. I would love to see a port of QuickBASIC for linux.

In the original BASIC language, the available control structures are as primitive as those in AssemblyLanguage. A BASIC program is series of numbered statements that are usually executed in sequence. A GOTO statement sends execution to another statement. An IF statement does that conditionally. Using GOSUB and RETURN you can implement subroutines, but there's no stack to pass parameters with.

As there are no structuring constructs, there is no concept of scope, and every single variable is global. In the absence of user defined functions, expressiveness is extremely limited, so you need a lot of temporary variables. Combine these limitations, and the result is that most BASIC code is a mess that ranges somewhere between “hideous” and “appalling,” with occasional side trips to “hair raising” and “seizure inducing.”

It is practically impossible to teach good programming style to students that [sic] have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.
EdsgerWybeDijkstra

The language is so pathetically limited that it needs to be heavily extended to be useful. Of course, every implementor chose their own ways to do so, so there are thousands of dialects of BASIC. Some have quite sophisticated extensions, and most of those still in use, such as the excellent PowerBASIC compiler, have been extended to strongly resemble Pascal.

BASIC became very popular in the era of HomeComputers because a BASIC interpreter is simple and so could easily be fit on a tiny ROM. Lots of little kids learned to program in one of the thousands of flavours of BASIC this way, some never to recover.

BillGates (who for all we know is probably one of those never-recovered BASIC kids) started MicrosoftCorporation selling BASIC interpreters for various machines. Even the first PCs had it in ROM, waiting to be activated by an INT 18 instruction. (I remember trying it in DOS's debug program, and the machine would lock up saying “no BASIC ROM installed” or something. Sad…) Ever since, MicrosoftCorporation's strategic products have been accompanied by ever evolving, ever less BASIC-like dialects of the language. You have probably heard of VisualBasic, which is only the latest (series of) rendition(s).

There is little use for BASIC on Linux. If you you think you want BASIC, then you'd probably be happier with Python and a good learn-Python textbook.

There are some projects out there that implement modern BASIC interpreters and/or compilers in Linux. Examples of such are:


CategoryProgrammingLanguages, CategoryDeprecatedProgrammingLanguages