BASIC edoBeginner'sAll-purposeSymbolicInstructionCode (Hasiberrientzako helburu guztietarako instrukzioen kode sinbolikoa) maila altukoprogramazio lengoaia familia bat da. Erabilterraza zen lengoaia bat izateko asmoz sortu zen,1964an. Baina1980ko hamarkadan zabaldu zen bere erabilera batez ere,[1][2] eta gaur egun, beronen aldaera ugari ditugu gure artean.
BASIC lengoaiak aldaketak izan ditu urteak joan ahala. Horrela, aurreneko bertsioakinterpretatuak ziren, ez egituratuak. Azkenekoak, berriz, egituratuak dira, eta sarritan, baitakonpilatuak ere. BASIC izan da urte askotan zeharprogramatzaile hasiberriek ikasten duten lehen lengoaia, erabilerraza eta ulerterraza delako, eta beste lengoaia zailago batzuen oinarrizko kontzeptu berdinak dituelako.
BASICen bilakaeran funtsezkoa izan zen MicrosoftenVisual Basic (VB) lengoaiaren sorrera. Lengoaiaren ohiko gako-hitz guztiak erabili arren (sententziak,kontrol-egiturak eta barne-funtzioak), datu-motak eta haien maneiua barne; VB askoz ere ahaltsuagoa eta eboluzionatuagoa da;Windows plataformatan gehien erabiltzen den lengoaietako bat izanik, aplikazio komertzialetan nagusitasuna izatera iritsiz.[3][4]
BASICeko gutxieneko sintaxiak LET, INPUT, PRINT, IF eta GOTO komandoak baino ez ditu barneratzen. Gutxieneko sintaxi hori duten programak egiten ditueninterpretzaileak ez du pilarik behar. Lehen inplementazioetako batzuek horren sinpleak ziren. Pila bat gehitzen bazaio interpretatzaileari, habiatutako FORbegiztak eta GOSUB komandoa ere gehitu daitezke. Ezaugarri horiek dituen BASIC interpretatzaileak linea-zenbakiak behar ditu kodean.
Linea zenbakiak BASIC klasikoaren oso alderdi bereizgarria izan ziren. Hala ere, linea-zenbakiak erabiltzeak badu desabantaila bat: programatzaileak jakin behar du zenbat linea erabiliko dituen. Hori saihets daiteke tarte erregular bat barneratuz lerro jarraien artean (10 esaterako).
BASICeko bertsio berrietan ez da beharrezkoa lerro zenbakiak jartzea, onartzen diren arren, zeren eta gehienetan bloke egituratuak barneratu direnC etaPascal lengoaien ildotik:
do
loop
while
until
exit
on... goto
gosub
select ... case
Interpretatzaile gehienetan ere REM (remark) komandoa eskaintzen da oharrak jartzeko, baina helburu bera lortzen da' (komatxo sinplea) sinboloa erabiliz.Visual Basic bezalako bertsio berrietanobjektuetara bideratutako lengoaietako ezaugarriak barneratu dira.
Kaixo mundua adibidea. Programa honek "Kaixo, mundua!" idazten du lehenetsitako irteera-gailuan (monitorea, gehienetan):
NEW10PRINT"Kaixo, mundua!"RUN
"NEW" aginduak memorian zegoena husten du. Zenbaki batekin hasten den edozein linea programa baten zati gisa gordeko da eta zenbakia markatzen duen ordena erlatiboaren arabera exekutatuko da programa. "RUN" aginduak memorian dagoen uneko programa exekutatzen du.
BASICek ordenaren arabera exekutatzen ditu kode-lerroak. Programa honekin:
NEW10PRINT"Ni"3PRINT"Zu"RUN
emaitza hau izango da:
ZuNiOk
BASICek zuzeneko aginduak onar ditzake kode-lerroko zenbakirik gabe ere. Lehengo programa bera lerro hasierako zenbakirik gabe ere idatz daiteke . Zuzenean honela idatz daiteke:
PRINT"Kaixo, mundua!"Kaixo,mundua!Ok
"RUN" agindurik gabe ere exekutatu da programa, baina horrela ez da memorian gordeko.
Lerro berean agindu bat baino gehiago jar daitezke bi puntuz bereizita:
Ezkerreko aldagaiak eskuineko eragiketa ebaluatuz lortzen den balioa hartzen du.
Adibidez:
1LETA=2+3
Agindu hori eginda, "A" aldagaiak "5" balioa hartzen du. LET agindua laster bihurtu zen inplizitua BASICen bertsio askotan, eta, beraz, aurreko instrukzioa honela sartu ahal izan zen:
NEW10INPUT"Zein da zure izena?:";NN$20PRINT"Ongi etorri 'Puztarri-zalera',";NN$25PRINT30INPUT"Zenbat puztarri hasteko?:";N40IFN<=0THENGOTO20050AS$=""60FORI=1TON70AS$=AS$+"*"80NEXTI90PRINT"Hemen dituzu:";AS$100INPUT"Puztarri gehiago?:";SN$110IFSN$=""THENGOTO100120IFSN$<>"S"ORSN$<>"s"THENGOTO200130INPUT"Zenbat aldiz errepikatuta:";ALDIAK140IFALDIAK<=0THENGOTO200150FORI=1TOALDIAK160PRINTAS$;170NEXTI180PRINT185REMBlokeosoaerrepikatzera(oharra)190GOTO25200END
NEWDEFINTI-N'I eta N arteko hizkiez hasitako aldagaiak zenbaki osoakiTrue=-1'Egiazkoa adierazteko Flag-aINPUT"Zein da zure izena?:";Izena$PRINT"Ongi etorri 'Puztarri-zalera',";Izena$DOPRINT""INPUT"Zenbat puztarri hasteko?:";NIFN<=0THENEXITDOSegida$=""FORI=1TONSegida$=Segida$+"*"NEXTIPRINT"Hemen dituzu:";Segida$DOINPUT"Jarraitu nahi?";SN$LOOPUNTILSN$<>""IFSN$<>"B"ORSN$<>"b"THENEXITDO'Begiztatik irtenINPUT"Zenbat aldiz errepikatuta::";iAldiakIFiAldiak<=0THENEXITDO'Begiztatik irtenFORI=1TOiAldiakPRINTSegida$;NEXTIPRINTLOOPWHILEiTrueEND
BASIC eskuragarri dago ia plataforma eta sistema eragile guztietan. Estandarrak betetzen dituen doako inplementazio bat eta multiplataforma daBywater BASIC (bwBASIC). Interpretea C lengoaiaz idatzita dago etaGNU lizentziapean dator. Testu-interfazerako edo kontsolarako diseinatuta dago (ez grafikoa), eta ez du euskarririk erabiltzailearen interfaze grafikoak sortzeko (GUI's, Graphical User Interface). Doako BASIC bat badago, GUIrako laguntza badu, Visual Basic-en antzekoa da etaWindowsen etaGNU/Linux-en exekutatzen da,Phoenix Object BASIC da.
Interpretatzaile/konpilatzaile ezagunenen bertsioakQuick BASIC etaQBASIC produktu-lerroan daude. Azken hori interpretea baino ez da, biak Microsoftenak dira. Gaur egun, Visual BASIC modernoa da. Microsoft BASICen lehen bertsioekin ere gutxieneko bateragarritasunari eusten saiatu da (egia esan, ez da oso bateragarria), baina badago FreeBASIC, konpiladore librea, horren sintaxia bateragarria da QBASIC/QuickBASICekin.
Beste bertsio komertzial batzuk ere badira: PowerBASIC (PowerBASIC), Fantaisie Software-ren PureBasic (Pure Basic) eta TrueBASIC (TrueBASIC). BASICen azken estandar ofizialak betetzen dituzte.
Mac OS Classic, Mac OS X, Microsoft Windows eta GNU/Linux sistema eragiletarako aldaera bat daREALbasic. Rapid-Q aldaeraren egungo jabeek merkaturatu dute, eta, hasiera batean, bertan behera utzitako BASICen beste ezarpen bat da, hasieran libre zena. BASICen parrot birtual machinerako dialekto sinple baten bertsioak erakusten du nola inplementatzen den BASICeko interpretea mihiztatzailearen antzeko lengoaian.SmallBASIC plataforma askotan (Win32, DOS, GNU/Linux eta PalmOS) exekutatzen den BASIC aldaera da eta GNU (GPL) lizentziapean dago.
KEMENY, J.G.; T.E. KURTZ.Structured BASIC programming. New York, USA: John Wiley & Sons, 1986.
Bennet, P. Lientz.A comparative evaluation of versions of BASIC. New York, USA: ACM, 1976, p. 175-181.
Gottfries, Byron S.Teoría y problemas de Programación BASIC. traducción, Guillermo Caro Murillo, Jesús Villamizar Herrera. 2a. ed.. Buenos Aires; Bogotá: McGraw-Hill, 1984, p. 278 p..
Kemeny, John G.; Thomas E. Kurtz.Programación BASIC. México: Cecsa, 1984, p. 432 p..
Finkel, Leroy; Jerald R. Brown.Programación de archivos de datos en BASIC. México; Argentina: Limusa, 1986, p. 361 p.. «(Series Instrucción Programada Limusa)»
Dobson, Rick.Programación De Microsoft Sql Server 2000 Con Microsoft Visual Basic .net. 1a ed.. McGraw-Hill, 2002, p. 664 p..Halvorson, Michael.Visual Basic 2008. 1a ed.. Anaya Multimedia, 2008, p. 656 p..