BASIC ( Código de instrucciones simbólicas para principiantes ) [1] es una familia de lenguajes de programación de alto nivel y propósito general diseñados para facilitar su uso. La versión original fue creada por John G. Kemeny y Thomas E. Kurtz en el Dartmouth College en 1963. Querían permitir que los estudiantes de campos no científicos usaran computadoras. En ese momento, casi todas las computadoras requerían escribir software personalizado, que solo los científicos y matemáticos tendían a aprender.
Además del lenguaje de programación, Kemeny y Kurtz desarrollaron el Dartmouth Time Sharing System (DTSS), que permitía a varios usuarios editar y ejecutar programas BASIC simultáneamente en terminales remotas. Este modelo general se hizo popular en sistemas de minicomputadoras como la PDP-11 y la Data General Nova a fines de la década de 1960 y principios de la de 1970. Hewlett-Packard produjo una línea completa de computadoras para este método de operación, presentando la serie HP2000 a fines de la década de 1960 y continuando las ventas hasta la década de 1980. Muchos de los primeros videojuegos remontan su historia a una de estas versiones de BASIC.
La aparición de los microordenadores a mediados de los años 1970 condujo al desarrollo de múltiples dialectos BASIC, incluido Microsoft BASIC en 1975. Debido a la pequeña memoria principal disponible en estas máquinas, a menudo de 4 KB, también se crearon una variedad de dialectos Tiny BASIC . BASIC estaba disponible para casi cualquier sistema de la época y se convirtió en el lenguaje de programación de facto para los sistemas informáticos domésticos que surgieron a finales de los años 1970. Estos PC casi siempre tenían un intérprete BASIC instalado por defecto, a menudo en el firmware de la máquina o, a veces, en un cartucho ROM .
BASIC perdió popularidad en la década de 1990, a medida que llegaron al mercado microcomputadoras más potentes y los lenguajes de programación con características avanzadas (como Pascal y C ) se volvieron sostenibles en dichas computadoras. Para entonces, la mayoría de los usuarios de computadoras personales no técnicos dependían de aplicaciones preescritas en lugar de escribir sus propios programas. En 1991, Microsoft lanzó Visual Basic , que combinaba una versión actualizada de BASIC con un generador de formularios visuales . Esto reavivó el uso del lenguaje y "VB" sigue siendo un lenguaje de programación importante [2] [3] en la forma de VB.NET , mientras que sigue existiendo una escena de aficionados a BASIC en general. [4] [5]
John G. Kemeny fue el presidente del Departamento de Matemáticas del Dartmouth College. Basándose en gran medida en su reputación como innovador en la enseñanza de las matemáticas, en 1959 la universidad ganó un premio de la Fundación Alfred P. Sloan por 500.000 dólares para construir un nuevo edificio para el departamento. [6] Thomas E. Kurtz se había incorporado al departamento en 1956 y, a partir de los años 60, Kemeny y Kurtz coincidieron en la necesidad de alfabetización en programación entre los estudiantes fuera de los campos tradicionales de STEM . Kemeny señaló más tarde que "nuestra visión era que todos los estudiantes del campus deberían tener acceso a una computadora , y cualquier miembro del profesorado debería poder utilizar una computadora en el aula cuando fuera apropiado. Era tan simple como eso". [7]
Kemeny y Kurtz habían realizado dos experimentos previos con lenguajes simplificados, DARSIMCO (Dartmouth Simplified Code) y DOPE (Dartmouth Oversimplified Programming Experiment) . Estos no progresaron más allá de una sola clase de primer año. Luego siguieron nuevos experimentos con Fortran y ALGOL , pero Kurtz concluyó que estos lenguajes eran demasiado complicados para lo que deseaban. Como señaló Kurtz, Fortran tenía numerosos comandos formados de manera extraña, en particular una "convención casi imposible de memorizar para especificar un bucle: ¿Es '1, 10, 2' o '1, 2, 10', y es necesaria o no la coma después del número de línea?" [7]DO 100, I = 1, 10, 2
Además, la falta de cualquier tipo de retroalimentación inmediata era un problema clave; las máquinas de la época utilizaban el procesamiento por lotes y tardaban mucho tiempo en completar la ejecución de un programa. Mientras Kurtz visitaba el MIT , John McCarthy sugirió que el tiempo compartido ofrecía una solución; una sola máquina podría dividir su tiempo de procesamiento entre muchos usuarios, dándoles la ilusión de tener una computadora (lenta) para ellos solos. [8] Los programas pequeños devolverían resultados en unos pocos segundos. Esto llevó a un creciente interés en un sistema que utilizara el tiempo compartido y un nuevo lenguaje específicamente para su uso por parte de estudiantes no especializados en ciencia, tecnología, ingeniería y matemáticas. [7]
Kemeny escribió la primera versión de BASIC. El acrónimo BASIC proviene del nombre de un artículo inédito de Thomas Kurtz. [9] El nuevo lenguaje se basó en gran medida en FORTRAN II; las instrucciones eran de una a una línea, se usaban números para indicar el destino de los bucles y las bifurcaciones, y muchos de los comandos eran similares o idénticos a Fortran. Sin embargo, la sintaxis se modificó siempre que se pudiera mejorar. Por ejemplo, el difícil de recordar DO
loop fue reemplazado por el mucho más fácil de recordar , y el número de línea utilizado en el DO se indicó en su lugar con el . [a] Del mismo modo, la declaración críptica de Fortran, cuya sintaxis coincidía con una instrucción particular de la máquina en la que se escribió originalmente, se convirtió en el más simple . Estos cambios hicieron que el lenguaje fuera mucho menos idiosincrásico, al tiempo que conservaba una estructura general y se sentía similar al FORTRAN original. [7]FOR I = 1 TO 10 STEP 2
NEXT I
IF
IF I=5 THEN GOTO 100
El proyecto recibió una subvención de 300.000 dólares de la National Science Foundation , que se utilizó para comprar un ordenador GE-225 para el procesamiento y un procesador en tiempo real Datanet-30 para manejar los teleimpresores Teletype Model 33 utilizados para la entrada y la salida. Un equipo de una docena de estudiantes universitarios trabajó en el proyecto durante aproximadamente un año, escribiendo tanto el sistema DTSS como el compilador BASIC. [7] La primera versión del lenguaje BASIC se publicó el 1 de mayo de 1964. [10] [11]
En un principio, BASIC se concentró en el trabajo matemático sencillo, con soporte para aritmética matricial desde su implementación inicial como lenguaje por lotes, y la funcionalidad de cadenas de caracteres se agregó en 1965. Su uso en la universidad se expandió rápidamente, requiriendo que la CPU principal fuera reemplazada por una GE-235, [7] y más tarde por una GE-635. A principios de la década de 1970, había cientos de terminales conectadas a las máquinas de Dartmouth, algunas de ellas de forma remota.
Con la intención de que el lenguaje se utilizara de forma generalizada, sus diseñadores pusieron a disposición el compilador de forma gratuita. En los años 60, el software se convirtió en un producto de pago; hasta entonces, se proporcionaba sin cargo como servicio con ordenadores caros, normalmente disponibles sólo en alquiler. También lo pusieron a disposición de las escuelas secundarias de la zona de Hanover, New Hampshire , y de forma regional en toda Nueva Inglaterra mediante terminales de teleimpresora Teletype Modelo 33 y Modelo 35 conectadas a Dartmouth a través de líneas telefónicas de acceso telefónico, y dedicaron un esfuerzo considerable a promocionar el lenguaje. En los años siguientes, a medida que aparecían otros dialectos de BASIC, el dialecto BASIC original de Kemeny y Kurtz pasó a conocerse como Dartmouth BASIC .
New Hampshire reconoció el logro en 2019 cuando erigió un marcador histórico de carretera en Hanover que describe la creación del "primer lenguaje de programación fácil de usar". [12]
El surgimiento de BASIC se produjo como parte de un movimiento más amplio hacia los sistemas de tiempo compartido. La idea, que se concibió por primera vez a fines de la década de 1950, se volvió tan dominante en la industria informática a principios de la década de 1960 que sus defensores hablaban de un futuro en el que los usuarios "comprarían tiempo en la computadora de la misma manera que un hogar promedio compra electricidad y agua a las compañías de servicios públicos". [13]
General Electric, que había trabajado en el proyecto Dartmouth, escribió su propio sistema operativo subyacente y lanzó un sistema de tiempo compartido en línea conocido como Mark I. Presentaba BASIC como uno de sus principales puntos de venta. Otras empresas en el campo emergente siguieron rápidamente su ejemplo; Tymshare introdujo SUPER BASIC en 1968, CompuServe tenía una versión en el DEC-10 en su lanzamiento en 1969, y a principios de la década de 1970 BASIC era prácticamente universal en los ordenadores centrales de propósito general . Incluso IBM se unió finalmente al club con la introducción de VS-BASIC en 1973. [14]
Aunque los servicios de tiempo compartido con BASIC tuvieron éxito durante un tiempo, no se produjo el éxito generalizado predicho anteriormente. La aparición de las minicomputadoras durante el mismo período, y especialmente de las microcomputadoras de bajo costo a mediados de los años 1970, permitió que cualquiera pudiera comprar y utilizar sus propios sistemas en lugar de comprar tiempo en línea, que normalmente se facturaba a dólares por minuto. [b] [15]
BASIC, por su propia naturaleza de ser pequeño, era naturalmente adecuado para ser portado al mercado de minicomputadoras , que estaba surgiendo al mismo tiempo que los servicios de tiempo compartido. Estas máquinas tenían una memoria principal pequeña , quizás tan solo 4 KB en la terminología moderna, [c] y carecían de almacenamiento de alto rendimiento como discos duros que hacen que los compiladores sean prácticos. En estos sistemas, BASIC normalmente se implementaba como un intérprete en lugar de un compilador debido a su menor requisito de memoria de trabajo. [d]
Un ejemplo particularmente importante fue HP Time-Shared BASIC , que, al igual que el sistema original de Dartmouth, utilizaba dos computadoras que trabajaban juntas para implementar un sistema de tiempo compartido. La primera, una máquina de gama baja de la serie HP 2100 , se utilizaba para controlar la entrada del usuario y guardar y cargar sus programas en cinta o disco. La otra, una versión de gama alta de la misma máquina subyacente, ejecutaba los programas y generaba la salida. Por un costo de aproximadamente $100,000, uno podía tener una máquina capaz de ejecutar entre 16 y 32 usuarios al mismo tiempo. [16] El sistema, incluido como HP 2000, fue la primera miniplataforma en ofrecer tiempo compartido y fue un éxito inmediato, catapultando a HP a convertirse en el tercer proveedor más grande en el espacio de minicomputadoras, detrás de DEC y Data General (DG). [17]
DEC, líder en el espacio de las minicomputadoras desde mediados de los años 1960, había ignorado inicialmente BASIC. Esto se debió a su trabajo con RAND Corporation , que había comprado un PDP-6 para ejecutar su lenguaje JOSS , que era conceptualmente muy similar a BASIC. [18] Esto llevó a DEC a introducir una versión más pequeña y limpia de JOSS conocida como FOCAL , que promovieron intensamente a finales de los años 1960. Sin embargo, con los sistemas de tiempo compartido que ofrecían BASIC ampliamente, y toda su competencia en el espacio de las minicomputadoras haciendo lo mismo, los clientes de DEC clamaban por BASIC. Después de que la gerencia ignorara repetidamente sus súplicas, David H. Ahl se encargó de comprar un BASIC para el PDP-8 , que fue un gran éxito en el mercado educativo. A principios de los años 1970, FOCAL y JOSS habían sido olvidados y BASIC se había vuelto casi universal en el mercado de las minicomputadoras. [19] DEC luego presentaría su versión actualizada, BASIC-PLUS , para su uso en el sistema operativo de tiempo compartido RSTS/E .
Durante este período , se escribieron en BASIC varios juegos simples basados en texto , el más notable fue Star Trek de Mike Mayfield . David Ahl recopiló estos juegos, algunos de ellos portados desde FOCAL, y los publicó en un boletín educativo que compiló. Más tarde recopiló varios de ellos en forma de libro, 101 BASIC Computer Games , publicado en 1973. [20] Durante el mismo período, Ahl participó en la creación de una pequeña computadora para uso educativo, una de las primeras computadoras personales . Cuando la gerencia se negó a apoyar el concepto, Ahl dejó DEC en 1974 para fundar la influyente revista de computadoras, Creative Computing . El libro siguió siendo popular y se volvió a publicar en varias ocasiones. [21]
La introducción de los primeros microordenadores a mediados de los años 70 fue el inicio de un crecimiento explosivo para BASIC. Tenía la ventaja de que era bastante conocido por los jóvenes diseñadores y aficionados a la informática que se interesaban por los microordenadores, muchos de los cuales habían visto BASIC en minis o mainframes. A pesar de la famosa sentencia de Dijkstra en 1975, "Es prácticamente imposible enseñar buena programación a estudiantes que han tenido una exposición previa a BASIC: como programadores potenciales están mentalmente mutilados sin esperanza de regeneración", [22] BASIC era uno de los pocos lenguajes que era a la vez lo suficientemente de alto nivel para ser utilizado por personas sin formación y lo suficientemente pequeño para caber en los microordenadores de la época, lo que lo convirtió en el lenguaje de programación estándar de facto en los primeros microordenadores.
La primera versión de BASIC para microcomputadoras fue coescrita por Bill Gates , Paul Allen y Monte Davidoff para su recién formada compañía, Micro-Soft. [23] Esta fue lanzada por MITS en formato de cinta perforada para el Altair 8800 poco después de la propia máquina, [24] consolidando inmediatamente a BASIC como el lenguaje principal de las primeras microcomputadoras. Los miembros del Homebrew Computer Club comenzaron a circular copias del programa, lo que provocó que Gates escribiera su Carta abierta a los aficionados , quejándose de este temprano ejemplo de piratería de software .
En parte como respuesta a la carta de Gates y en parte para hacer un BASIC aún más pequeño que pudiera funcionar de manera útil en máquinas de 4 KB, [e] Bob Albrecht instó a Dennis Allison a escribir su propia variación del lenguaje. Cómo diseñar e implementar una versión reducida de un intérprete para el lenguaje BASIC fue tratado en artículos de Allison en los primeros tres números trimestrales del boletín de People's Computer Company publicado en 1975 y las implementaciones con código fuente publicadas en Dr. Dobb's Journal of Tiny BASIC Calisthenics & Orthodontia: Running Light Without Overbyte . Esto condujo a una amplia variedad de Tiny BASIC con características añadidas u otras mejoras, con versiones de Tom Pittman y Li-Chen Wang que se hicieron particularmente conocidas. [25]
Microsoft, en ese momento Microsoft , adaptó su intérprete para el MOS 6502 , que rápidamente se convirtió en uno de los microprocesadores más populares de la era de los 8 bits. Cuando comenzaron a aparecer nuevos microordenadores, en particular la "trinidad de 1977" formada por el TRS-80 , el Commodore PET y el Apple II , o bien incluyeron una versión del código MS, o bien introdujeron rápidamente nuevos modelos con él. Los ordenadores personales de Ohio Scientific también se sumaron a esta tendencia en esa época. En 1978, MS BASIC era un estándar de facto y prácticamente todos los ordenadores domésticos de los años 1980 lo incluían en la ROM . Al arrancar, se presentó un intérprete BASIC en modo directo .
Commodore Business Machines incluye Commodore BASIC , basado en Microsoft BASIC. Apple II y TRS-80 tienen dos versiones de BASIC: una versión introductoria más pequeña con los lanzamientos iniciales de las máquinas y una versión basada en Microsoft que se introdujo a medida que aumentaba el interés en las plataformas. A medida que nuevas empresas entraban en el campo, se añadieron versiones adicionales que cambiaron sutilmente la familia BASIC. Los ordenadores Atari de 8 bits utilizan el Atari BASIC de 8 KB que no se deriva de Microsoft BASIC. Sinclair BASIC se introdujo en 1980 con Sinclair ZX80 y más tarde se amplió para Sinclair ZX81 y Sinclair ZX Spectrum . BBC BASIC , publicado por la BBC y desarrollado por Acorn Computers , incorpora palabras clave de programación estructurada adicionales y funciones de punto flotante.
A medida que la popularidad de BASIC creció en este período, las revistas de computadoras publicaron el código fuente completo en BASIC para videojuegos, utilidades y otros programas. Dada la naturaleza sencilla de BASIC, era una cuestión simple escribir el código de la revista y ejecutar el programa. Se publicaron diferentes revistas con programas para computadoras específicas, aunque algunos programas BASIC se consideraron universales y podían usarse en máquinas que ejecutaran cualquier variante de BASIC (a veces con adaptaciones menores). También estaban disponibles muchos libros de programas para escribir y, en particular, Ahl publicó versiones de los 101 juegos BASIC originales convertidos al dialecto de Microsoft y los publicó desde Creative Computing como BASIC Computer Games . Este libro, y sus secuelas, proporcionaron cientos de programas listos para usar que podían convertirse fácilmente a prácticamente cualquier plataforma que ejecutara BASIC. [20] [26] [27] El libro llegó a las tiendas en 1978, justo cuando el mercado de las computadoras domésticas estaba comenzando, y se convirtió en el primer libro de computadoras con un millón de ventas. Los paquetes posteriores, como Learn to Program BASIC, también tendrían los juegos como enfoque introductorio. En las computadoras CP/M orientadas a empresas que pronto se generalizaron en los entornos de pequeñas empresas, Microsoft BASIC ( MBASIC ) fue una de las aplicaciones líderes. [28]
En 1978, David Lien publicó la primera edición de The BASIC Handbook: An Encyclopedia of the BASIC Computer Language , que documentaba palabras clave de más de 78 computadoras diferentes. En 1981, la segunda edición documentaba palabras clave de más de 250 computadoras diferentes, lo que mostraba el crecimiento explosivo de la era de las microcomputadoras. [29]
Cuando IBM estaba diseñando el IBM PC , siguieron el paradigma de los ordenadores domésticos existentes al tener un intérprete BASIC integrado. Lo obtuvieron de Microsoft - IBM Cassette BASIC - pero Microsoft también produjo otras versiones de BASIC para MS-DOS / PC DOS, incluyendo IBM Disk BASIC (BASIC D), IBM BASICA (BASIC A), GW-BASIC (una versión compatible con BASICA que no necesitaba la ROM de IBM) [30] y QBasic , todas ellas normalmente incluidas con la máquina. Además produjeron el compilador Microsoft BASIC dirigido a programadores profesionales. Turbo Pascal -editor Borland publicó Turbo Basic 1.0 en 1985 (las versiones sucesoras todavía se comercializan bajo el nombre de PowerBASIC ). En sistemas tipo Unix , se crearon implementaciones especializadas como XBasic y X11-Basic. [31] XBasic fue portado a Microsoft Windows como XBLite , y surgieron variantes multiplataforma como SmallBasic , yabasic , Bywater BASIC , [32] [33] nuBasic, [34] MyBasic, [35] Logic Basic, [36] Liberty BASIC y wxBasic . Mientras tanto, FutureBASIC y Chipmunk Basic apuntaban a Apple Macintosh , mientras que yab es una versión de yaBasic optimizada para BeOS , ZETA y Haiku . [37]
Estas variaciones posteriores introdujeron muchas extensiones, como una mejor manipulación de cadenas y soporte de gráficos, acceso al sistema de archivos y tipos de datos adicionales . Más importantes fueron las facilidades para la programación estructurada , incluidas estructuras de control adicionales y subrutinas adecuadas que admitían variables locales . [38] Sin embargo, en la segunda mitad de la década de 1980, los usuarios utilizaban cada vez más aplicaciones prefabricadas escritas por otros en lugar de aprender programación por sí mismos; mientras que los programadores profesionales ahora tenían una amplia gama de lenguajes más avanzados disponibles en computadoras pequeñas. C y más tarde C++ se convirtieron en los lenguajes de elección para el desarrollo de aplicaciones profesionales "envueltas en plástico" . [39] [40]
Un nicho que BASIC continuó llenando fue el del desarrollo de videojuegos para aficionados , ya que los sistemas de creación de juegos y los motores de juego fácilmente disponibles todavía estaban en sus inicios. El Atari ST tenía STOS BASIC mientras que el Amiga tenía AMOS BASIC para este propósito. Microsoft exhibió por primera vez BASIC para el desarrollo de juegos con DONKEY.BAS para GW-BASIC , y más tarde GORILLA.BAS y NIBBLES.BAS para QuickBASIC . QBasic mantuvo una comunidad de desarrollo de juegos activa, [41] [42] que ayudó más tarde a generar las implementaciones de QB64 y FreeBASIC . [43] En 2013, un juego escrito en QBasic y compilado con QB64 para computadoras modernas titulado Black Annex fue lanzado en Steam . [44] [45] Blitz Basic , Dark Basic , SdlBasic , Super Game System Basic, [46] PlayBASIC, [47] CoolBasic, [48] AllegroBASIC , [49] ethosBASIC, [50] GLBasic y Basic4GL satisficieron aún más esta demanda, hasta llegar al moderno RCBasic, [51] NaaLaa, [52] AppGameKit , [53] Monkey 2 y Cerberus-X. [54]
En 1991, Microsoft presentó Visual Basic , un desarrollo evolutivo de QuickBASIC . Incluía construcciones de ese lenguaje, como sentencias de control estructuradas en bloques, subrutinas parametrizadas y tipado estático opcional , así como construcciones orientadas a objetos de otros lenguajes, como "With" y "For Each". El lenguaje mantuvo cierta compatibilidad con sus predecesores, como la palabra clave Dim para declaraciones, sentencias "Gosub"/Return y números de línea opcionales que podían usarse para localizar errores. Un factor importante para el desarrollo de Visual Basic fue su uso como nuevo lenguaje de macros para Microsoft Excel , un programa de hojas de cálculo . Para sorpresa de muchos en Microsoft, que inicialmente lo comercializaban como un lenguaje para aficionados, el lenguaje comenzó a usarse ampliamente para pequeñas aplicaciones comerciales personalizadas poco después del lanzamiento de VB versión 3.0, que se considera ampliamente la primera versión relativamente estable. Microsoft también lo escindió como Visual Basic para aplicaciones y Visual Basic integrado .
Aunque muchos programadores avanzados todavía se burlaban de su uso, Visual Basic satisfacía las necesidades de las pequeñas empresas de manera eficiente, ya que en ese momento, las computadoras que ejecutaban Windows 3.1 se habían vuelto lo suficientemente rápidas como para que muchos procesos relacionados con las empresas pudieran completarse "en un abrir y cerrar de ojos" incluso utilizando un lenguaje "lento", siempre que no se involucraran grandes cantidades de datos. Muchos propietarios de pequeñas empresas descubrieron que podían crear sus propias aplicaciones pequeñas, pero útiles, en unas pocas tardes para satisfacer sus propias necesidades especializadas. Finalmente, durante la larga vida de VB3, el conocimiento de Visual Basic se había convertido en una habilidad laboral comercializable. Microsoft también produjo VBScript en 1996 y Visual Basic .NET en 2001. Este último tiene esencialmente la misma potencia que C# y Java, pero con una sintaxis que refleja el lenguaje Basic original, y también presenta cierta capacidad multiplataforma a través de implementaciones como Mono-Basic . [55] El IDE , con su generador de GUI basado en eventos , también influyó en otras herramientas de desarrollo rápido de aplicaciones , en particular Delphi para Object Pascal de Borland Software y sus propios descendientes como Lazarus . [56] [57]
El soporte general para la versión final 6.0 del Visual Basic original finalizó el 31 de marzo de 2005, seguido por un soporte extendido en marzo de 2008. [58] Debido a su persistente popularidad restante, [59] existen intentos de terceros para brindarle más soporte. [60] El 2 de febrero de 2017, Microsoft anunció que el desarrollo en VB.NET ya no sería en paralelo con el de C#, [61] y el 11 de marzo de 2020, se anunció que la evolución del lenguaje VB.NET también había concluido. [62] Aun así, el lenguaje todavía contaba con soporte. [63]
Muchos otros dialectos BASIC también han surgido desde 1990, incluyendo el QB64 de código abierto y FreeBASIC , inspirados en QBasic, y los RapidQ , HBasic , Basic For Qt y Gambas de estilo Visual Basic . [4] Las encarnaciones comerciales modernas incluyen PureBasic , PowerBASIC , Xojo , Monkey X y True BASIC (el sucesor directo de Dartmouth BASIC de una compañía controlada por Kurtz).
También existen actualmente varios intérpretes BASIC simples basados en la web, incluidos Small Basic de Microsoft y wwwBASIC de Google . [64] También existen varios compiladores que convierten BASIC en JavaScript , [65] como NS Basic .
A partir de esfuerzos anteriores como Mobile Basic , [66] [67] ahora hay muchos dialectos disponibles para teléfonos inteligentes y tabletas.
En las consolas de juegos, una aplicación para Nintendo 3DS y Nintendo DSi llamada Petit Computer permite programar en una versión ligeramente modificada de BASIC con soporte para botones DS. También se ha lanzado una versión para Nintendo Switch , a la que también se le ha suministrado una versión del Fuze Code System, [68] una variante de BASIC [69] implementada por primera vez como una máquina Raspberry Pi personalizada. [70] Anteriormente, BASIC estaba disponible en consolas como Family BASIC (para Nintendo Famicom ) y PSX Chipmunk Basic (para la PlayStation original ), mientras que yabasic fue portado a PlayStation 2 y FreeBASIC a la Xbox original .
Existen variantes de BASIC disponibles en calculadoras gráficas y programables fabricadas por Texas Instruments ( TI-BASIC ), HP (HP BASIC), Casio ( Casio BASIC ) y otras.
QBasic , una versión de Microsoft QuickBASIC sin el enlazador para crear archivos EXE, está presente en los flujos de sistemas operativos Windows NT y DOS- Windows 95 y se puede obtener para versiones más recientes como Windows 7 que no los tienen. Antes de DOS 5, el intérprete de Basic era GW-Basic . QuickBasic es parte de una serie de tres lenguajes emitidos por Microsoft para el usuario avanzado del hogar y la oficina y el desarrollo profesional a pequeña escala; QuickC y QuickPascal son los otros dos. Para Windows 95 y 98, que no tienen QBasic instalado de forma predeterminada, se pueden copiar desde el disco de instalación, que tendrá un conjunto de directorios para software antiguo y opcional; otros comandos faltantes como Exe2Bin y otros están en estos mismos directorios.
Las distintas suites ofimáticas de Microsoft, Lotus y Corel y los productos relacionados se pueden programar con Visual Basic de una forma u otra, incluido LotusScript , que es muy similar a VBA 6. El emulador de terminal Host Explorer utiliza WWB como lenguaje de macros; o más recientemente, el programa y la suite en la que está contenido se pueden programar en una variante interna de Basic conocida como Hummingbird Basic. La variante VBScript se utiliza para programar contenido web, Outlook 97, Internet Explorer y Windows Script Host. WSH también tiene un motor Visual Basic para Aplicaciones (VBA) instalado como el tercero de los motores predeterminados junto con VBScript, JScript y los numerosos motores propietarios o de código abierto que se pueden instalar como PerlScript , un par de motores basados en Rexx, Python, Ruby, Tcl, Delphi, XLNT, PHP y otros; lo que significa que las dos versiones de Basic se pueden utilizar junto con los otros lenguajes mencionados, así como LotusScript, en un archivo WSF, a través del modelo de objetos de componentes y otras construcciones de WSH y VBA. VBScript es uno de los lenguajes a los que se puede acceder mediante los shells mejorados 4Dos, 4NT y Take Command. SaxBasic y WWB también son muy similares a la línea de implementaciones de Basic de Visual Basic. El lenguaje de macros anterior a Office 97 para Microsoft Word se conoce como WordBASIC . Excel 4 y 5 utilizan el propio Visual Basic como lenguaje de macros. Chipmunk Basic , un intérprete de la vieja escuela similar a los BASIC de la década de 1970, está disponible para Linux , Microsoft Windows y macOS .
La ubicuidad de los intérpretes BASIC en las computadoras personales era tal que los libros de texto incluían ejercicios sencillos de "Pruébelo en BASIC" que alentaban a los estudiantes a experimentar con conceptos matemáticos y computacionales en las computadoras del aula o del hogar. Las revistas informáticas populares de la época solían incluir programas que se podían escribir en el teclado .
El futurista y escritor de ciencia ficción David Brin lamentó la pérdida del omnipresente BASIC en un artículo de Salon en 2006 [71], al igual que otros que utilizaron computadoras por primera vez durante esta era. A su vez, el artículo impulsó a Microsoft a desarrollar y lanzar Small Basic ; [72] también inspiró proyectos similares como Basic-256 [73] [74] y el Quite Basic basado en la web. [75] Dartmouth celebró el 50 aniversario de BASIC el 1 de mayo de 2014. [76] El uso pedagógico de BASIC ha sido seguido por otros lenguajes, como Pascal , Java y particularmente Python . [77]
El Dartmouth College celebró el 50º aniversario del lenguaje BASIC con un día de eventos [78] el 30 de abril de 2014. Se produjo un cortometraje documental para el evento. [79]
LET
LET
es opcional y una línea sin otra palabra clave identificable asumirá que la palabra clave es LET
.DATA
READ
DATA
declaración y lo asigna a una variable. Un puntero interno registra el último DATA
elemento leído y lo mueve una posición hacia adelante con cada READ
. La mayoría de los dialectos permiten múltiples variables como parámetros, lo que permite leer varios valores en una sola operación.RESTORE
DATA
instrucción, lo que permite que el programa comience a READ
ejecutarse desde el primer valor. Muchos dialectos permiten un número de línea opcional o un valor ordinal para permitir que el puntero se restablezca a una ubicación seleccionada.DIM
IF ... THEN ... {ELSE}
THEN
, pero las versiones posteriores permitían que siguiera cualquier declaración válida. ELSE
no era ampliamente compatible, especialmente en versiones anteriores.FOR ... TO ... {STEP} ... NEXT
WHILE ... WEND
yREPEAT ... UNTIL
DO ... LOOP {WHILE}
o{UNTIL}
WHILE
, estas palabras clave se encuentran principalmente en dialectos posteriores.GOTO
GO TO
.GOSUB ... RETURN
RETURN
comando, en el que salta de nuevo a la instrucción que sigue a GOSUB
, ya sea después de dos puntos o en la línea siguiente. Esto se utiliza para implementar subrutinas .ON ... GOTO/GOSUB
DEF FN
DEF FND(x) = x*x
al comienzo de un programa. Los nombres de las funciones se limitaban originalmente a FN, más una letra, es decir , FNA, FNB...LIST
PRINT
INPUT
TAB
PRINT
para establecer la posición donde se mostrará el siguiente carácter en la pantalla o se imprimirá en el papel. AT
es una forma alternativa.SPC
TAB
pero se desplaza una cantidad de espacios adicionales desde la columna actual en lugar de moverse a una columna específica.ABS
ATN
COS
EXP
INT
LOG
RND
SIN
SQR
TAN
REM
USR
("Rutina reparable por el usuario")CALL
USR
que se encuentra en algunos dialectos. No requiere un parámetro artificial para completar la sintaxis similar a una función de USR
y tiene un método claramente definido para llamar a diferentes rutinas en la memoria.TRON
/ TROFF
ASM
Las versiones mínimas de BASIC tenían sólo variables enteras y nombres de variable de una o dos letras, lo que minimizaba los requisitos de memoria (RAM) limitada y costosa. Las versiones más potentes tenían aritmética de punto flotante y las variables podían etiquetarse con nombres de seis o más caracteres de longitud. Hubo algunos problemas y restricciones en las primeras implementaciones; por ejemplo, Applesoft BASIC permitía que los nombres de variable tuvieran varios caracteres de longitud, pero sólo los dos primeros eran significativos, por lo que era posible escribir inadvertidamente un programa con las variables "LOSS" y "LOAN", que se tratarían como si fueran la misma; asignar un valor a "LOAN" sobrescribiría silenciosamente el valor previsto como "LOSS". Las palabras clave no se podían usar en las variables en muchos de los primeros BASIC; "SCORE" se interpretaría como "SC" OR "E", donde OR era una palabra clave. Las variables de cadena suelen distinguirse en muchos dialectos de microcomputadoras al tener $ como sufijo a su nombre como un sigilo , y los valores a menudo se identifican como cadenas al estar delimitados por "comillas dobles". Las matrices en BASIC pueden contener números enteros, variables de punto flotante o de cadena.
Algunos dialectos de BASIC admitían matrices y operaciones matriciales , que se pueden utilizar para resolver conjuntos de ecuaciones algebraicas lineales simultáneas. Estos dialectos admitirían directamente operaciones matriciales como asignación, suma, multiplicación (de tipos de matrices compatibles) y evaluación de un determinante. Muchos BASIC para microcomputadoras no admitían este tipo de datos; las operaciones matriciales aún eran posibles, pero debían programarse explícitamente en elementos de la matriz.
Los nuevos programadores de BASIC en una computadora hogareña podrían comenzar con un programa simple, quizás usando la declaración PRINT del lenguaje para mostrar un mensaje en la pantalla; un ejemplo bien conocido y a menudo replicado es el programa "Hello, World!" de Kernighan y Ritchie :
10 IMPRIMIR "¡Hola, mundo!" 20 FIN
Se podría utilizar un bucle infinito para llenar la pantalla con el mensaje:
10 IMPRIMIR "¡Hola, mundo!" 20 IR A 10
Tenga en cuenta que la END
instrucción es opcional y no tiene ninguna acción en la mayoría de los dialectos de BASIC. No siempre se incluyó, como es el caso en este ejemplo. Este mismo programa se puede modificar para imprimir una cantidad fija de mensajes utilizando la FOR...NEXT
instrucción común:
10 LET N = 10 20 PARA I = 1 A N 30 IMPRIMIR "¡Hola, mundo!" 40 SIGUIENTE I
La mayoría de las versiones de BASIC para ordenadores domésticos, como MSX BASIC y GW-BASIC , admitían tipos de datos simples, ciclos de bucle y matrices. El siguiente ejemplo está escrito para GW-BASIC, pero funcionará en la mayoría de las versiones de BASIC con cambios mínimos:
10 INPUT "¿Cuál es tu nombre: " ; U$ 20 PRINT "Hola " ; U$ 30 INPUT "¿Cuántas estrellas quieres: " ; N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT "¿Quieres más estrellas?" ; A$ 100 IF LEN ( A$ ) = 0 THEN GOTO 90 110 A$ = LEFT$ ( A$ , 1 ) 120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30 130 PRINT "Adiós " ; U$ 140 END
El diálogo resultante podría parecerse al siguiente:
¿Cómo te llamas? MikeHola Mike¿Cuántas estrellas quieres?: 7*******¿Quieres más estrellas? Sí.¿Cuántas estrellas quieres?: 3***¿Quieres más estrellas? noAdios Mike
El Dartmouth Basic original era inusual al tener una palabra clave de matriz, MAT. [f] Aunque no fue implementada por la mayoría de los derivados de microprocesadores posteriores, se utiliza en este ejemplo del manual de 1968 [83] que promedia los números que se ingresan:
5 LET S = 0 10 MAT INPUT V 20 LET N = NUM 30 IF N = 0 THEN 99 40 FOR I = 1 TO N 45 LET S = S + V ( I ) 50 NEXT I 60 PRINT S / N 70 IR A 5 99 FIN
Los BASIC de segunda generación (por ejemplo, VAX Basic , SuperBASIC , True BASIC , QuickBASIC , BBC BASIC , Pick BASIC , PowerBASIC , Liberty BASIC , QB64 y (posiblemente) COMAL ) introdujeron una serie de características en el lenguaje, principalmente relacionadas con la programación estructurada y orientada a procedimientos. Por lo general, la numeración de líneas se omite del lenguaje y se reemplaza con etiquetas (para GOTO ) y procedimientos para fomentar un diseño más fácil y flexible. [38] Además, se introdujeron palabras clave y estructuras para admitir la repetición, la selección y los procedimientos con variables locales.
El siguiente ejemplo está en Microsoft QuickBASIC:
Ejemplo de REM QuickBASICDeclaración de avance REM: permite que el código principal llame a una subrutina REM que se define más adelante en el código fuente DECLARE SUB PrintSomeStars ( StarCount! ) REM El programa principal sigue INPUT "¿Cuál es tu nombre: " , UserName$ PRINT "Hola " ; UserName$ DO INPUT "¿Cuántas estrellas quieres: " , NumStars CALL PrintSomeStars ( NumStars ) DO INPUT "¿Quieres más estrellas? " , Answer$ LOOP UNTIL Answer$ <> "" Answer$ = LEFT$ ( Answer$ , 1 ) LOOP WHILE UCASE$ ( Answer$ ) = "Y" PRINT "Adiós " ; UserName$ END Definición de subrutina REM SUB PrintSomeStars ( StarCount ) REM Este procedimiento utiliza una variable local llamada Stars$ Stars$ = STRING$ ( StarCount , "*" ) PRINT Stars$ END SUB
Los dialectos BASIC de tercera generación, como Visual Basic , Xojo , Gambas , StarOffice Basic , BlitzMax y PureBasic, introdujeron características para respaldar el paradigma de programación orientada a objetos y basada en eventos . La mayoría de los procedimientos y funciones integrados ahora se representan como métodos de objetos estándar en lugar de operadores . Además, el sistema operativo se volvió cada vez más accesible al lenguaje BASIC.
El siguiente ejemplo está en Visual Basic .NET :
Módulo público StarsProgram Función privada Ask ( prompt Como cadena ) Como cadena Console . Write ( prompt ) Regresar Console . ReadLine () Fin de la función Public Sub Main () Dim nombreUsuario = Ask ( "Cuál es tu nombre: " ) Console . WriteLine ( "Hola {0}" , nombreUsuario ) Respuesta tenue como cadena Hacer Dim numStars = CInt ( Ask ( "¿Cuántas estrellas quieres: " ) ) Dim stars As New String ( "*"c , numStars ) Console.WriteLine ( stars ) Hacer respuesta = Preguntar ( " ¿Quieres más estrellas?" ) Bucle Hasta respuesta < > " " Bucle Mientras respuesta.StartsWith ( " Y" , StringComparison.OrdinalIgnoreCase ) Consola . WriteLine ( "Adiós {0}" , nombreUsuario ) Fin del submenú Fin del módulo
continue
para este propósito, pero aún requería que se ingresara el número de línea.Durante la década de 1980, los compiladores de C se difundieron ampliamente y C se convirtió en un lenguaje extremadamente popular.
Ingrese Borland Delphi, que combinó Object Pascal con un generador de formularios visuales similar a VB. Object Pascal era el lenguaje propio de Borland, con soporte completo para herencia. No distingue entre mayúsculas y minúsculas y no es mucho más difícil que VB para codificar, una vez que te acostumbras a escribir mucho begin y end (equivalente vagamente a las llaves en C). A diferencia de VB, sensatamente tiene diferentes operadores para asignación (:=) y comparación (=).
Alternativamente, se pueden revivir los días de toda la rivalidad entre BASIC y Pascal con Lazarus compatible con Delphi.
Ahora he oído hablar de otros lenguajes que supuestamente hacen posible el desarrollo sin recurrir a Java, lenguajes como CellularBASIC (que se parece un poco a QBASIC) y Hecl (que parece estar basado en Tcl).
Después de investigar un poco en la red, encontré este sitio sobre CellularBASIC. Es un intérprete BASIC completo escrito en JAVA.
Consulta "Por qué Johnny no sabe programar", el artículo que inspiró BASIC-256.
{{cite web}}
: CS1 maint: nombres numéricos: lista de autores ( enlace )"BASIC: código de instrucciones simbólicas multipropósito para principiantes". La enciclopedia de lenguajes informáticos . Universidad Murdoch .