Założenia projektantów BASIC-a uwzględniały łatwość użytkowania, wszechstronność zastosowań, interaktywność i dobrą komunikację z użytkownikiem poprzez jasne komunikaty błędów.
Ucz się BASIC-a codziennie – plakat w radzieckiej szkole, 1985–1986
BASIC wybił się na czoło języków do zastosowań amatorskich i półprofesjonalnych po wprowadzeniu na rynekmikrokomputeraAltair 8800. Twórcami dialektu BASIC-a dla tej maszyny byliBill Gates iPaul Allen, był to pierwszy produkt firmyMicrosoft. BASIC szybko zaimplementowany został przy budowie serii komputerówApple, a później (jakoGW BASIC) wIBMPC (początkowo wROM, a po pojawieniu sięDOS-a – nadyskietce).
Współcześnie (2018) BASIC istnieje w wersjach nasmartfony (np.Linuxa Androida) – przykładowo RFO Basic pozwala na tworzenie kodu bezpośrednio na smartfonie, w trybie interpretera lub kompilowanym albo np. na stacjonarnych komputerach uruchamiających inne dystrybucje Linuxa. Poza poleceniami znanymi z innych wersji BASICA ma wiele dostosowanych do smartfonów - jak obsługa ekranu dotykowego czy połączeń sieciowych, aparatów fotograficznych etc.[5]
Ponieważ istnieje ponad 200 różnych dialektów języka BASIC, poniższa charakterystyka dotyczy najpopularniejszych rozwiązań.
Programy w BASIC-u składają się z kolejno wykonywanych instrukcji, które zebrane są w wiersze. Wszystkie dialekty oprócz najprymitywniejszych dopuszczają kilka instrukcji w jednym wierszu, rozdzielonych zazwyczaj znakiem dwukropka. Starsze wersje wymagały numerowania wierszy (maksymalny numer wynosił zwykle 9999, 16384, 32767, czasami 65535, jak to miało miejsce wMeritum).
Zmienne mogą mieć dowolnie długie nazwy zaczynające się od litery. Nazwy zmiennych łańcuchowych zakończone są znakiem dolara, np.x$,zmienna$. Tablice mogą mieć dwa lub więcej wymiarów (w niektórych dialektach tablice znakowe służą do wskaźnikowego dostępu do łańcuchów, jak wC).
W niektórych wersjach dostępne były skróty najczęściej wykorzystywanych instrukcji, np.PRINT,GOTO,DRAWTO,RUN odpowiadały odpowiednio:PR. lub?,G.,DR.,RU..
Poniższy program został napisany w duchuparadygmatu imperatywnego, promowanego przez wczesne implementacje języków z rodziny BASIC.
10PRINT"Witaj"20INPUT"Liczba gwiazdek do wyświetlenia: ";ile30PRINT"*"40LETile=ile-150IFile>0THENGOTO30
Wiersze programu są numerowane, apętle konstruuje się za pomocąinstrukcji skokuGOTO. Duża liczba skoków powodowała, że kod wczesnego BASIC-a był często trudny do odczytania i zrozumienia, powstał nawet terminspaghetti code określający taki sposób tworzenia programów. Wiele dialektów zawierało jednak instrukcje pętliFOR…NEXT, którą zastosowano w poniższym przykładzie:
10PRINT"Witaj"20INPUT"Liczba gwiazdek do wyświetlenia: ";ile30FORlicznik=1TOile40PRINT"*"50NEXTlicznik
Podejmowano różne próby ułatwienia pisania programów przez osoby nie robiące tego zawodowo (czyli większość posiadaczykomputerów domowych). Najbardziej oryginalne rozwiązanie było zastosowane w komputerachZX Spectrum, gdzie do każdego klawisza przypisana byłosłowo kluczowe bądź nazwa funkcji wbudowanej językaSinclair BASIC (tak, aby nie było potrzeby wpisywania ich znak po znaku). Miało to znacznie ułatwić i przyspieszyć pisanie programów. Rozwiązanie to w praktyce oznaczało niemałe trudności (na początku) w pisaniu programów, gdyż język dostępny dla tego komputera miał na tyle dużo instrukcji, że każdemu klawiszowi przypisane było ich wiele. Dostęp do nich był możliwy po kłopotliwym przełączaniu trybów edytora[6]. Jednak w rzeczywistości po dłuższym użytkowaniu klawiatury ZX Spectrum i nabraniu wprawy pisanie programów okazywało się dużo wygodniejsze, szybsze i łatwiejsze niż w innych rodzajach klawiatur.