**BASIC**, som står for for **B**eginner's **A**ll-purpose **S**ymbolic **I**nstruction **C**ode, er eit programmeringsspråk som vart utvikla i 1963 ved Dartmund College i USA med det målet at ein skulle gjere programmering enklare. BASIC er eit enkelt nybyrjarspråk som nyttar enkle engelskspråklege kommandoar.

Det finst fleire tilpassa dialektar av BASIC enn av nokon anna programmeringsspråk. Med få unntak nytta alle heimedatamaskiner på 1980 talet ein eller annan versjon av Basic som kommandotolk. Microsoft leverte GW-BASIC og seinare QBASIC som ein del av operativsystemet DOS. I 1991 kom VisualBasic som utvikla applikasjonar til å køyre under operativsystemet Windows.

Døme
----

Nedanfor er nokre forskjellige døme på programmering som syner utviklinga av BASIC som programmeringsspråk.

### Ustrukturert BASIC

Amstrad BASIC
Dei første dialektane

Dømet nedanfor er laga for GW-BASIC, men skal kunne fungere i dei fleste dialektar av BASIC med minimale endringar.

```
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

```

### Strukturert BASIC

 
Skjermskot frå QBasic
Andre-generasjon av Basic dialektar introduserte nye kjenneteikn til språket, primært relatert til strukturert og prosedyre-orientert programmering. Linjenummerering vart som regel utelate frå språket og erstatta med hopp-komando samt andre prosedyrar som gav eit enklare og meir fleksibelt språk. Dømet nedanfor er laga for Qbasic:

```
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$

```

### «Moderne» BASIC

Skjermskot frå FreeBasic
Tredje generasjon BASIC dialektar som til dømes Visual Basic og StarOffice Basic introduserte
objekt orientert og event-driven programmering.

```
Option Explicit Off
Module stars
 Sub Main()
 Console.Write("What is your name: ")
 U$ = Console.ReadLine
 Console.WriteLine("Hello "+ U$)
 Console.Write("How many stars do you want: ")
 N = Val(Console.ReadLine)
 S$ = ""
 For I = 1 To N
 S$ = S$ + "\*"
 Next I
 Console.WriteLine(S$)
 Console.Write("Do you want more stars? ")
 A$ = Console.ReadLine
 If Len(A$) = 0 Then GoTo 90
 A$ = Left$(A$, 1)
 If A$ = "Y" Or A$ = "y" Then GoTo 30
 Console.Write("Goodbye ")
 For I = 1 To 200
 Console.Write(U$ + "")
 Next I
 Console.WriteLine()
 End
 End Sub
End Module

```

| * v
* d
* e
Programmeringsspråk |
| --- |
| ABC**·** Ada**·** AFL**·** Agora**·** ALGOL**·** APL**·** Assembler**·** awk**·** B**·** BASIC**·** BETA**·** BLISS**·** C**·** C++**·** C#**·** Caml**·** Cobol**·** Concurrent C**·** CSP**·** D**·** Delphi**·** Erlang**·** Forth**·** Fortran**·** Haskell**·** HyperTalk**·** Icon**·** INTERCAL**·** Java**·** Lisp**·** Miranda**·** ML**·** Modula**·** NIAL**·** Objektorientert C**·** occam**·** OCaml**·** O'Haskell**·** Pascal**·** Perl**·** PHP**·** Pike**·** PL/I**·** Plankalkül**·** Portal**·** Prolog**·** Python**·** R**·** Ruby**·** Scheme**·** Simula**·** Sina**·** Sisa**·** Smalltalk**·** SML**·** SNOBOL**·** Visual Basic |


|  |  |
| --- | --- |
| Autoritetsdata | 
* WorldCat
* GND
* LCCN
* BNF
* BNF (data)
* SUDOC
* NKC

 |