From Wikipedia, the free encyclopedia
BASIC, sigles de Beginner's All-purpose Symbolic Instruction Code[1] (Códigu simbólicu d'instrucciones de propósitu xeneral pa primerizos en castellán), ye una familia de llinguaxes de programación d'altu nivel. El BASIC orixinal, el Dartmouth BASIC, foi diseñáu en 1964 por John George Kemeny y Thomas Eugene Kurtz nel Dartmouth College en New Hampshire, Estaos Xuníos, como un mediu pa facilitar la programación n'ordenadores a estudiantes (y profesores) que nun fueren de ciencies. Naquella dómina, cuasi tol usu de los ordenadores riquía codificar software fechu a midida, colo cual quedaba acutáu a persones con formación como científicos y matemáticos. BASIC orixinalmente foi desenvueltu como una ferramienta d'enseñanza. El llinguaxe y les sos variantes llegaron a tar llargamente disponibles nos microcomputadores a finales de los años 1970 y nos años 1980. BASIC sigue siendo popular a día de güei nun puñáu de dialeutos altamente modificaos, y en nuevos llinguaxes, influyíos por BASIC tales como Microsoft Visual Basic o Gambes en GNU/Linux. Nel añu 2006, el 59% de los desarrolladores pa la plataforma .NET usaben Visual Basic .NET como'l so únicu llinguaxe.[2]
![]() | |
Desendolcador(es) | Thomas Eugene Kurtz, John George Kemeny y Mary Kenneth Keller |
---|---|
Estensión de ficheru |
.bas |
Versión inicial | 1964 |
Tipu |
llinguaxe de programación, lenguaje de programación no-estructurada (es) ![]() |
Etiqueta de Stack Exchange | Stack Exchange |
![]() |
A principios de la década de 1960, los ordenadores yeren por demás cares y utilizábense namái pa propósitos especiales, executando "una única xera" al empar. Sicasí, mientres l'intre d'esa década, los precios baxaron al puntu qu'inclusive delles pequeñes empreses yá podíen costearlas. La velocidá de procesu de les máquines amontar al grau que de cutiu quedaben demasiao tiempu ocioses, porque nun había abondes xeres pa elles. Tou ello foi por cuenta de la rápida evolución del hardware. Los llinguaxes de programación d'aquellos tiempos taben diseñaos pa propósitos específicos, como les máquines nes que yeren executaos; por casu pa desenvolver aplicaciones cálculo o procesamientu de fórmules diseñó'l llinguaxe FORTRAN, en cuantes que pa la programación n'alministración o xestión d'información desenvolvióse específicamente'l COBOL.
Con cuenta de amontar el rendimientu y amortizar meyor los costos (por amenorgamientu del tiempu ociosu del procesador), y siendo que yá la velocidá de les máquines empezó a dexalo, propúnxose la idea d'executar más d'una xera "simultáneamente", foi asina que surdió'l conceutu de sistema de tiempu compartíu, qu'empezó a ganar muncha popularidá. En sistemes d'esi tipu, el tiempu de procesamientu del procesador central estremábase, y a cada usuariu otorgábase-y secuencialmente y cíclicamente una pequeña porción o "cuota" de tiempu de procesu. Les máquines yeren lo suficientemente rápides como pa provocar nos usuarios la ilusión de que disponíen de la funcionalidad de la máquina toa'l tiempu pa ellos ("seudo-simultaneidá" de procesos). Esa distribución del tiempu de cómputu ente los usuarios amenorgó considerablemente'l costu de la computación, una y bones una sola máquina podía ser compartida por numberosos usuarios.
El llinguaxe BASIC foi inventáu en 1964 por John George Kemeny (1926-1992) y Thomas Eugene Kurtz (1928-) nel Dartmouth College. N'años subsiguientes, ente qu'otros dialeutos de BASIC apaecíen, el BASIC orixinal de Kemeny y Kurtz foi conocíu como Dartmouth BASIC.
BASIC foi diseñáu pa dexar a los estudiantes escribir programes usando terminal d'ordenador terminales d'un ordenador en tiempu compartíu. Taba pensáu p'amenorgar notablemente la complexidá de los otros llinguaxes del momentu, con unu diseñáu específicamente pa la clase d'usuarios que los sistemes de tiempu compartíu dexaben: un usuariu más senciellu, fuera del área de les ciencies de la computación, a quien nun-y interesaba tanto la velocidá, solo'l fechu de ser capaz de programar y usar la máquina ensin demasiaos entueyos. Los diseñadores del llinguaxe tamién queríen que permaneciera nel dominiu públicu, lo cual contribuyó a que se tremara rápido.
Los ocho principios que rixeron el diseñu de BASIC fueron:
El llinguaxe foi en parte basáu en FORTRAN II y otra parte n'Algol 60, con amiestes pa faelo apoderáu en sistemes de tiempu compartíu y con elementos que facilitaren la operación aritmética de matrices. BASIC foi implementáu per primer vegada pa la mainframe GUE-265, máquina que soportaba múltiples terminales.
En 1968 Edsger Dijkstra publicó una carta con una famosa crítica[3] na que consideraba que los llinguaxes de programación qu'usaben sentencies GOTO para estructurar un programa yeren nocivos pa la productividá del programador, y pa la calidá del códigu resultante. Nesti artículu nun se menta a nengún llinguaxe de programación en particular; namái indícase que l'usu escesivu de GOTO en llinguaxes d'altu nivel ye daqué non recomendable, y apurre les razones téuniques poles qu'esto ye asina. Pero sí se reparó, dende los sos entamos, un marcáu enclín de los programadores a utilizar descomanadamente'l GOTO en BASIC, máxime nos noveles; fechu ésti que foi escayendo cola incorporación al llinguaxe d'otros recursos, tales como subrutinas parametradas, y darréu cola apaición de téuniques de programación estructurada.
Contrariu a la creencia popular, BASIC primeramente nun yera un llinguaxe interpretáu sinón compilado. Cuasi darréu dempués del so llanzamientu, los profesionales de computación empezaron a alegar que BASIC yera bien lentu y simple. Tal argumentu, hasta nun hai muncho, foi una tema recurrente na industria de los ordenadores.
Aun así, BASIC estender escontra munches máquines y plataformes, y popularizóse moderadamente nes minicomputadores como les de la serie DEC PDP y la Data Xeneral Nova. Nestos casos, el llinguaxe yera implementáu como intérprete, en cuenta de un compilador, o alternativamente, en dambes formes de funcionamientu.
Sicasí, foi cola introducción de la microcomputadora Altair 8800 en 1975 que BASIC estendióse llargamente. La mayoría de los llinguaxes de programación yeren demasiáu grandes pa ser allugaos poles pequeñu memories de que disponíen la mayor parte de les máquines nesa dómina; y col lentu almacenamientu que dexaba la cinta de papel, y más tarde la cinta de audiocasete (los discos magnéticos entá nun esistíen), y la falta d'editores de testu fayadizos, un llinguaxe pequeñu como BASIC resultaba una bona opción. Unu de los primeros n'apaecer foi Tiny BASIC, una implementación simple de BASIC escrita orixinalmente pol Dr. Li-Chen Wang, y portada más tarde a la máquina Altair por Dennis Allison, a pidimientu de Bob Albrecht (quien dempués fundó Dr. Dobb's Journal (DDJ)). El diseñu de Tiny BASIC y el códigu fonte completu foi publicáu en DDJ en 1976.
En 1975 Microsoft (entós formáu por dos persones: Bill Gates y Paul Allen) llanzó'l Altair BASIC. Depués empezaron a apaecer baxu llicencia versiones pa otres plataformes, y millones de copies y variantes llueu taríen n'usu. BASIC convertir n'unu de los llinguaxes estándar nel Apple II. En 1979 Microsoft taba axustando con dellos vendedores de microcomputadores, incluyendo IBM, pa llicenciar un intérprete de BASIC pa los sos ordenadores. Incluyóse una versión nes memories ROM de los PC IBM pa los equipos ensin discos. Los equipos que disponíen d'una unidá de disquete, el BASIC yera empecipiáu automáticamente siempres que nun s'asitiara nengún disquete d'arranque como sistema operativu.
Les nueves compañíes intentaben siguir los pasos del ésitu de Altair: IMSAI, North Star, y Apple, creando la revolución del ordenador caseru. BASIC convertir nuna carauterística estándar pa cuasi tolos ordenadores llariegos; la mayoría venía con un sistema operativu básicu ya intérprete de BASIC, tou agospiáu nuna ROM (daqué fechu per primer vegada na Commodore PET en 1977). Llueu habría munchos millones d'ordenadores alredor del mundu executando BASIC, un númberu muncho más grande que'l de tolos usuarios d'otros llinguaxes xuntos. Munchos programes, especialmente los de l'Apple II y IBM PC, dependíen de la presencia del intérprete de BASIC de Microsoft y nun podíen executase ensin este; polo que Microsoft usó la llicencia de copyright nos intérpretes de BASIC pa influyir nes negociaciones colos vendedores d'ordenadores.
El BASIC foi tamién el llinguaxe preinstalado nos ordenadores llariegos europeos de la década de los 80 como'l ZX Spectrum (Sinclair BASIC), Amstrad CPC (Locomotive BASIC), MSX (MSX BASIC), el Commodore 64 y 128 (Basic 2.0, Basic 7.0, Simons' Basic), los Commodore Amiga (AmigaBASIC) o la familia Atari de 8 bits (Atari BASIC) y nos ordenadores llariegos xaponeses NEC PC-8801 y NEC PC-9801 (N88-BASIC), faciendo munches vegaes la función d'intérprete y sistema operativu primitivu, yá que veníen implementaos dambos en ROM. Texas Instruments incorporó la so propia versión nes sos microcomputadoras, tal como la TI99/4A, y tamién con una versión estendida nuna ROM esterna o cartuchos (TI-Basic y TI Extended
Nesti periodu creáronse versiones de BASIC nueves y más poderoses. Microsoft vendió delles versiones de BASIC para MS-DOS/PC-DOS, incluyendo BASICA, GW-BASIC (una versión compatible con BASICA que nun precisaba la ROM de IBM), y Quick BASIC. El fabricante d'Turbo Pascal, Borland, publicó Turbo BASIC 1.0 en 1985 (versiones socesores entá se vienden sol nome de PowerBASIC por otra compañía). Apaecieron delles estensiones de BASIC pa ordenadores caseros, típicamente con capacidá pa gráficos, soníu, y comandos DOS, según facilidaes pa Programación estructurada. Hubo llinguaxes qu'usaron la sintaxis de BASIC como base pa otros sistemes totalmente distintos, por casu GRASS.
Sicasí a finales de la década de 1980 los ordenadores nuevos yeren muncho más complexes, ya incluyíen carauterístiques (como la Interfaz gráfica d'usuariu) que faíen a BASIC menos apropiáu pa programales. Coles mesmes los ordenadores progresaben de ser interés p'aficionaos a ferramientes usaes principalmente pa executar aplicaciones escrites por otros, y la programación en sí foise faciendo menos importante pa una creciente mayoría d'usuarios. BASIC empezó a esmorecese, anque numberoses versiones entá taben disponibles.
Una de les más poderoses foi'l denomináu Locomotive BASIC 2 diseñáu pa la redolada gráfica GEM. Esta nueva versión del llinguaxe dexaba crear aplicaciones con interfaces gráfiques dotaes de ventanes, menús y distintos tipos de gráficos estadísticos.
La suerte de BASIC dio un xiru nuevamente cola introducción de Visual Basic de Microsoft. Magar esti llinguaxe utiliza práuticamente toles pallabres clave (sentencies, estructures de control y funciones intrínseques) y forma de manexu y tipu de datos que versiones BASIC anteriores (DOS); VB ye abismalmente más potente y evolucionáu; y convirtióse n'unu de los llinguaxes más utilizaos na plataforma Windows; envalórase [ensin referencies] qu'ente'l 70 y el 80% del total d'aplicaciones comerciales son programaes en VB. A partir de 2002, y cola introducción de la plataforma .NET Framework de Microsoft, Visual Basic empieza a utilizar el paradigma "empobináu a oxetos", aumentando la potencia del llinguaxe y faciéndolo multiplataforma. Visual Basic for Applications (VBA) foi añadíu a Microsoft Excel 5.0 en 1993 y al restu de la llinia de productos de Microsoft Office en 1997. Windows 98 incluyó un intérprete de VBScript. La versión más recién de Visual Basic ye llamada VB.NET. Per otra parte, tamién esiste la variante OpenOffice.org Basic menos poderosa pero similar a VBA de Microsoft.
La sintaxis mínima de BASIC solo precisa los comandos LET, INPUT, PRINT, IF y GOTO. Un intérprete qu'executa programes con esta sintaxis mínima nun precisa una pila. Dalgunes de les primeres implementaciones yeren asina de simples. Si amiéstase-y una pila, pueden amestase tamién ciclos FOR añeraos y el comandu GOSUB. Un intérprete de BASIC con estes carauterístiques precisa que'l códigu tenga númberos de llinia.
Los númberos de llinia fueron un aspeutu bien distintivu del BASIC clásicu. Sicasí, l'usu de númberos de llinia tien la desventaxa de riquir que'l programador envalore cuántes llinies va ocupar la parte del programa qu'escribe. Esti requerimientu cumplir xeneralmente amontando los númberos de llinia nun intervalu regular, como 10, pero esto lleva a problemes a la hora que'l códigu dempués amestáu entepase l'espaciu disponible ente les llinies orixinales. Pa solliviar esti problema de los primeros intérpretes de BASIC, los usuarios espertos llueu escribieron los sos propios programes utilitarios pa renumerar los sos programes, dempués del ingresu inicial. Más tarde apaecieron intérpretes de BASIC qu'incluyíen un comandu específicu RENUMBER, el que dexaba renumerar rápido (y les vegaes que se quixera) tol códigu nuevamente, con cualquier intervalu ente llinies indicáu y a partir d'un númberu enteru dadu; esaniciando asina'l principal problema de la numberación de llinies obligatoria.
Nos dialeutos modernos de BASIC MIUN yá nun ye necesariu incluyir númberos de llinia (anque son dexaos), y la mayoría (o toos) añadieron control de fluxu estructurado y los constructores de declaración de datos similares a los d'otros llinguaxes, tales como C y Pascal:
Cuasi tolos dialeutos de BASIC inclúin el comandu REM (remark), que darréu foi sustituyíu pol símbolu ´ (apóstrofu o comilla simple). Ye un comandu non ejecutable, utilizar a los fines d'incluyir llinies y notes aclaratories nel códigu fonte, pa la meyor comprensión (y documentación) del programa.
Variantes recién como Visual Basic introducieron delles carauterístiques empobinaes a oxetos, y hasta heriedu na última versión. L'alministración de memoria ye más fácil que con munchos otros llinguaxes de programación procedurales pol usu d'un Pañador de basura (y a costes de la velocidá d'execución).
BASIC nun tien una biblioteca esterna estándar como otros llinguaxes como C. Sicasí, l'intérprete (o compilador) contién una biblioteca incorporada de procedimientos intrínsecos. Estos procedimientos inclúin la mayoría de les ferramientes qu'un programador precisa p'aprender a programar y escribir aplicaciones sencielles, según funciones pa realizar cálculos matemáticos, remanar cadenes, entrada dende la consola, gráficos y manipulación d'archivos.
Vieyos dialeutos de BASIC nun dexaben a los programadores escribir los sos propios procedimientos. El programadores sicasí teníen d'escribir los sos programes con un gran númberu d'enunciaos GOTO pa faer les derivaciones de fluxu y torna del programa. Esto podía producir un códigu fonte bien confusu (la mayoría de les vegaes yera asina), comúnmente conocíu como Códigu espagueti; el cual yera por demás malo de caltener, muncho menos por programadores ayenos al desarrollu del software.
Cola inclusión posterior d'enunciaos GOSUB (Go-Subroutine) ramificábase'l programa a especies de subrutinas, ensin parámetros o variables locales. Elles aproven una forma d'implementar una suerte de procedimientos (realmente nun lo son, cenciellamente ye un "saltu y torna") y estructurar más el programa, evitando abondo l'usu de la dañible sentencia GOTO.
La mayoría de les versiones de BASIC más modernes, como Microsoft QuickBASIC (1985-1988) y BASIC PDS (Profesional Developmen System - 1990) añadieron soporte completu pa subrutinas, funciones y programación estructurada. Esta ye otra área onde BASIC difier de munchos llinguaxes de programación. Sicasí la primitiva GOSUB caltúvose hasta les versiones actuales, por razones compatibilidá.
BASIC, como Pascal, fai una distinción ente un procedimientu que nun devuelve un valor (llamáu subrutina) y un procedimientu que lu fai (llamáu función). Munchos otros llinguaxes (como C) nun faen esa distinción y consideren tou como una función (dalgunes que devuelven un valor “void” [vacíu]).
Ente que les funciones que devuelven un valor son una adición relativamente recién a los dialeutos de BASIC, munchos de los primeros sistemes soportaben la definición de funciones matemátiques en llinia, con DEF FN (“Define FunctioN” [Definir FUNCIÓN]). El Dartmouth BASIC orixinal tamién soportaba funciones al estilu de Algol, según subrutinas dende los sos primeros tiempos.
BASIC ye reconocíu por tener bien bones funciones pa manipoliar cadenes de calteres. Los primeros dialeutos yá teníen un xuegu de funciones fundamentales (LEFT$, MID$, RIGHT$) pa estrayer y/o reemplazar subcadenas fácilmente. Como les cadenes son utilizaes n'aplicaciones diaries, esta yera una ventaya considerable sobre otros llinguaxes al momentu de la so introducción.
El Dartmouth BASIC orixinal soportaba namái datos de tipu numbéricu y cadenes. Nun había un tipu enteru. Toles variables numbériques yeren de coma flotante. Les cadenes yeren de tamañu dinámicu. Soportaba arreglos de dambos, númberos y cadenes, nuna o dos dimensiones.
Cada dialeutu modernu de BASIC tien siquier los tipos de datos numbéricu y cadena. Estos tipos de datos pueden estremase usando un posfijo: los identificadores de cadenes terminen con $ (signu dólar, exemplu la variable NOME$), ente que los numbéricos cenciellamente nun lleven posfijo; nun siendo que se riquir indicar y forzar explícitamente qué tipu de numbéricu ye, por casu A% ye enteru, A! ye real simple precisión y A# ye real doble precisión.
En BASIC les variables nun precisen por fuercia ser declaraes antes d'usase, sacante los arreglos de más de 10 elementos; anque versiones BASIC relativamente modernes tienen la opción (considerada bona práutica de programación) pa obligar al programador a declarar toa variable antes del so usu (una directiva como OPTION EXPLICIT). La declaración de variables en BASIC faise usando la pallabra clave DIM.
Munchos dialeutos tamién soporten tipos numbéricos adicionales, como enteros de 16 y 32 bits (simple y long, respeutivamente), amás de los sos númberos de coma flotante. Adicionalmente dalgunos dexen l'usu de tipos de datos definíos pol usuariu, similar a los "records" de Pascal, o les "structs" de C.
Versiones modernes de BASIC (como VBA) soporten una gran variedá de tipos de datos primitivos (o intrínsecos), amás de los definíos pol usuariu.
La mayoría de los dialeutos de BASIC soporta arreglos en tolos sos tipos de datos; ye común tamién el soporte p'arreglos mulidimensionales
Exemplos:
DIM MatrizDeEnteros(100,100) AS INTEGER
DIM VectorDeEnteros%(30)
DIM ListaDeNombres(50) AS STRING
DIM ListaDeCiudades$(50)
Dependiendo del dialeutu de BASIC y del usu del enunciáu OPTION BASE, el primer índiz de los arreglos que se declaren va ser 1, por defectu ye cero.
Nos exemplos anteriores, si nun se declara primeramente "OPTION BASE 1", el primeru ye un arreglu en dos dimensiones d'enteros 16 bits, con índices que van dende 0 hasta 100 (matriz de 101 x 101 elementos); en cuantes que'l segundu ye un arreglu d'enteros nuna sola dimensión, de 0 a 30 (vector de 31 elementos). Reparar que los dos formes de declaración d'enteros son equivalentes, explicitándolo o col usu del posfijo %. Análogamente pa cadenes o string de calteres, que nesti casu amás son de llargor variable (dinámiques, por defectu).
BASIC ta disponible pa cuasi toles plataformes y sistemes operativos esistentes. Una implementación gratuita que cumple con estándares y ye multiplataforma ye Bywater BASIC (bwBASIC). L'intérprete ta escritu en C y vien so la llicencia GNU. Ta diseñáu pa interfaz de testu o consola (non gráfica), nun inclúi soporte pa crear interfaces gráfiques d'usuariu (GUI's, Graphical User Interface). Hai un BASIC gratuitu que si inclúi soporte pa GUI, ye similar a Visual Basic y execútase en Windows y GNU/Linux, ye Phoenix Object BASIC.
Les versiones d'intérpretes/compiladores más conocíos son la llinia de productos Quick BASIC y QBASIC, esti postreru ye solu intérprete, dambos son de Microsoft. Na actualidá ser el modernu Visual BASIC, que Microsoft trató de caltener siquier mínimamente compatible con inclusive les primeres versiones de les sos BASIC (en realidá ye escasamente compatible), magar esiste FreeBASIC que ye un compilador llibre, compatible en sintaxis con QBASIC/QuickBASIC.
Otres versiones comerciales inclúin PowerBASIC de PowerBASIC, PureBasic de Fantaisie Software, según TrueBASIC de TrueBASIC, que cumple colos últimos estándares oficiales de BASIC. (True BASIC Inc. foi fundada polos creadores orixinales de Dartmouth BASIC.)
REALbasic ye una variante disponible pa Mac OS Classic, Mac OS X, Microsoft Windows y GNU/Linux, comercializada polos actuales propietarios de Rapid-Q, otra implementación primeramente llibre de BASIC anguaño abandonada. Una versión d'un dialeutu simple de BASIC pa la parrot virtual machine, amuesa cómo s'implementa un intérprete de BASIC nun llinguaxe similar al ensamblador. SmallBASIC ye un dialeutu qu'executa en munches plataformes (Win32, DOS, GNU/Linux y PalmOS) y vien so la llicencia GNU (GPL).
Esisten munches implementaciones de BASIC freeware o GNU, como BCX, YaBasic, HBasic, XBasic, Gambes o Just BASIC, ente otres.
PRINT "¡Hola Mundu!"
10 INPUT "Cuál ye'l so nome:"; NN$
20 PRINT "Bienveníu al 'asterisquero' ";NN$
25 PRINT
30 INPUT "con cuántos asteriscos empecipia [Cero sale]:"; N
40 IF N<=0 THEN GOTO 200
50 AS$=""
60 FOR I=1 TO N
70 AS$=AS$+"*"
80 NEXT I 90
PRINT "AQUI ESTAN:"; AS$
100 INPUT "Desea más asteriscos:";SN$
110 IF SN$="" THEN GOTO 100
120 IF SN$<>"S" AND SN$<>"s" THEN GOTO 200
130 INPUT "CUANTES VEGAES DESEA REPITILOS [Cero sale]:"; VEGAES
140 IF VEGAES<=0 THEN GOTO 200
150 FOR I=1 TO VEGAES
160 PRINT AS$;
170 NEXT I 180
PRINT
185 REM A repitir tol ciclu (comentariu)
190 GOTO 25
200 END
DEFINT I-N 'Declara entera toa variable qu'empiece con lletres I a N
iTrue = -1 'Flag en Verdaderu INPUT
"¿Cuál ye'l so nome"; NombreUsuario$
PRINT "Bievenido al 'asterisquero',"; NombreUsuario$
DO PRINT
""
INPUT "¿Con cuántos asteriscos empecipia [Cero sale]:"; NroAsteriscos
IF NroAsteriscos<=0 THEN EXIT DO Asterisco$
= ""
FOR I=1 TO NroAsteriscos
Asteriscos$=Asteriscos$ + "*"
NEXT I PRINT
"AQUI ESTAN: "; Asterisco$
DO INPUT
"Desea más asteriscos:";SN$
LOOP UNTIL SN$<>""
IF SN$<>"S" AND SN$<>"s" THEN EXIT DO 'Salida INPUT
"CUANTES VEGAES DESEA REPITILOS [Cero sale]:";iVeces
IF iVeces<=0 THEN EXIT DO 'Salida FOR
I = 1 TO iVeces
PRINT Asteriscos$;
NEXT I PRINT
LOOP WHILE iTrue
END
Implementaciones de BASIC
BASICs de Microsoft:
BASICs de Mac:
BASICs de GNU/Linux:
Otros