BASIC is a family of general purpose, high-level programming languages. It is easy to use, hence the name BASIC, which stands for "Beginner's All-purpose Symbolic Instruction Code".
BASIC is an entire family of programming languages, all relatively similar. Here are some of the implementations of BASIC:
- Dartmouth BASIC; The first version created
- Apple BASIC
- Microsoft BASIC
- Atari BASIC
- Commodore BASIC
- TI BASIC
- Liberty BASIC
- Tiny BASIC
Before the mid-1960s, computers were very expensive and used only for special-purpose tasks, such as military or scientific research. Computers were also very slow. A simple batch processing arrangement ran only a single "job" at a time, one after another. But during the 1960s faster and more affordable computers became available, and as prices decreased newer computer systems supported time-sharing, a system which allows multiple users or processes to use the CPU and memory. In such a system the operating system alternates between running processes, giving each one running time on the CPU before switching to another. The machines had become fast enough that most users could feel they had the machine all to themselves.
By this point the problem of interacting with the computer was a concern. In the batch processing model, users never interacted with the machine directly, instead they tended their jobs to the computer operators. Under the time-sharing model the users were given individual computer terminals and interacted directly. The need for a system to simplify this experience, from command line interpreters to programming languages was an area of intense research during the 1960s and 70s.
The original BASIC language was designed in 1964 by John Kemeny and Thomas Kurtz and implemented by a team of Dartmouth students under their direction. The acronym is tied to the name of an unpublished paper by Thomas Kurtz and is not a backronym. BASIC was designed to allow students to write programs for the Dartmouth Time-Sharing System. It was intended specifically for the new class of users that time-sharing systems allowed—that is, a less technical user who did not have the mathematical background of the more traditional users and was not interested in acquiring it. Being able to use a computer to support teaching and research was quite novel at the time.