BÁSICO

Familia de lenguajes de programación

BÁSICO
ParadigmaNo estructurado , más tarde procedimental , más tarde orientado a objetos
Diseñado por
Apareció por primera vez1 de mayo de 1964 ; hace 60 años ( 1 de mayo de 1964 )
Implementaciones principales
Influenciado por
Influenciado
  • Programación BASIC en Wikilibros

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]

Origen

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 DOloop 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 2NEXT IIFIF 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]

Difusión de los servicios de tiempo compartido

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 mainframe de propósito general . Incluso IBM acabó uniéndose 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]

Difundido en minicomputadoras

El sistema HP 2000 fue diseñado para ejecutar BASIC de tiempo compartido como su tarea principal.

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]

Crecimiento explosivo: la era de los ordenadores domésticos

Commodore BASIC v2.0 en el Commodore 64
Versión 3.0 de MSX BASIC
"¡Entrena todos los días!", se lee en un cartel (abajo en el centro) en una escuela rusa ( c.  1985-86 ).

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]

IBM PC y compatibles

Casete IBM BASIC 1.10

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]

Visual Basic

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]

Tres variantes modernas de Basic: Mono Basic, OpenOffice.org Basic y Gambas

Versiones y dialectos posteriores a 1990

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 .

Calculadoras

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.

Línea de comandos de Windows

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.

Otro

BASIC llegó a algunas consolas de videojuegos, como la Nintendo Famicom .

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 .

Legado

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]

Sintaxis

Palabras claves típicas de BASIC

Manipulación de datos

LET
asigna un valor (que puede ser el resultado de una expresión ) a una variable. En la mayoría de los dialectos de BASIC, LETes opcional y una línea sin otra palabra clave identificable asumirá que la palabra clave es LET.
DATA
contiene una lista de valores que se asignan secuencialmente mediante el comando READ.
READ
Lee un valor de una DATAdeclaración y lo asigna a una variable. Un puntero interno registra el último DATAelemento 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
Restablece el puntero interno a la primera DATAinstrucción, lo que permite que el programa comience a READejecutarse 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
Configura una matriz.

Control de flujo del programa

IF ... THEN ... {ELSE}
Se utilizaba para realizar comparaciones o tomar decisiones. Los primeros dialectos solo permitían un número de línea después del THEN, pero las versiones posteriores permitían que siguiera cualquier declaración válida. ELSEno era ampliamente compatible, especialmente en versiones anteriores.
FOR ... TO ... {STEP} ... NEXT
Repetir una sección de código una cantidad determinada de veces. Una variable que actúa como contador, el "índice", está disponible dentro del bucle .
WHILE ... WENDyREPEAT ... UNTIL
repite una sección de código mientras la condición especificada sea verdadera. La condición puede evaluarse antes de cada iteración del bucle o después. Ambos comandos se encuentran principalmente en dialectos posteriores.
DO ... LOOP {WHILE}o{UNTIL}
repite una sección de código indefinidamente o hasta que la condición especificada sea verdadera. La condición puede evaluarse antes de cada iteración del bucle o después. De manera similar a WHILE, estas palabras clave se encuentran principalmente en dialectos posteriores.
GOTO
salta a una línea numerada o etiquetada en el programa. La mayoría de los dialectos también permitían la forma GO TO.
GOSUB ... RETURN
salta a una línea numerada o etiquetada, ejecuta el código que encuentra allí hasta que llega a un RETURNcomando, 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
Elige dónde saltar según las condiciones especificadas. Consulte la declaración Switch para conocer otros formatos.
DEF FN
un par de palabras clave introducidas a principios de los años 1960 para definir funciones. Las funciones BASIC originales se basaron en funciones de una sola línea de FORTRAN. Las funciones BASIC eran una expresión con argumentos variables, en lugar de subrutinas , con una sintaxis basada en el modelo de DEF FND(x) = x*xal comienzo de un programa. Los nombres de las funciones se limitaban originalmente a FN, más una letra, es decir , FNA, FNB...

Entrada y salida

LIST
muestra el código fuente completo del programa actual.
PRINT
muestra un mensaje en la pantalla u otro dispositivo de salida.
INPUT
pide al usuario que introduzca el valor de una variable. La instrucción puede incluir un mensaje de aviso.
TAB
se utiliza con PRINTpara establecer la posición donde se mostrará el siguiente carácter en la pantalla o se imprimirá en el papel. ATes una forma alternativa.
SPC
Imprime una cantidad de caracteres de espacio. Es similar en concepto a TABpero se desplaza una cantidad de espacios adicionales desde la columna actual en lugar de moverse a una columna específica.

Funciones matemáticas

ABS
Valor absoluto
ATN
Arcotangente (resultado en radianes )
COS
Coseno (argumento en radianes )
EXP
Función exponencial
INT
Parte entera (normalmente función de piso )
LOG
Logaritmo natural
RND
Generación de números aleatorios
SIN
Seno (argumento en radianes )
SQR
Raíz cuadrada
TAN
Tangente (argumento en radianes )

Misceláneas

REM
contiene un comentario o REMark del programador; a menudo se utiliza para dar un título al programa y ayudar a identificar el propósito de una sección determinada de código.
USR("Rutina reparable por el usuario")
transfiere el control del programa a una subrutina de lenguaje máquina , generalmente ingresada como una cadena alfanumérica o en una lista de declaraciones DATA.
CALL
Forma alternativa de USRque se encuentra en algunos dialectos. No requiere un parámetro artificial para completar la sintaxis similar a una función de USRy tiene un método claramente definido para llamar a diferentes rutinas en la memoria.
TRON/ TROFF
Activa la visualización de cada número de línea a medida que se ejecuta ("TRAce ON"). Esto era útil para depurar o corregir problemas en un programa. TROFF lo vuelve a desactivar.
ASM
Algunos compiladores como Freebasic, [80] Purebasic, [81] y Powerbasic [82] también admiten lenguaje ensamblador en línea , lo que permite al programador mezclar código de alto y bajo nivel, generalmente prefijado con declaraciones "ASM" o "!".

Tipos de datos y variables

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.

Ejemplos

Un juego sencillo implementado en BASIC

BASIC no estructurado

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 ENDinstrucció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...NEXTinstrucció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                                             

BASIC estructurado

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                  

BASIC orientado a objetos

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    

Normas

  • Estándar ANSI/ISO/IEC/ECMA para BASIC mínimo:
    • ANSI X3.60-1978 "Para BASIC mínimo"
    • ISO/IEC 6373:1984 "Procesamiento de datos: lenguajes de programación: BASIC mínimo"
    • ECMA -55 BASIC mínimo (retirado, similar a ANSI X3.60-1978)
  • Estándar ANSI/ISO/IEC/ECMA para BASIC completo:
    • ANSI X3.113-1987 "Lenguajes de programación BASIC completo"
    • INCITS/ISO/IEC 10279-1991 (R2005) "Tecnología de la información - Lenguajes de programación - BASIC completo"
    • ECMA -116 BASIC (retirado, similar a ANSI X3.113-1987)
  • Anexo ANSI/ISO/IEC que define módulos:
    • Interpretaciones de ANSI X3.113-1992 "Boletín de información técnica básica n.° 1 Interpretaciones de ANSI 03.113-1987"
    • ISO/IEC 10279:1991/ Amd 1:1994 "Módulos y mejora de la entrada de caracteres individuales"

Compiladores e intérpretes

CompiladorAutorEstado de funcionamientoVentanasSimilar a UnixOtros sistemas operativosTipo de licenciaConformidad con la norma
BÁSICO MÍNIMOBÁSICO completo
Kit de aplicaciones para juegosLos creadores del juegoActualNoPropiedad??
BÁSICO MÁS 2Digital Equipment Corporation ahora es HPEActualNo?RSTS/E , RSX-11M , VMPropiedad??
B4XErel UzielActualSí ( Android , iOS )Sí (JVM)NoNo
BlitzmáximoInvestigación BlitzInterrumpidoSí ( Linux , macOS )NoNoNo
BÁSICO OSCUROLos creadores del juegoInactivoNoNoNoNo
Compilador BASIC mínimo ECMA-55 [84]Jamón de John GatewoodActualNoLinuxNoNo
LibreBASICEquipo de desarrollo de FreeBASICActualDOS , FreeBSD , LinuxParcial [85]No
FuturoBASICSoftware BrilorActualNomacOSSistema operativo Mac clásicoPropiedadParcialNo
GambasBenoît MinisiniActualNoNoNoNo
GFA BÁSICOFrank OstrowskiAbandonadoNoAmiga , Atari ST , DOSPropiedadNoNo
MercurioObjetos RemActualSí ( Linux , macOS , Android , iOS )Sí ( WebAssembly )PropiedadNoNo
PowerBASIC (anteriormente Turbo Basic)Sistema operativo: Windows.InactivoNoDosPropiedad??
Puro BásicoSoftware de fantasíaActualPropiedadNoNo
QB64GaleónActualParcialNo
BÁSICO RÁPIDOMicrosoftInterrumpidoNoNoDosPropiedadParcialNo
Tándem BÁSICOComputadoras tándemHistóricoNoNoGuardián, núcleo NonStop, sistema operativo NonStopPropiedadNoNo
BÁSICO verdaderoBÁSICO verdaderoActualNoNoPropiedadParcial [86]
VSI BASIC para OpenVMSSoftware VMS, Inc.ActualNoNoOpenVMSPropiedadNoNo
Xojo (anteriormente REALbasic)Xojo Inc. (anteriormente Real Software)ActualPropiedadNoNo
IntérpreteAutorVentanasSimilar a UnixOtros sistemas operativosTipo de licencia
BÁSICO-PLUSCorporación de equipos digitalesNoNoRSTS/EPropiedad
BBC BASIC (SDL 2.0)Richard T. RussellAndroid , iOS , macOS , Raspberry Pi OS , navegador web
BÁSICO Bywater (bwBASIC)Ted CampbellNo?
Libertad BÁSICASistemas de conversación en tiendaNoNoPropiedad
GW-BÁSICOMicrosoftNoNoMS-DOSPropiedad
QbásicoMicrosoftNoNoMS-DOSPropiedad
Ardilla básicaRonald H. Nicholson, Jr.Software gratuito
TI BásicaInstrumentos de TexasNoNoTI-99/4APropiedad
TI Básica ExtendidaInstrumentos de TexasNoNoTI-99/4APropiedad
MinibásicoMalcolm McLean
Montañas Rocosas BASIC[Era Trans]NoHP 9000Propiedad
BajoMichael HaardtNoNo
YabásicoMarc Oliver IhmHaiku
PequeñoBASICPequeñoBASICAndroid , macOS
SuperbásicoJan JonesNoNoSinclair QLPropiedad
Delgado básicoDelgado básicoNoNoPropiedad
PC-BÁSICORob HagemansmacOS
Nivel I BÁSICOSteve LeiningerNoNoROM TRS-80Propiedad
Nivel II BÁSICOMicrosoftNoNoTRSDOS , NewDos/80 , MultiDOS, DosPlus, LDOSPropiedad
Nivel III BÁSICOMicrosoftNoNoTRSDOS , NewDos/80 , MultiDOS, DosPlus, LDOSPropiedad

Véase también

Notas

  1. ^ El DO de Fortran tenía un continuepara este propósito, pero aún requería que se ingresara el número de línea.
  2. ^ Tymshare cobraba alrededor de 10 dólares estadounidenses por hora (equivalente a 78 dólares en 2023) por acceder a sus sistemas.
  3. ^ Considerado ampliamente como el primer mini "verdadero", el espacio de memoria de 12 bits del PDP-8 permitía 4.096 direcciones de 12 bits cada una, o 6.144 bytes.
  4. ^ Los intérpretes son básicamente similares a los compiladores en las tareas que realizan, convirtiendo el código fuente en código de máquina, pero difieren en cuándo lo hacen. Los compiladores convierten todo el programa a la vez y generan un programa ejecutable independiente. Los intérpretes generalmente convierten solo una línea a la vez (o incluso solo una parte de ella) y luego liberan ese código inmediatamente una vez que la línea ha terminado de ejecutarse. Esto significa que solo requieren la memoria suficiente para ejecutar una sola línea y no requieren algún tipo de memoria secundaria de alto rendimiento como un disco duro.
  5. ^ Microsoft BASIC dejó 780 bytes libres para el código del programa del usuario y valores de variables en una máquina 4K, y eso que estaba ejecutando una versión reducida que carecía de variables de cadena y otras funcionalidades.
  6. ^ A partir de la versión 3.

Referencias

  1. ^ Kemeny, John G.; Kurtz, Thomas E. (1963). Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (PDF) (1.ª ed.). Hanover, NH: Dartmouth College Computation Center. Archivado (PDF) del original el 9 de octubre de 2022.
  2. ^ Ramel, David (12 de febrero de 2019). "La popularidad de VB.NET sigue aumentando". Visual Studio Magazine . Consultado el 28 de marzo de 2023 .
  3. ^ Swersky, David (25 de enero de 2023). «Los 40 lenguajes de programación más populares de 2023: cuándo y cómo usarlos». Raygun . Consultado el 25 de marzo de 2023 .
  4. ^ ab Proven, Liam (28 de marzo de 2023). "¿Nostálgico de VB? BASIC no está nada muerto". The Register . Consultado el 27 de septiembre de 2023 .
  5. ^ Boss, Chris (15 de noviembre de 2022). "BASIC no ha muerto. Es hora de borrar los mitos sobre Basic". Proyecto Code . Consultado el 31 de enero de 2024 .
  6. ^ "Matemáticas de alto nivel en Hanover". Time . 23 de febrero de 1959.
  7. ^ abcdef Tiempo 2014.
  8. ^ Rankin, Joy Lisi (2018), Una historia popular de la informática en los Estados Unidos , Cambridge, Massachusetts: Harvard University Press, ISBN 978-0-852-3-5-3 9780674970977, pág. 23
  9. ^ "BASIC". Archivo de jerga . Consultado el 13 de junio de 2017 .
  10. ^ "Thomas E. Kurtz – Historia de los lenguajes de programación informática". cis-alumni.org . Consultado el 13 de junio de 2017 .
  11. ^ Alfred, Randy (5 de enero de 2008). «1 de mayo de 1964: se ejecuta el primer programa básico». Wired . Consultado el 13 de junio de 2017 .
  12. Brooks, David (11 de junio de 2019). «Por fin, un marcador histórico que habla de algo importante». Concord Monitor . Archivado desde el original el 11 de junio de 2019. Consultado el 11 de agosto de 2019 .
  13. ^ Bauer, WF, Diseño de computadoras desde el punto de vista del programador Archivado el 23 de julio de 2016 en Wayback Machine . (Eastern Joint Computer Conference, diciembre de 1958) Una de las primeras descripciones del tiempo compartido en computadoras.
  14. ^ "IBM contra el mundo: así es la cosa". Computerworld . 5 de diciembre de 1973.
  15. ^ Bourne, Charles; Hahn, Trudi Bellardo (agosto de 2003). Una historia de los servicios de información en línea, 1963-1976. MIT Press. pág. 387. ISBN 9780262261753.
  16. ^ "Sistema de tiempo compartido 2000".
  17. ^ "Superando la marca de los 10 años". Revista MEASURE . Hewlett Packard. Octubre de 1976.
  18. ^ Marks, Shirley (diciembre de 1971). Los años de JOSS: reflexiones sobre un experimento (PDF) (Informe técnico). Rand. Archivado (PDF) del original el 9 de octubre de 2022.
  19. ^ Savetz, Kevin (abril de 2013). "Dave Ahl y Betsy Ahl" (entrevista).
  20. ^ ab Ahl, David H. (1973). 101 Juegos básicos de computadora. Morristown, Nueva Jersey: Creative Computing Press. OCLC  896774158.
  21. ^ Ahl, David H. (11 de mayo de 1981). "Juegos de ordenador". InfoWorld . Vol. 3, núm. 9. pág. 44. ISSN  0199-6649.
  22. ^ Dijkstra, Edsger W. (18 de junio de 1975). "Cómo decimos verdades que podrían herir" (PDF) . Selected Writings on Computing: A Personal Perspective. Springer-Verlag (publicado en 1982). pp. 129–131. ISBN 978-0387906522. OCLC  693424350. Archivado (PDF) del original el 9 de octubre de 2022.
  23. ^ Johnson, Phil (21 de enero de 2015). «Sale a la luz el código fuente de Microsoft BASIC para 6502». Computerworld . Consultado el 24 de octubre de 2022 .
  24. ^ "Tenemos un BASIC". Museo de Historia Natural y Ciencia de Nuevo México . Archivado desde el original el 30 de noviembre de 2012. Consultado el 18 de abril de 2007 .
  25. ^ Pittman, Tom. "Tuviste que pagar $5 por adelantado para obtenerlo..." www.ittybittycomputers.com . Consultado el 14 de junio de 2017 .
  26. ^ Ahl, David H. (1979). Juegos de ordenador más básicos. Morristown: Creative Computing Press. ISBN 978-0894801372.OCLC 839377789  .
  27. ^ Ahl, David H. (1984). Grandes juegos de ordenador. Morris Plains, Nueva Jersey: Creative Computing Press. ISBN 978-0916688400.OCLC 872675092  .
  28. ^ "Osborne 1". oldcomputers.net . Consultado el 14 de junio de 2017 .
  29. ^ Lien, David (1981). The BASIC Handbook (Segunda edición). San Diego, CA: Compusoft Publishing. pág. interior de la tapa. ISBN 0-932760-00-7.
  30. ^ "De vuelta a los principios básicos". peyre.sqweebs.com . Archivado desde el original el 26 de octubre de 2009. Consultado el 25 de febrero de 2023 .
  31. ^ Perr, John (1 de enero de 2003). "Programación en BASIC con Unix". LinuxFocus . Consultado el 26 de septiembre de 2023 .
  32. ^ "bwBASIC: El intérprete BASIC de Bywater". Blog de OSS . 25 de agosto de 2018 . Consultado el 30 de septiembre de 2023 .
  33. ^ Hall, Jim (23 de junio de 2021). "Programa en FreeDOS con Bywater BASIC". Opensource.com . Consultado el 30 de septiembre de 2023 .
  34. ^ Calderone, Antonia. "Por qué nuBASIC" . Consultado el 30 de septiembre de 2023 .
  35. ^ Song, Liu Xue (12 de octubre de 2003). "MyBasic: un intérprete de lenguaje BASIC personalizado escrito en C++". Proyecto de código . Consultado el 30 de septiembre de 2023 .
  36. ^ "LOGIC BASIC - Lenguaje de programación libre" . Consultado el 7 de octubre de 2023 .
  37. ^ Albrecht, Christian (2 de octubre de 2022). "Tutorial para principiantes de Yab". BeSly: BeOS, Haiku y Zeta . Traducción de Luc Schrijvers (Begasus) . Consultado el 25 de febrero de 2024 .
  38. ^ ab «Diferencias entre GW-BASIC y QBasic». 12 de mayo de 2003. Archivado desde el original el 19 de octubre de 2013. Consultado el 28 de junio de 2008 .
  39. ^ Pravin, Jain (2011). La clase de Java. Pearson Education India. ISBN 9788131755440.
  40. ^ "GNE: el lenguaje de programación C". fysh.org . Consultado el 14 de junio de 2017 . Durante la década de 1980, los compiladores de C se difundieron ampliamente y C se convirtió en un lenguaje extremadamente popular.
  41. ^ Dance, Michael. "Juegos Qbasic fáciles de crear". Techwalla . Consultado el 30 de septiembre de 2023 .
  42. ^ "Directorio de juegos QBasic". Phatcode . Consultado el 30 de septiembre de 2023 .
  43. ^ "Directorio de juegos FreeBASIC". FreeBASIC . Consultado el 30 de septiembre de 2023 .
  44. ^ Cocilova, Alex (16 de abril de 2013). «Black Annex es el mejor juego de QBASIC que jamás hayas visto». PC World . Consultado el 30 de septiembre de 2023 .
  45. ^ Serrels, Mark (24 de junio de 2013). "El australiano que creó un videojuego con QBASIC". Kotaku . Consultado el 30 de septiembre de 2023 .
  46. ^ "Super Game System Basic". IndieDB . 21 de noviembre de 2017 . Consultado el 30 de septiembre de 2023 .
  47. ^ "PlayBasic". itch.io . Consultado el 30 de septiembre de 2023 .
  48. ^ "CoolBasic". IndieDB . 6 de diciembre de 2005 . Consultado el 30 de septiembre de 2023 .
  49. ^ "Página de inicio de AllegroBASIC". AllegroBASIC . Archivado desde el original el 15 de noviembre de 2018 . Consultado el 7 de octubre de 2023 .
  50. ^ "Ethos Game Basic 1.3". shareApp . Consultado el 30 de septiembre de 2023 .
  51. ^ "RC Basic". ModDB . 18 de agosto de 2015 . Consultado el 30 de septiembre de 2023 .
  52. ^ Fercalo, Andrei (8 de agosto de 2014). "NaaLaa". Softpedia . Consultado el 1 de octubre de 2023 .
  53. ^ "Una mirada más cercana a AppGameKit 2". GameFromScratch . 12 de junio de 2015 . Consultado el 30 de septiembre de 2023 .
  54. ^ "Cerberus X 2018-08-10 Released". GameFromScratch . 10 de agosto de 2018 . Consultado el 30 de septiembre de 2023 .
  55. ^ Clarke, Gavin (21 de febrero de 2007). «Un gran avance en Linux para los desarrolladores de Visual Basic». The Register . Consultado el 1 de octubre de 2023 .
  56. ^ Anderson, Tim (14 de febrero de 2020). "25 años de Delphi y ningún Oracle a la vista: no es un asesino de Visual Basic pero es difícil de matar". The Register . Consultado el 25 de marzo de 2023 . 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 (=).
  57. ^ Speed, Richard (6 de mayo de 2022). "RAD Basic, el Visual Basic 7 que nunca existió, lanza su tercera versión alfa". The Register . Consultado el 26 de marzo de 2023. Alternativamente, se pueden revivir los días de toda la rivalidad entre BASIC y Pascal con Lazarus compatible con Delphi.
  58. ^ "Directrices del ciclo de vida de las familias de productos para Visual Basic 6.0". Msdn2.microsoft.com. 31 de marzo de 2005. Consultado el 16 de junio de 2009 .
  59. ^ Ramel, David (7 de julio de 2020). «Índice de popularidad: el Visual Basic clásico sigue vigente». Revista Visual Studio . Consultado el 28 de marzo de 2023 .
  60. ^ Ramel, David (28 de febrero de 2020). "¿Resurgimiento de Visual Basic? ¡El proyecto busca 'traer VBE a este siglo'!". Visual Studio Magazine . Consultado el 28 de marzo de 2023 .
  61. ^ Domingo, Michael (13 de junio de 2017). "¡Viva Visual Basic! ¿O tiene futuro VB?". Visual Studio Magazine . Consultado el 26 de marzo de 2023 .
  62. ^ Ramel, David (12 de marzo de 2020). «Microsoft: 'No tenemos previsto hacer evolucionar Visual Basic como lenguaje'». Visual Studio Magazine . Consultado el 26 de marzo de 2023 .
  63. ^ Ramel, David (8 de febrero de 2023). «Microsoft reafirma el destino de Visual Basic». Revista Visual Studio . Consultado el 25 de marzo de 2023 .
  64. ^ Williams, Al (17 de septiembre de 2018). "Es la Web, básicamente". Hackaday . Consultado el 28 de septiembre de 2023 .
  65. ^ Veteanu, Marian (14 de febrero de 2017). "Compiladores de JavaScript. Parte II: Lenguajes que compilan en JavaScript". Code Avenger .
  66. ^ "Java – ¿Qué lenguajes de programación apuntan a J2ME?". iTecNote . Consultado el 30 de septiembre de 2023 . 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).
  67. ^ Tello, Guillaume (15 de diciembre de 2007). «LG KS 360». Archivado desde el original el 28 de octubre de 2010. Consultado el 30 de septiembre de 2023. Después de investigar un poco en la red, encontré este sitio sobre CellularBASIC. Es un intérprete BASIC completo escrito en JAVA.
  68. ^ Miller, Paul (19 de junio de 2017). «Fuze Code Studio permitirá a los niños usar la Switch para codificar sus propios juegos de Switch». The Verge . Consultado el 30 de septiembre de 2023 .
  69. ^ Porter, Matt (18 de diciembre de 2015). "Ahora los niños pueden volver a BASIC con Fuze". The Gadget Man . Consultado el 30 de septiembre de 2023 .
  70. ^ Bedford, Mike (21 de octubre de 2015). "Revisión de FUZE con Raspberry Pi V2". The Gadget Man . Consultado el 30 de septiembre de 2023 .
  71. ^ Brin, David (14 de septiembre de 2006). "Why Johnny Can't Code". Salon . Archivado desde el original el 18 de septiembre de 2013. Consultado el 19 de junio de 2017 .
  72. ^ "Small Basic". Microsoft Developer Network . Archivado desde el original el 17 de marzo de 2014. Consultado el 19 de junio de 2017 .
  73. ^ "Página de inicio de BASIC-256". Consulta "Por qué Johnny no sabe programar", el artículo que inspiró BASIC-256.
  74. ^ Ratliff Sr., Gary L. (octubre de 2008). "Un alfabeto de lenguajes informáticos: BASIC". Revista PCLinuxOS . Consultado el 25 de febrero de 2024 .
  75. ^ Koster, Raph (21 de noviembre de 2006). «Quite BASIC — Web BASIC programming» (Básicamente bastante básico: programación en la Web BASIC) . Consultado el 25 de febrero de 2024 .
  76. ^ "Dartmouth planea celebrar el 50 aniversario del lenguaje de programación BASIC". New Hampshire Union Leader . 28 de abril de 2014. Archivado desde el original el 20 de junio de 2017. Consultado el 14 de junio de 2017 .
  77. ^ Wood, Lamont (23 de junio de 2011). "¿Cómo aprenden los estudiantes a programar en un mundo post-Basic?". Computerworld . Consultado el 26 de febrero de 2024 .
  78. ^ "BASIC a los 50: calendario de eventos". Dartmouth College . Consultado el 14 de junio de 2017 .
  79. ^ "BASIC a los 50". Dartmouth College . Consultado el 14 de junio de 2017 .
  80. ^ "KeyPgAsm". Wiki de FreeBasic . Consultado el 2 de agosto de 2017 .
  81. ^ "ASM x86 en línea". Pure Basic . Consultado el 2 de agosto de 2017 .
  82. ^ "Uso del lenguaje ensamblador en el código". Power Basic . Archivado desde el original el 2 de agosto de 2017. Consultado el 2 de agosto de 2017 .
  83. ^ Kemeny, John G.; Kurtz, Thomas E. (enero de 1968). Basic: a manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (PDF) (4.ª ed.). Hanover, NH: Dartmouth College Computation Center. p. 53. Archivado (PDF) desde el original el 3 de enero de 2014.
  84. ^ Ham, John Gatewood (2014). "Un compilador BASIC mínimo ECMA-55 para Linux® x86-64". Computadoras . 3 (3): 69–116. doi : 10.3390/computers3030069 . S2CID  40383760.
  85. ^ angros47 (29 de julio de 2013). "ANSI Basic: ¿FreeBasic cumple con el estándar?". freebasic.net . Archivado desde el original el 28 de septiembre de 2023.{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  86. ^ Bantchev, Boyko (2008). "El verdadero 'verdadero BASIC'". Instituto de Matemáticas e Informática . Archivado desde el original el 13 de marzo de 2011.

Referencias generales

  • Sammet, Jean E. (1969). Lenguajes de programación: historia y fundamentos . Englewood Cliffs, NJ: Prentice-Hall. LCCN  68-028110. OCLC  819683527.
  • Kurtz, Thomas E. (1981). "BASIC". En Wexelblat, Richard (ed.). Historia de los lenguajes de programación. Historia de los lenguajes de programación I. Nueva York: ACM . págs. 515–537. doi :10.1145/800025.1198404. ISBN . 978-0127450407.
  • Kemeny, John G.; Kurtz, Thomas E. (1985). Volver a BASIC: La historia, la corrupción y el futuro del lenguaje . Addison-Wesley. pág. 141. ISBN 9780201134339.OCLC 11399298  .
  • Lien, David A. (1986). Manual básico: enciclopedia del lenguaje informático BASIC (3.ª edición). Compusoft Publishing. ISBN 9780932760333.OCLC 12548310  .
  • "Cincuenta años de BASIC, el lenguaje de programación que hizo que las computadoras fueran personales". Time . 29 de abril de 2014.

"BASIC: código de instrucciones simbólicas multipropósito para principiantes". La enciclopedia de lenguajes informáticos . Universidad Murdoch .

  • El nacimiento de Basic en YouTube
  • gotBASIC.com—Para todas las personas interesadas en el uso continuo y la evolución del lenguaje de programación BASIC.
  • Awesome Basic: una lista seleccionada de dialectos BASIC, IDE y tutoriales increíbles.
  • Página de conceptos básicos (desde 2001): lista completa de dialectos.
Obtenido de "https://es.wikipedia.org/w/index.php?title=BASIC&oldid=1249354538"