BASIC

BASIC (nuo angl. Beginner’s All – purpose Symbolic Instruction Code) – programavimo kalbų šeima. Sukurta kaip lengvai naudojama programavimo kalba ji buvo plačiai naudojama kompiuteriuose devintame XX a. dešimtmetyje ir išlieka populiari iki šių dienų su daugeliu išvystytų kalbos atmainų.

Vartotojo sąsaja

Skirtingai nuo daugelio kitų programavimo kalbų, BASIC programos vykdymo posistemė kartu buvo ir vartotojo sąsaja, neskirianti programos vykdomųjų sakinių nuo vartotojo komandų. Įvesta eilutės numerį turinti komanda tapdavo programos dalimi, o be eilutės numerio – buvo įvykdoma nedelsiant. Eilučių trynimo, programos paleidimo, programos eilučių skaitymo iš išorinių atminties įrenginių bei įvairios kitos panašios komandos prireikus galėjo būti vykdomos ir kaip programos dalis. Iš kitos pusės, tiesiogiai renkami ir iškart vykdomi programos sakiniai leido naudoti sistemą kaip gana patogų kalkuliatorių.
Paprastai naujoje programoje eilutės buvo numeruojamos dešimties intervalu. Nauja eilutė buvo įterpiama tiesiog suteikiant jai tarp dviejų gretimų eilučių numerių esantį naują numerį. „Klasikiniame“ BASIC eilutės turinys galėjo būti pakeistas tik surenkant naują tą patį numerį turinčią eilutę. Norint vienoje vietoje įterpti daugiau devynių eilučių, tekdavo pernumeruoti programą, pakeičiant ir nuorodas GOTO bei GOSUB sakiniuose. Vėlesnės versijos turėjo automatiniam pernumeravimui skirtą komandą RENUM (arba RESEQ) bei komandą EDIT redaguoti esamai eilutei neperrenkant jos visos iš naujo.

Sintaksė

BASIC sakiniai baigiami (atskiriami) perkeliant į kitą eilutę arba dvitaškiu (:). Jei sakinys tęsiasi per kelias eilutes, kiekvienos eilutės (išskyrus paskutiniąją) gale dedamas eilutės pratęsimo simbolis (_).
Minimaliai BASIC sintaksei užtenka LET, PRINT, IF ir GOTO komandų, naudojant tik šias valdymo struktūras kompiliatoriui nereikalingas stekas. Kompiliatoriuose, naudojančiose steką, galima pridėti ciklus bei GOSUB komandą. Turint tokį komandų rinkinį, eilutės turi būti numeruojamos.
Kai kurie vėlesni BASIC kalbos dialektai atsisakė eilučių numeravimo ir pridėjo kitoms kalboms (Pascal, C) būdingas valdymo struktūras Repeat… Loop Until, While, Select… Case
Moderniausios BASIC kalbos (pavyzdžiui, Visual Basic nuo 4 versijos) papildytos ir objektinėmis savybėmis, pavyzdžiui, For Each… Next valdymo struktūra, leidžiančia cikle perrinkti rinkinio ar masyvo elementus, taip pat paveldėjimu.
Atminties valdymas yra paprastas – dažniausiai naudojama šiukšlių surinkimo technologija.
BASIC kalboms nebūdingos standartinės išorinės bibliotekos (kaip C kalboje), tačiau kompiliatoriuje yra įdiegtos standartinės matematinės, teksto manipuliavimo ir kitos svarbiausios funkcijos. Dalis BASIC dialektų neleidžia rašyti funkcijų ar procedūrų, šiose kalbose programos eiga kontroliuojama gausiai naudojamais GOTO sakiniais. Dialektai, kuriuose įvesta GOSUB komanda, leidžia rašyti primityvias subprogramas. Kiti dialektai visiškai palaiko subprogramas ir funkcijas (kaip ir Pascal kalboje, subprograma, negrąžinanti reikšmės skiriama nuo funkcijų, gražinančių reikšmę).

Duomenų tipai

Ankstyvosios BASIC versijos palaikė tik tekstinius ir skaitinius duomenų tipus, taip pat vienmačius ir dvimačius šių tipų masyvus. Skaičiams buvo naudojamas vienas – racionalaus skaičiaus tipas, o tekstiniams duomenims – dinaminio ilgio eilutės.

Pavyzdžiai

Šie pavyzdžiai yra pateikti GW-BASIC dialektu, tačiau be jokių arba su labai menkais pakeitimais gali būti sukompiliuoti bet kokiu BASIC kompiliatoriumi.
Paprasčiausios programos pavyzdys:
10 PRINT "Sveikas, pasauli!"20 END
Sudėtingesnės programos pavyzdys:
10 INPUT "Jūsų vardas: "; U$
20 PRINT "Labas, "; U$
30 INPUT "Kiek norėtumėte žvaigždžių: "; N
35 S$ = ""40 FOR I = 1 TO N
50 S$ = S$ + "*"55 NEXT I
60 PRINT S$
70 INPUT "Ar norite dar žvaigždžių? "; A$
80 IF LEN(A$) = 0 THEN GOTO 7090 A$ = LEFT$(A$, 1)100 IF (A$ = "T") OR (A$ = "t") THEN GOTO 30110 PRINT "Viso geriausio ";
120 FOR I = 1 TO 200130 PRINT U$; " ";
140 NEXT I
150 PRINT