Computer programming is the craft of writing a set of commands or instructions that can later be compiled and/or interprete... , BASIC (an acronym for Beginner's All-purpose Symbolic Instruction Code) is a family of high-level programming languageHigh-level programming language
A high-level programming language is a programming language that, in comparison to low-level programming languages, may be m... s. The original BASICDartmouth BASIC
Dartmouth BASIC is the original version of the BASIC programming language.... was designed in 1964, by John George KemenyJohn George Kemeny
John George Kemeny, U.S. computer scientist and educator best known for co-developing the BASIC programming language in 1964... and Thomas Eugene KurtzThomas Eugene Kurtz
Thomas Eugene Kurtz, U.S. computer scientist; co-developed the BASIC programming language in 1963/64, together with John Geo... at Dartmouth CollegeDartmouth College
Dartmouth College is a private academic institution in Hanover, New Hampshire, in the United States.... , Hanover, New HampshireHanover, New Hampshire
Hanover is a town located on the Connecticut River in Grafton County, New Hampshire, United States.... , U.S.United States
The United States of America, also known as the United States, the U.S., the U.S.A., and America, is... , to provide access for non-science students to computers. At the time, nearly all use of computers required writing custom software, which was something only scientistScientist
A scientist is an expert in at least one area of science who uses the scientific method to do research.... s and mathematicianMathematician Summary
A mathematician is a person whose primary area of study and research is the field of mathematics.... s tended to do. The language (in one variant or another) became widespread on microcomputerMicrocomputer
Although there is no rigid definition, a microcomputer is most often taken to mean a computer with a microprocessor as its... s in the late 1970s and home computerHome computer
The home computer is a consumer-friendly word for the second generation of microcomputers , entering the market in 1977 and ... s in the 1980s. BASIC remains popular to this day in a handful of highly modified dialectProgramming language dialect
A dialect of a programming language is a variation or extension of the language that does not change its intrinsic nature.... s and new languages based on BASIC such as MicrosoftMicrosoft
Visual Basic is an event driven programming language and associated development environment from Microsoft.... .
History
Background
Before the mid-1960s, computers were extremely expensive and used only for special-purpose tasks. A simple batch processingBatch processing
Batch processing is the execution of a series of programs on a computer without human interaction, when possible.... arrangement ran only a single "job" at a time, one after another. But during the 1960s faster and more affordable computers became available. With this extra processing power, computers would sometimes sit idle, without jobs to run.
Programming languages in the batch programming era tended to be designed, like the machines on which they ran, for specific purposes (such as scientific formula calculations or business data processing or eventually for text editingText editor
A text editor is software application used for editing plain text.... ). Since even the newer, less expensive machines were still major investments, there was a strong tendency to consider efficiency to be the most important feature of a language. In general, these specialized languages were difficult to use and had widely disparate syntaxSyntax Summary
In linguistics, Syntax, originating from the Greek words s?? and t???? , is the study of the rules, or "patterned relations... .
As prices decreased, the possibility of sharing computer access began to move from research labs to commercial use. Newer computer systems supported time-sharingTime-sharing
Time-sharing refers to sharing a computing resource among many users by multitasking.... , a system which allows multiple users or processes to use the CPU and memory. In such a system the operating systemOperating system
An operating system is a software program that manages the hardware and software resources of a computer.... 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. In theory, timesharing reduced the cost of computing tremendously, as a single machine could be shared among (up to) hundreds of users.
Early years: the mini-computer era
The original BASIC language was designed in 1963 by John KemenyJohn George Kemeny
John George Kemeny, U.S. computer scientist and educator best known for co-developing the BASIC programming language in 1964... and Thomas KurtzThomas Eugene Kurtz Overview
Thomas Eugene Kurtz, U.S. computer scientist; co-developed the BASIC programming language in 1963/64, together with John Geo... and implemented by a team of Dartmouth students under their direction. BASIC was designed to allow students to write programs for the Dartmouth Time-Sharing System. It was intended to address the complexity issues of older languages with a new language design 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. In the following years, as other dialects of BASIC appeared, Kemeny and Kurtz's original BASIC dialect became known as Dartmouth BASICDartmouth BASIC
Dartmouth BASIC is the original version of the BASIC programming language.... .
The eight design principles of BASIC were:
Be easy for beginners to use.
Be a general-purpose programming language.
Allow advanced features to be added for experts (while keeping the language simple for beginners).
Be interactive.
Provide clear and friendly error messageError message
An error message is a message displayed when an unexpected condition occurs, usually on a computer or other device.... s.
Respond quickly for small programs.
Not to require an understanding of computer hardware.
Shield the user from the operating system.
The language was based partly on the FORTRAN II and partly on the ALGOL 60, with additions to make it suitable for timesharing. (The features of other time-sharing systems such as JOSSJOSS
JOSS, was one of the very first interactive, time sharing programming languages.... and CORC, and to a lesser extent LISP, were also considered.) It had been preceded by other teaching-language experiments at Dartmouth such as the DARSIMCO (1956) and DOPE (1962 implementations of SAP and DART (1963) which was a simplified FORTRAN II). Initially, BASIC concentrated on supporting straightforward mathematical work, with matrix arithmetic support from its initial implementation as a batch language and full string functionality being added by 1965. BASIC was first implemented on the GE-265GE-200 series
The GE-200 series was a family of small mainframe computers of the 1960s, built by General Electric.... mainframeMainframe computer
For the electro band comprising Murray Munro & John Molloy see Mainframe ... which supported multiple terminalsComputer terminal
A computer terminal is an electronic or electromechanical hardware device that is used for entering data into, and displayin... . Contrary to popular belief, it was a compiledCompiler
A compiler is a computer program that translates text written in a computer language into another computer language .... language at the time of its introduction. It was also quite efficient, beating FORTRAN II and ALGOL 60 implementations on the 265 at several fairly computationally intensive (at the time) programming problems such as numerical integration by Simpson's RuleSimpson's rule
In numerical analysis, Simpson's rule is a way to get an approximation of an integral: ... .
The designers of the language decided to make the compiler available free of charge so that the language would become widespread. They also made it available to high schools in the Dartmouth area and put a considerable amount of effort into promoting the language. As a result, knowledge of BASIC became relatively widespread (for a computer language) and BASIC was implemented by a number of manufacturers, becoming fairly popular on newer minicomputerMinicomputer
Minicomputer is a largely obsolete term for a class of multi-user computers which make up the middle range of the computing... s like the DECDigital Equipment Corporation
Digital Equipment Corporation was an American pioneering company in the computer industry.... PDPProgrammed Data Processor
Programmed Data Processor was the name of a series of computers, several of them ground-breaking and very influential, mad... series and the Data GeneralData General
Data General was one of the first minicomputer firms from the late 1960s.... NovaData General Nova
The Data General Nova was a popular 16-bit minicomputer built by the United States company Data General starting in 1969.... . The BASIC language was also central to the HP Time-Shared BASIC system in the late 1960s and early 1970s. In these instances the language tended to be implemented as an interpreterInterpreter (computing)
An interpreter is a computer program that executes other programs.... , instead of (or in addition to) a compilerCompiler
A compiler is a computer program that translates text written in a computer language into another computer language .... .
Several years after its release, highly-respected computer professionals, notably Edsger W. Dijkstra, expressed their opinions that the use of GOTOGOTO
GOTO is a statement found in many programming languages that instructs the computer to jump to another point in the computer... statements, which existed in many languages including BASIC, promoted poor programming practices. Some have also derided BASIC as too slow (most interpreted versions are slower than equivalent compiled versions) or too simple (many versions, especially for small computers left out important features and capabilities).
Explosive growth: the home computer era
Notwithstanding the language's use on several minicomputers, it was the introduction of the MITSMicro Instrumentation and Telemetry Systems
The MITS Altair 8800 was a microcomputer design from 1975, based on the Intel 8080A CPU.... "kit" microcomputerMicrocomputer
Although there is no rigid definition, a microcomputer is most often taken to mean a computer with a microprocessor as its... in 1975 that provided BASIC a path to universality. Most programming languages required more memory (and/or disk space) than was available on the small computers most users could afford. With the slow memory access that audio tapes provided and the lack of suitable text editors, a language like BASIC which could satisfy these constraints, as well as being interpreted line by line from a tape device, was attractive.
The VIC-20 is an 8-bit home computer.... used BASIC as its programming language. Line-by-line instructions in the user manual taught users as young as 5 years old the elements of BASIC programming, allowing them to program their VIC-20 to perform simple tasks.
BASIC also had the advantage that it was fairly well known to the young designers (i.e. enthusiastic hobbyists) who took an interest in microcomputers, and generally worked in the electronics industries of the day. Kemeny and Kurtz's earlier proselytizing paid off in this respect and the few hobbyists journals of the era were filled with columns that made mentions of the language or focused entirely on one version compared to others.
The Intel 8080 was an early microprocessor designed and manufactured by Intel.... machines like the Altair was Tiny BASIC, a simple BASIC implementation originally written by Dr. Li-Chen WangLi-Chen Wang
Dr. Li-Chen Wang wrote Palo Alto Tiny BASIC for Intel 8080-based microcomputers.... , and then ported onto the Altair by Dennis Allison at the request of Bob Albrecht (who later founded Dr. Dobb's JournalDr. Dobb's Journal
Dr. Dobb's Journal is a monthly journal published in the United States by CMP Media.... ). The Tiny BASIC design and the full source code were published in 1976 in DDJ.
Altair BASIC was an interpreter for the BASIC programming language that ran on the MITS Altair 8800 and subsequent S-100 bus... , developed by college drop-outs Bill GatesBill Gates
William Henry Gates III is the co-founder, chairman, former chief software architect, and former CEO of Microsoft.... and Paul AllenPaul Allen
Paul Gardner Allen is an American entrepreneur whose fortune was founded when he formed Microsoft with Bill Gates.... as the company Micro-Soft (who started today's corporate giant, Microsoft). The first Altair version was co-written by Gates, Allen and Monte DavidoffMonte Davidoff
Monte Davidoff is an American computer programmer.... in a burst of enthusiasm and neglect of studies. Versions of Microsoft BASICMicrosoft BASIC
Microsoft BASIC was the foundation product of the Microsoft company.... (also known then, and most widely as M BASIC or MBASICMBASIC
MBASIC is the Microsoft BASIC implementation of the BASIC programming language for the CP/M operating system on ... , see sidebar) was soon bundled with the original floppy diskFloppy disk Overview
A floppy disk is a data storage device that is composed of a disk of thin, flexible magnetic storage medium encased in a sq... -based IBM-PC computers. Eventually tens-of-thousands of copies and variants were in use because of the success of the IBM-PC. Because of the portability factor, it also became one of the standard languages on the Apple II, which was based on a different microprocessor, the 6502MOS Technology 6502
The MOS Technology 6502 is an 8-bit microprocessor designed by Chuck Peddle for MOS Technology in 1975.... MPU. By 1979, Microsoft was talking with several microcomputer vendors, including IBM, about licensing a BASIC interpreter for their computers. A version was included in the IBM PC ROMRead-only memory
Read-only memory is a class of storage media used in computers and other electronic devices.... chips and as a result, PCs without floppy disks automatically booted into BASIC just like many other small computers.
Newer companies attempted to follow the successes of MITS, IMSAI, North StarNorth Star Overview
The North Star is a title of the star best suited for navigation northwards.... and AppleApple Computer
Apple Computer, Inc. is an American computer technology corporation with worldwide annual sales in its fiscal year 2005 of... , thus creating a home computerHome computer
The home computer is a consumer-friendly word for the second generation of microcomputers , entering the market in 1977 and ... industry. Meanwhile, BASIC became a standard feature of all but a very few home computers. Most came with a BASIC interpreter in ROM, thus avoiding the problems with not having (or being able to afford) a disk. Soon there were millions of machines running BASIC variants around the world. This was likely a far greater number than all the users of all other languages put together at that time.
There are more dialectsProgramming language dialect Overview
A dialect of a programming language is a variation or extension of the language that does not change its intrinsic nature.... of BASIC than there are of any other programming languageProgramming language Overview
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a compu... . Most of the home computerHome computer Overview
The home computer is a consumer-friendly word for the second generation of microcomputers , entering the market in 1977 and ... s of the 1980s had a ROMRead-only memory
Read-only memory is a class of storage media used in computers and other electronic devices.... -resident BASIC interpreterInterpreter (computing)
An interpreter is a computer program that executes other programs.... .
BBC BASIC was developed in 1981 as a native programming language for the MOS Technology 6502 based Acorn BBC Micro home/pers... , developed for them by Acorn Computers Ltd, incorporating many extra structuring keywords, as well as comprehensive and versatile direct access to the operating system. It also featured a fully integrated assembler. BBC BASIC was a very well-regarded dialect, and made the transition from the original BBC MicroBBC Micro
The BBC Micro, affectionately known as the Beeb, was an early home computer.... computer to more than 30 other platforms.
During this growth time for BASIC, many magazines were published such as Creative Computing MagazineCreative Computing
Creative Computing was one of the earliest magazines covering the microcomputer revolution.... that included complete source codes for games, utilities, and other programs. Given BASIC's straightforward nature, it was considered a simple matter to type in the codeType-in program
A type-in program, or just type-in, is a computer program listing printed in a computer magazine or book, meant to be ... from the magazine and execute the program. Different magazines were published featuring programs for specific computers, though some BASIC programs were universal and could be input into any BASIC-using machine. A logical extension of the magazine idea was the publishing of BASIC source code in full-fledged books: probably the classic example was David AhlDavid H. Ahl
David H. Ahl is the founder of Creative Computing magazine.... 's series of Basic Computer Games.
Maturity: the personal computer era
Many newer BASIC versions were created during this period. Microsoft sold several versions of BASIC for MS-DOSMS-DOS
MS-DOS is an operating system commercialized by Microsoft.... /PC-DOSPC-DOS Overview
IBM PC-DOS was one of three major operating systems that dominated the personal computer market from about 1985 to 1995.... including BASICA, GW-BASIC (a BASICA-compatible version that did not need IBM's ROM) and QuickBASICQuickBASIC
Microsoft QuickBASIC is a descendant of the BASIC programming language that was developed by the Microsoft Corporation for ... . Turbo PascalPascal (programming language)
Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitabl... -publisher BorlandBorland
Borland Software Corporation is a software company headquartered in California.... published Turbo BASIC 1.0 in 1985 (successor versions are still being marketed by the original author under the name PowerBASIC).
These languages introduced many extensions to the original home computer BASIC, such as improved string manipulation and graphics support, access to the file systemFile system
In computing, a file system is a method for storing and organizing computer files and the data they contain to make it easy ... and additional data types. More important were the facilities for structured programmingStructured programming
Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming para... , including additional control structures and proper subroutineSubroutine
In computer science, a subroutine is a portion of code within a larger program, which performs a specific task and is relat... s supporting local variableLocal variable
In computer science, a local variable is a variable that is given local scope.... s.
However, by the latter half of the 1980s newer computers were far more capable with more resources. At the same time, computers had progressed from a hobbyist interest to tools used primarily for applications written by others, and programming became less important for most users. BASIC started to recede in importance, though numerous versions remained available. Compiled BASIC or CBASICCBASIC Overview
CBASIC is a compiled version of the BASIC programming language written for the CP/M operating system by Gordon Eubanks in 19... is still used in many IBM 4690 OS point of sale systems.
BASIC's fortunes reversed once again with the introduction of Visual BasicVisual Basic
Visual Basic is an event driven programming language and associated development environment from Microsoft.... by Microsoft. It is somewhat difficult to consider this language to be BASIC, because of the major shift in its orientation towards an object-orientedObject-oriented programming
In computer science, object-oriented programming is a computer programming paradigm.... and event-drivenEvent-driven programming
Event-driven programming is a computer programming paradigm.... perspective. The only significant similarity to older BASIC dialects was familiar syntax. Syntax itself no longer "fully defined" the language, since much development was done using "drag and drop" methods without exposing all code for commonly-used objects such as buttons and scrollbars to the developer. While this could be considered an evolution of the language, few of the distinctive features of early Dartmouth BASICDartmouth BASIC
Dartmouth BASIC is the original version of the BASIC programming language.... , such as line numberLine number
In computing, a line number is a way of specifying a point in a file by enumerating each line in the file by a number.... s and the INPUT keyword, remain (although Visual Basic still uses INPUT to read data from files, and INPUTBOX is available for direct user input; line numbers can also optionally be used in all VB versions, even VB.NET, albeit they cannot be used in certain places, for instance before SUB).
Ironically given the origin of BASIC as a "beginner's" language, and apparently even to the surprise of many at Microsoft who still initially marketed Visual Basic or "VB" as a language for hobbyists, the language had come into widespread use for small custom business applications shortly after the release of VB version 3.0, which is widely considered the first relatively stable version. While many advanced programmers still scoffed at its use, VB met the needs of small businesses efficiently wherever processing speed was less of a concern than easy development. (By that time, computers running Windows 3.1 had become fast enough that many business-related processes could be completed "in the blink of an eye" even using a "slow" language, as long as massive amounts of data were not involved.) Many small business owners found they could create their own small yet useful applications in a few evenings to meet their own specialized needs. Eventually, during the lengthy lifetime of VB3, knowledge of Visual Basic had become a marketable job skill.
Many BASIC dialects have also sprung up in the last few years, including Bywater BASICBywater BASIC
Bywater BASIC is a GPL BASIC interpreter by Ted A.... and True BASICTrue BASIC
True BASIC is a variant of the BASIC programming language descended from Dartmouth BASIC – the original BASIC – ... (the direct successor to Dartmouth BASIC from a company controlled by Kurtz). Many other BASIC variants and adaptations have been written by hobbyists, equipment developers, and others, as it is a relatively simple language to develop translators for. An example of an open source interpreter, written in C, is .
The ubiquity of BASIC interpreters on personal computers was such that textbooks once included simple "Try It In BASIC" exercises that encouraged students to experiment with mathematical and computational concepts on classroom or home computers. Futurist and sci-fi writer David BrinDavid Brin
Glen David Brin is a well-known American author of science fiction.... mourns the loss of ubiquitous BASIC in a recent Salon article.
Examples
Unstructured BASIC
New BASIC programmers on a home computer might start with a simple program similar to the Hello world programHello world program
A "hello world" program is a software program that prints out "Hello world!" on a display device.... made famous by Kernighan and Ritchie. This generally involves a simple use of the language's PRINT statement to display the message (such as the programmer's name) to the screen. Often an infinite loopInfinite loop
An infinite loop is a sequence of instructions in a computer program which loops endlessly.... was used to fill the display with the message. Most first generation BASIC languages such as MSX BASICMSX BASIC
MSX BASIC is a dialect of the BASIC programming language.... and GW-BASICGW-BASIC
GW-BASIC was a dialect of BASIC developed by Microsoft from BASICA, originally for Compaq.... supported simple data types, loop cycles and arrays. The following example is written for GW-BASIC, but will work in most versions of BASIC with minimal changes:
10 INPUT "What is your name: ", U$ 20 PRINT "Hello "; U$ 30 INPUT "How many stars do you want: ", N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT "Do you want more stars? ", A$ 100 IF LEN(A$) = 0 THEN 90 110 A$ = LEFT$(A$, 1) 120 IF A$ = "Y" OR A$ = "y" THEN 30 130 PRINT "Goodbye ";U$ 140 END
Structured BASIC
Second generation BASICs (for example QuickBASICQuickBASIC
Microsoft QuickBASIC is a descendant of the BASIC programming language that was developed by the Microsoft Corporation for ... and PowerBASICPowerBASIC
PowerBASIC is a dialect of the BASIC programming language.... ) introduced a number of features into the language, primarily related to structured and procedure-oriented programming. Usually, line numberLine number
In computing, a line number is a way of specifying a point in a file by enumerating each line in the file by a number.... ing is omitted from the language and replaced with labelFacts About Label (programming language)
A label in a programming language is a sequence of characters that identifies a location within source code.... s (for GOTOGOTO
GOTO is a statement found in many programming languages that instructs the computer to jump to another point in the computer... ) and procedureSubroutine
In computer science, a subroutine is a portion of code within a larger program, which performs a specific task and is relat... s to encourage easier and more flexible design.
INPUT "What is your name: ", UserName$ PRINT "Hello "; UserName$ DO INPUT "How many stars do you want: ", NumStars Stars$ = STRING$(NumStars, "*") PRINT Stars$ DO INPUT "Do you want more stars? ", Answer$ LOOP UNTIL Answer$ <> "" Answer$ = LEFT$(Answer$, 1) LOOP WHILE UCASE$(Answer$) = "Y" PRINT "Goodbye "; UserName$
"Modern" BASIC
Third generation BASIC dialects such as Visual BasicVisual Basic
Visual Basic is an event driven programming language and associated development environment from Microsoft.... and StarOffice BasicStarOffice Basic Overview
StarOffice Basic is a dialect of Basic that is included with the OpenOffice.org and StarOffice office suite.... introduced features to support object-oriented and event-driven programming paradigm. Most built-in procedures and functions now represented as methods of standard objects rather than operators.
Visual Basic .NET is an object-oriented computer language that can be viewed as an evolution of Microsoft's Visual Basic imp... : Public Class stars Public Sub Main Dim UserName, Answer, stars As String Dim NumStars, I As Integer Console.Write("What is your name: ") UserName = Console.ReadLine Console.WriteLine("Hello ", UserName) Do Console.Write("How many stars do you want: ") NumStars = CInt(Console.ReadLine) stars = New String("*", NumStars) Console.WriteLine(stars) Do Console.Write("Do you want more stars? ") Answer = Console.ReadLine Loop Until Answer <> "" Answer = Answer.Substring(0, 1) Loop While Answer.ToUpper = "Y" Console.WriteLine("Goodbye ", UserName) End Sub End Class