BASIC ( Código de instrucción simbólica multiusos para principiantes ) [1] es una familia de lenguajes de programación de alto nivel y de uso general diseñados para facilitar su uso. La versión original fue creada por John G. Kemeny y Thomas E. Kurtz en Dartmouth College en 1963. Querían permitir que los estudiantes de campos no científicos utilizaran computadoras. En ese momento, casi todas las computadoras requerían escribir software personalizado, que sólo 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 BÁSICOS simultáneamente en terminales remotas. Este modelo general se hizo popular en sistemas de minicomputadoras como el PDP-11 y el Data General Nova a finales de los años 1960 y principios de los 1970. Hewlett-Packard produjo una línea completa de computadoras para este método de operación, introduciendo 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 las microcomputadoras a mediados de la década de 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 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 sistemas informáticos domésticos que surgió a finales de los años 1970. Estas PC casi siempre tenían un intérprete BÁSICO instalado de forma predeterminada, 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, cuando llegaron al mercado microcomputadoras más potentes y 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 sin conocimientos técnicos dependían de aplicaciones preescritas en lugar de escribir sus propios programas. En 1991, Microsoft lanzó Visual Basic , combinando una versión actualizada de BASIC con un generador de formularios visuales . Este uso reavivado del lenguaje y "VB" sigue siendo un lenguaje de programación importante [2] [3] en la forma de VB.NET , mientras que continúa existiendo una escena de aficionados al BASIC en términos más generales. [4] [5]
John G. Kemeny era el presidente del Departamento de Matemáticas de Dartmouth College. Basándose en gran medida en su reputación como innovador en la enseñanza de matemáticas, en 1959 el colegio ganó un premio de la Fundación Alfred P. Sloan por 500.000 dólares para construir un nuevo edificio departamental. [6] Thomas E. Kurtz se había unido al departamento en 1956, y desde la década de 1960, Kemeny y Kurtz coincidieron en la necesidad de alfabetización en programación entre los estudiantes fuera de los campos tradicionales STEM . Kemeny señaló más tarde que "Nuestra visión era que cada estudiante en el campus debería tener acceso a una computadora , y cualquier miembro del cuerpo docente debería poder usar 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 (Código Simplificado de Dartmouth) y DOPE (Experimento de Programación Sobresimplificada de Dartmouth) . Estos no pasaron de una sola clase de primer año. Siguieron nuevos experimentos utilizando 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 con formas extrañas, en particular una "convención casi imposible de memorizar para especificar un bucle: ¿Es '1, 10, 2' o '1, 2, 10', y es la coma después? ¿El número de línea requerido o no?" [7]DO 100, I = 1, 10, 2
Además, la falta de cualquier tipo de retroalimentación inmediata fue un problema clave; las máquinas de la época utilizaban 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 arrojarían resultados en unos segundos. Esto llevó a un creciente interés en un sistema que utiliza el tiempo compartido y un nuevo lenguaje específicamente para uso de estudiantes que no son STEM. [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 declaraciones eran una por línea, se usaban números para indicar el objetivo de bucles y ramas, y muchos de los comandos eran similares o idénticos a Fortran. Sin embargo, la sintaxis se cambió donde se podía mejorar. Por ejemplo, el bucle difícil de recordar DO
fue reemplazado por uno mucho más fácil de recordar , y el número de línea utilizado en el DO se indicó mediante el . [a] Asimismo, la declaración críptica de Fortran, cuya sintaxis coincidía con una instrucción particular de la máquina en la que fue escrita originalmente, se volvió más simple . Estos cambios hicieron que el lenguaje fuera mucho menos idiosincrásico y al mismo tiempo tuviera una estructura general y se sintiera 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 Fundación Nacional de Ciencias , que se utilizó para comprar una computadora GE-225 para procesamiento y un procesador en tiempo real Datanet-30 para manejar los teleimpresores Teletype Modelo 33 utilizados para entrada y 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]
Inicialmente, BASIC se concentró en soportar trabajos matemáticos sencillos, con soporte para aritmética matricial desde su implementación inicial como lenguaje por lotes, y funcionalidad de cadena de caracteres que se agregó en 1965. El uso en la universidad se expandió rápidamente, requiriendo que la CPU principal fuera reemplazada por un GE. -235, [7] y aún más tarde por un GE-635. A principios de la década de 1970 había cientos de terminales conectadas a las máquinas en Dartmouth, algunas de ellas de forma remota.
Como querían que el uso del lenguaje se generalizara, sus diseñadores pusieron a disposición el compilador de forma gratuita. En la década de 1960, el software se convirtió en un bien gravable; hasta entonces, se brindaba sin cargo como un servicio con computadoras costosas, generalmente disponibles sólo para arrendamiento. También lo pusieron a disposición de las escuelas secundarias en el área de Hanover, New Hampshire , y a nivel regional en toda Nueva Inglaterra en terminales de teleimpresor Teletype Modelo 33 y Modelo 35 conectados a Dartmouth a través de líneas telefónicas de acceso telefónico, y pusieron un esfuerzo considerable en promover el idioma. En los años siguientes, a medida que aparecieron otros dialectos de BASIC, el dialecto BASIC original de Kemeny y Kurtz pasó a ser conocido como Dartmouth BASIC .
New Hampshire reconoció el logro en 2019 cuando erigió un marcador histórico en la carretera en Hannover 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. Conceptualizada por primera vez a finales de la década de 1950, la idea 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 "ganarían tiempo en la computadora de la misma manera que el hogar promedio compra energía y agua". de empresas de servicios públicos". [13]
General Electric, después de haber 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 del campo emergente rápidamente siguieron 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 en gran medida universal en computadoras centrales de propósito general . Incluso IBM finalmente se unió 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, el éxito generalizado previsto anteriormente no se produjo. La aparición de las minicomputadoras durante el mismo período, y especialmente de las microcomputadoras de bajo costo a mediados de la década de 1970, permitió a cualquiera comprar y operar 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, estaba naturalmente preparado para migrar 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 , tal vez tan solo 4 KB en terminología moderna, [c] y carecían de almacenamiento de alto rendimiento como los discos duros que hacen que los compiladores sean prácticos. En estos sistemas, BASIC normalmente se implementaba como intérprete en lugar de compilador debido a su menor requerimiento de memoria de trabajo. [d]
Un ejemplo particularmente importante fue HP Time-Shared BASIC , que, al igual que el sistema Dartmouth original, utilizaba dos computadoras trabajando 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 alta gama de la misma máquina subyacente, ejecutaba los programas y generaba resultados. Por un coste de unos 100.000 dólares, uno podría poseer una máquina capaz de ejecutar entre 16 y 32 usuarios al mismo tiempo. [16] El sistema, incluido como HP 2000, fue la primera mini plataforma que ofrecía tiempo compartido y fue un éxito arrollador inmediato, catapultando a HP hasta convertirse en el tercer proveedor más grande en el espacio de las minicomputadoras, detrás de DEC y Data General (DG ). [17]
DEC, líder en el espacio de las minicomputadoras desde mediados de la década de 1960, inicialmente había ignorado a 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 promocionaron fuertemente a finales de los años 1960. Sin embargo, con los sistemas de tiempo compartido ofreciendo ampliamente BASIC, 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 dirección ignorara repetidamente sus súplicas, David H. Ahl se encargó de comprar un BASIC para el PDP-8 , lo que supuso un gran éxito en el mercado educativo. A principios de la década de 1970, FOCAL y JOSS habían sido olvidados y BASIC se había vuelto casi universal en el mercado de las minicomputadoras. [19] DEC continuaría presentando 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 sencillos basados en texto , entre los que destaca Star Trek de Mike Mayfield . David Ahl los recopiló, algunos extraídos de 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 dirección se negó a apoyar el concepto, Ahl dejó DEC en 1974 para fundar la importante revista de informática Creative Computing . El libro siguió siendo popular y se volvió a publicar en varias ocasiones. [21]
La introducción de las primeras microcomputadoras a mediados de la década de 1970 fue el comienzo del crecimiento explosivo de 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 las microcomputadoras, muchos de los cuales habían visto BASIC en minis o mainframes. A pesar del famoso juicio de Dijkstra en 1975, "Es prácticamente imposible enseñar buena programación a estudiantes que han tenido una exposición previa al BASIC: como programadores potenciales están mentalmente mutilados sin esperanza de regeneración", [22] BASIC fue uno de los Eran pocos lenguajes que tuvieran un nivel suficientemente alto para ser utilizado por personas sin formación y lo suficientemente pequeños como para caber en las microcomputadoras de la época, lo que lo convertía en el lenguaje de programación estándar de facto en las primeras microcomputadoras.
La primera versión para microcomputadora de BASIC fue coescrita por Bill Gates , Paul Allen y Monte Davidoff para su recién formada empresa, Micro-Soft. [23] Esto fue lanzado por MITS en formato de cinta perforada para el Altair 8800 poco después de la propia máquina, [24] inmediatamente consolidando BASIC como el lenguaje principal de las primeras microcomputadoras. Los miembros del Homebrew Computer Club comenzaron a hacer circular copias del programa, lo que provocó que Gates escribiera su Carta abierta a los aficionados , quejándose de este primer ejemplo de piratería de software .
En parte en respuesta a la carta de Gates, y en parte para crear un BASIC aún más pequeño que pudiera funcionar útilmente en máquinas de 4 KB, [e] Bob Albrecht instó a Dennis Allison a escribir su propia variación del lenguaje. Allison cubrió cómo diseñar e implementar una versión simplificada de un intérprete para el lenguaje BASIC en los primeros tres números trimestrales del boletín informativo People's Computer Company publicado en 1975 y las implementaciones con código fuente publicadas en el Dr. Dobb's Journal of Tiny BASIC Calistenia y Ortodoncia: Correr ligero sin Overbyte . Esto dio lugar a una amplia variedad de Tiny BASIC con funciones adicionales u otras mejoras, y las versiones de Tom Pittman y Li-Chen Wang se hicieron particularmente conocidas. [25]
Micro-Soft, en ese momento Microsoft , portó 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 nuevas microcomputadoras, en particular la "trinidad de 1977" de la TRS-80 , Commodore PET y Apple II , incluyeron una versión del código MS o rápidamente introdujeron nuevos modelos con él. Los ordenadores personales de Ohio Scientific también se sumaron a esta tendencia en aquella época. En 1978, MS BASIC era un estándar de facto y prácticamente todos los ordenadores domésticos de los años 80 lo incluían en la ROM . Al arrancar, se presentó un intérprete BÁSICO en modo directo .
Commodore Business Machines incluye Commodore BASIC , basado en Microsoft BASIC. Apple II y TRS-80 tienen cada uno 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 introducida a medida que aumentaba el interés en las plataformas. A medida que nuevas empresas ingresaron al campo, se agregaron versiones adicionales que cambiaron sutilmente la familia BASIC. Las computadoras Atari de 8 bits utilizan Atari BASIC de 8 KB que no se deriva de Microsoft BASIC. Sinclair BASIC se introdujo en 1980 con el Sinclair ZX80 y luego se amplió para el Sinclair ZX81 y el Sinclair ZX Spectrum . La BBC publicó BBC BASIC , desarrollado por Acorn Computers , incorpora palabras clave de programación estructuradas adicionales y funciones de punto flotante.
A medida que la popularidad de BASIC creció en este período, las revistas de informática publicaron el código fuente completo en BASIC para videojuegos, utilidades y otros programas. Dada la naturaleza sencilla de BASIC, fue sencillo 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 consideraban universales y podían usarse en máquinas que ejecutaban cualquier variante de BASIC (a veces con adaptaciones menores). También estaban disponibles muchos libros de programas de escritura 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 podrían convertirse fácilmente a prácticamente cualquier plataforma que ejecute 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 computadora con ventas por millón. Los paquetes posteriores, como Learn to Program BASIC, también incluirían los juegos como enfoque introductorio. En las computadoras CP/M orientadas a los negocios que pronto se generalizaron en 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 documenta palabras clave en más de 78 computadoras diferentes. En 1981, la segunda edición documentaba palabras clave de más de 250 computadoras diferentes, mostrando el crecimiento explosivo de la era de las microcomputadoras. [29]
Cuando IBM estaba diseñando la IBM PC , siguieron el paradigma de las computadoras domésticas existentes al tener un intérprete BASIC incorporado. Obtuvieron esto de Microsoft ( IBM Cassette BASIC ), pero Microsoft también produjo varias otras versiones de BASIC para MS-DOS / PC DOS , incluidas IBM Disk BASIC (BASIC D), IBM BASICA (BASIC A), GW-BASIC (un compatible con BASICA). versión que no necesitaba la ROM de IBM) [30] y QBasic , todos normalmente incluidos con la máquina. Además produjeron el compilador Microsoft BASIC dirigido a programadores profesionales. Turbo Pascal , la editorial Borland, publicó Turbo Basic 1.0 en 1985 (las versiones sucesoras todavía se comercializan con 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 variantes multiplataforma como SmallBasic , yabasic , Bywater BASIC , [32] [33] nuBasic, [34] MyBasic, [35] Logic Basic, [36] Liberty BASIC , y surgió wxBasic . Mientras tanto, FutureBASIC y Chipmunk Basic se dirigieron 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 manipulación mejorada 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 respaldaban las 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 a programar ellos 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 elegidos para el desarrollo de aplicaciones profesionales . [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 juegos disponibles todavía estaban en su infancia. 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 activa de desarrollo de juegos, [41] [42] que ayudó a generar las implementaciones QB64 y FreeBASIC . [43] En 2013, se lanzó en Steam un juego escrito en QBasic y compilado con QB64 para computadoras modernas titulado Black Anexo . [44] [45] Blitz Basic , Dark Basic , SdlBasic , Super Game System Basic, [46] PlayBASIC, [47] CoolBasic, [48] AllegroBASIC , [49] ethosBASIC, [50] GLBasic y Basic4GL llenaron aún más esta demanda, hasta el moderno RCBasic, [51] NaaLaa, [52] AppGameKit , [53] Monkey 2 y Cerberus-X. [54]
En 1991, Microsoft introdujo Visual Basic , un desarrollo evolutivo de QuickBASIC . Incluía construcciones de ese lenguaje, como declaraciones de control estructuradas en bloques, subrutinas parametrizadas y escritura estática opcional , así como construcciones orientadas a objetos de otros lenguajes como "Con" y "Para cada uno". El lenguaje conservó cierta compatibilidad con sus predecesores, como la palabra clave Dim para declaraciones, declaraciones "Gosub"/Return y números de línea opcionales que podrían usarse para localizar errores. Un impulsor importante para el desarrollo de Visual Basic fue el nuevo lenguaje de macros para Microsoft Excel , un programa de hoja de cálculo . Para sorpresa de muchos en Microsoft, que inicialmente todavía lo comercializaban como un lenguaje para aficionados, el lenguaje se generalizó en aplicaciones de pequeñas empresas 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 Embebido .
Si bien muchos programadores avanzados todavía se burlaban de su uso, VB satisfizo 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 los negocios pudieran completarse "en un abrir y cerrar de ojos", incluso usando un lenguaje "lento", siempre y cuando no se trate de 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. Con el tiempo, durante la larga vida útil 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 el mismo poder 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 de soporte extendido en marzo de 2008. [58] Debido a la persistente popularidad que aún conserva, [59] intentos de terceros para brindarle mayor soporte, como como Rubberduck y ModernVB, existen. [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 era compatible [63] y desde entonces se ha producido la extensión Mercury de terceros . [64] Mientras tanto, existen competidores como B4X , [65] RAD Basic, [66] twinBASIC, [67] VisualFBEditor , [68] InForm , [69] Xojo , [70] y Gambas . [71]
Muchos otros dialectos BASIC también han surgido desde 1990, incluidos QB64 y FreeBASIC de código abierto , inspirados en QBasic, y 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 empresa controlada por Kurtz).
También existen ahora varios intérpretes BASIC simples basados en la web, incluido Quite Basic de Nikko Strom, [72] así como Small Basic de Microsoft y wwwBASIC de Google . [73] También existen varios compiladores que convierten BASIC en JavaScript , [74] como JSBasic que reimplementa Applesoft BASIC , [75] Spider BASIC, [76] y NS Basic .
A partir de esfuerzos anteriores como Mobile Basic y CellularBASIC, [77] [78] ahora hay muchos dialectos disponibles para teléfonos inteligentes y tabletas. A través de Apple App Store para iOS , las opciones incluyen Hand BASIC, [79] Learn BASIC, [80] Smart Basic basado en Minimal BASIC , [81] Basic! por miSoft, [82] y BASIC por Anastasia Kovba. [83] Mientras tanto, la tienda Google Play para Android tiene Touch Basic enfocado en la pantalla táctil , [84] B4A , ¡el RFO BASIC! [f] intérprete basado en Dartmouth Basic , [85] y adaptaciones de SmallBasic , BBC Basic , Tiny Basic , X11-Basic, [86] y NS Basic .
En las videoconsolas, 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 lanzó una versión para Nintendo Switch , a la que también se le suministró una versión del Fuze Code System, [87] una variante BÁSICA [88] implementada por primera vez como una máquina Raspberry Pi personalizada . [89] Anteriormente, BASIC estaba disponible en consolas como Family BASIC (para Nintendo Famicom ) y PSX Chipmunk Basic (para la PlayStation original ), mientras que yabasic se portó a PlayStation 2 y FreeBASIC a la Xbox original . Dragon BASIC fue creado para homebrew en Game Boy Advance y Nintendo DS , [90] con NEXTBasic, [91] BasiEgaXorz [92] y SecondBASIC [93] creados para Sega Genesis .
Hay variantes de BASIC disponibles en calculadoras gráficas y programables fabricadas por Texas Instruments ( TI-BASIC ), HP (HP BASIC), Casio ( Casio BASIC ) y otros.
QBasic , una versión de Microsoft QuickBASIC sin el vinculador para crear archivos EXE, está presente en los 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 básico era GW-Basic . QuickBasic es parte de una serie de tres lenguajes publicados 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 se encuentran en estos mismos directorios.
Las diversas suites ofimáticas de Microsoft, Lotus y Corel y 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 que lo contiene son programables en una variante básica interna 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 componentes y otras construcciones WSH y VBA. VBScript es uno de los lenguajes a los que pueden acceder los shells mejorados 4Dos, 4NT y Take Command. SaxBasic y WWB también son muy similares a la línea de implementaciones básicas 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 los años 1970, está disponible para Linux , Microsoft Windows y macOS .
La ubicuidad de los intérpretes de BASIC en las computadoras personales era tal que los libros de texto alguna vez incluían ejercicios sencillos de "Pruébalo en BASIC" que animaban a los estudiantes a experimentar con conceptos matemáticos y computacionales en las computadoras del aula o de casa. Las revistas de informática populares de la época normalmente incluían programas de escritura .
El futurista y escritor de ciencia ficción David Brin lamentó la pérdida del omnipresente BASIC en un artículo de Salon de 2006 [94], al igual que otros que utilizaron computadoras por primera vez durante esta época. A su vez, el artículo impulsó a Microsoft a desarrollar y lanzar Small Basic ; [95] también inspiró proyectos similares como Basic-256 [96] [97] y Quite Basic, basado en la web. [98] Dartmouth celebró una celebración del 50 aniversario de BASIC el 1 de mayo de 2014, [99] al igual que otras organizaciones; al menos una organización de programadores de VBA organizó una celebración del 35 aniversario en 1999. [100] [ se necesita mejor fuente ] El uso pedagógico de BASIC ha sido seguido por otros lenguajes, como Pascal , Java y particularmente Python . [101]
Dartmouth College celebró el 50 aniversario del lenguaje BASIC con un día de eventos [102] el 30 de abril de 2014. Se produjo un corto documental para el evento. [103]
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 realiza un seguimiento del último DATA
elemento leído y lo mueve una posición hacia adelante con cada uno READ
. La mayoría de los dialectos permiten múltiples variables como parámetros, leyendo varios valores en una sola operación.RESTORE
DATA
declaración, permitiendo que el programa comience READ
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 en una ubicación seleccionada.DIM
IF ... THEN ... {ELSE}
THEN
, pero las versiones posteriores permitían que siguiera cualquier declaración válida. ELSE
no fue 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 vuelve 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 estaban originalmente restringidos 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 papel. AT
es una forma alternativa.SPC
TAB
pero se mueve 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
encontrada en algunos dialectos. No requiere un parámetro artificial para completar la sintaxis similar a una función 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 solo tenían variables enteras y nombres de variables 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. Hubo algunos problemas y restricciones en las primeras implementaciones; por ejemplo, Applesoft BASIC permitía que los nombres de las variables tuvieran varios caracteres, pero sólo los dos primeros eran significativos, por lo que era posible escribir inadvertidamente un programa con las variables "PÉRDIDA" y "PRÉSTAMO", que se tratarían como si fueran iguales; asignar un valor a "PRÉSTAMO" sobrescribiría silenciosamente el valor previsto como "PÉRDIDA". Las palabras clave no se podían utilizar en variables en muchos de los primeros BASIC; "PUNTUACIÓN" se interpretaría como "SC" O "E", donde OR era una palabra clave. Las variables de cadena generalmente se distinguen en muchos dialectos de microcomputadoras por tener el sufijo $ a su nombre como 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, coma flotante o variables de cadena.
Algunos dialectos de BASIC admiten matrices y operaciones matriciales , que pueden usarse para resolver conjuntos de ecuaciones algebraicas lineales simultáneas. Estos dialectos apoyarían directamente operaciones matriciales como asignación, suma, multiplicación (de tipos de matrices compatibles) y evaluación de un determinante. Muchos BASIC de microcomputadoras no admitían este tipo de datos; Las operaciones matriciales todavía eran posibles, pero debían programarse explícitamente en elementos de la matriz.
Los nuevos programadores BASIC en una computadora doméstica podrían comenzar con un programa simple, tal vez usando la instrucción PRINT del lenguaje para mostrar un mensaje en la pantalla; un ejemplo bien conocido y frecuentemente replicado es "Hello, World!" de Kernighan y Ritchie. programa :
10 IMPRIMIR "¡Hola mundo!" 20 FINAL
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
declaración es opcional y no tiene acción en la mayoría de los dialectos de BASIC. No siempre se incluyó, como es el caso de este ejemplo. Este mismo programa se puede modificar para imprimir una cantidad fija de mensajes usando la FOR...NEXT
declaración común:
10 LET N = 10 20 FOR I = 1 TO N 30 PRINT "¡Hola mundo!" 40 SIGUIENTE YO
La mayoría de las versiones BASIC de las computadoras domésticas, 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 ENTRADA "¿Cómo te llamas?" ; U$ 20 IMPRIMIR "Hola" ; U$ 30 ENTRADA "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 SI LEN ( A$ ) = 0 ENTONCES IR A 90 110 A$ = IZQUIERDA$ ( A$ , 1 ) 120 SI A$ = "Y" O A$ = "y" ENTONCES IR A 30 130 IMPRIMIR "Adiós" ; U$ 140 FINAL
El cuadro de diálogo resultante podría parecerse a:
¿Cómo te llamas? MikeHola mikeCuantas estrellas quieres: 7*******¿Quieres más estrellas? SíCuantas estrellas quieres: 3***¿Quieres más estrellas? NoAdiós mike
El Dartmouth Basic original era inusual porque tenía una palabra clave matricial, MAT. [g] Aunque no lo implementan la mayoría de los derivados de microprocesadores posteriores, se utiliza en este ejemplo del manual de 1968 [107] que promedia los números que se ingresan:
5 DEJE S = 0 10 ENTRADA MAT V 20 DEJE N = NUM 30 SI N = 0 ENTONCES 99 40 PARA I = 1 A N 45 DEJE S = S + V ( I ) 50 SIGUIENTE I 60 IMPRIMIR S / N 70 IR A 5 99 FINAL
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 estructuras y Programación orientada a procedimientos. Por lo general, la numeración de líneas se omite en el 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 respaldar la repetición, la selección y los procedimientos con variables locales.
El siguiente ejemplo está en Microsoft QuickBASIC:
Ejemplo de REM QuickBASICDeclaración directa 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?" , Nombre de usuario$ PRINT "Hola" ; Nombre de usuario $ ENTRAR " ¿ Cuántas estrellas quieres: " , NumStars LLAMADA PrintSomeStars ( NumStars ) ENTRAR "¿Quieres más estrellas?" , Responder$ BUCLE HASTA Responder$ <> "" Respuesta$ = IZQUIERDA$ ( Respuesta$ , 1 ) BUCLE MIENTRAS UCASE$ ( Respuesta$ ) = "Y" IMPRIMIR "Adiós" ; Nombre de usuario$ FIN 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 admitir 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 Preguntar ( solicitar como cadena ) Como consola de cadena . Escribir ( indicador ) Volver a la consola . Función final ReadLine () Public Sub Main () Dim userName = Ask ( "¿Cuál es tu nombre: " ) Consola . WriteLine ( "Hola {0}" , nombre de usuario ) Respuesta tenue como cadena Hacer Dim numStars = CInt ( Preguntar ( "Cuántas estrellas quieres: " )) Atenuar estrellas como nueva cadena ( "*"c , numStars ) Consola . WriteLine ( estrellas ) Responder = Preguntar ( " ¿Quieres más estrellas?" ) Bucle hasta la respuesta <> "" Bucle mientras responda . Comienza con ( "Y" , StringComparison . OrdinalIgnoreCase ) Consola . WriteLine ( "Adiós {0}" , nombre de usuario ) End Sub End Module
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 visual similar a VB. Object Pascal era el lenguaje propio de Borland, con soporte total para la 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 el comienzo y el final (aproximadamente equivalente a las llaves en C). A diferencia de VB, tiene diferentes operadores para asignación (:=) y comparación (=).
Alternativamente, uno puede revivir los días de toda la rivalidad BASIC/Pascal con Lazarus, compatible con Delphi.
RAD Basic no es el único juego que existe. Las alternativas en distintas etapas de desarrollo incluyen twinBASIC, que también pretende ser compatible con VB6 y VBA; y FreeBASIC, que implementa gran parte de lo que se esconde en Microsoft QuickBASIC (y tiene un ingenioso IDE en forma de VisualFBEditor).
QB64 viene con un editor IDE WYSIWYG llamado InForm que lo acerca al uso diario como un lenguaje rápido y sucio para la automatización de Windows.
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 BÁSICO completo escrito en JAVA.
NEXTBasic: un lenguaje básico personalizado, inspirado en Visual Basic .NET, dirigido a Sega Genesis (Mega Drive).
Consulte "Por qué Johnny no puede codificar", el artículo que inspiró BASIC-256.
{{cite web}}
: Mantenimiento CS1: nombres numéricos: lista de autores ( enlace )