BÁSICO

ImprimirCitar
Familia de los idiomas de programación

BASIC (Código de instrucciones simbólicas multipropósito para principiantes) 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 Dartmouth College en 1963. Querían permitir que los estudiantes en 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 solían aprender.

Además del lenguaje del programa, Kemeny y Kurtz desarrollaron el Sistema de tiempo compartido de Dartmouth (DTSS), que permitía a múltiples usuarios editar y ejecutar programas BASIC simultáneamente en terminales remotas. Este modelo general se volvió muy popular en sistemas de minicomputadoras como el PDP-11 y Data General Nova a finales de los 60 y principios de los 70. Hewlett-Packard produjo una línea completa de computadoras para este método de operación, presentó la serie HP2000 a fines de la década de 1960 y continuó con las ventas en 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 de 4 KB, también se crearon una variedad de dialectos Tiny BASIC. creado. 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 surgió a finales de la década de 1970. Estas PC casi siempre tenían un intérprete BASIC 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 los lenguajes de programación con características avanzadas (como Pascal y C) se volvieron sostenibles en dichas computadoras. En 1991, Microsoft lanzó Visual Basic, combinando 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 en las formas de VBA y VB.NET.

Origen

John G. Kemeny era el presidente del departamento de matemáticas en Dartmouth College. Basado en gran parte en su reputación como innovador en la enseñanza de las matemáticas, en 1959 la escuela ganó un premio de la Fundación Alfred P. Sloan por $500,000 para construir un nuevo edificio departamental. Thomas E. Kurtz se unió 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 STEM tradicionales. Kemeny señaló más tarde que "Nuestra visión era que todos los estudiantes en el campus deberían tener acceso a una computadora, y cualquier miembro de la facultad debería poder usar una computadora en el salón de clases cuando sea apropiado. Era tan simple como eso."

Kemeny y Kurtz habían realizado dos experimentos anteriores 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. 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 con formas extrañas, en particular una convención "casi imposible de memorizar para especificar un bucle: HACER 100, Yo = 1, 10, 2. ¿Es '1, 10, 2' o '1, 2, 10', y ¿es necesaria o no la coma después del número de línea?"

Además, la falta de cualquier tipo de retroalimentación inmediata fue un problema clave; las máquinas de la época usaban procesamiento por lotes y tomaban mucho tiempo para 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. Los programas pequeños devolverían resultados en unos pocos segundos. Esto condujo a un creciente interés en un sistema que usa tiempo compartido y un nuevo lenguaje específicamente para uso de estudiantes que no son STEM.

Kemeny escribió la primera versión de BASIC. El acrónimo BASIC proviene del nombre de un artículo inédito de Thomas Kurtz. El nuevo lenguaje estaba fuertemente modelado en FORTRAN II; las declaraciones eran uno a una línea, los números se usaban para indicar el objetivo de los bucles y las 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 DO difícil de recordar fue reemplazado por el mucho más fácil de recordar estilo PARA I = 1 TO 10 PASO 2, y el número de línea utilizado en DO se indicaba en su lugar con NEXT I. Del mismo modo, la declaración críptica IF de Fortran, cuya sintaxis coincidía con una instrucción particular de la máquina en la que se escribió originalmente, se convirtió en la más simple IF I=5 ENTONCES IR A 100. Estos cambios hicieron que el lenguaje fuera mucho menos idiosincrásico sin dejar de tener una estructura general y una sensación similar al FORTRAN original.

El proyecto recibió una subvención de $300,000 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 las teleimpresoras Teletype Model 33 utilizadas 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. La primera versión del lenguaje BASIC se lanzó el 1 de mayo de 1964.

Inicialmente, BASIC se concentró en admitir el trabajo matemático sencillo, con soporte de aritmética matricial desde su implementación inicial como lenguaje por lotes, y la funcionalidad de cadenas de caracteres se agregó en 1965. El uso en la universidad se expandió rápidamente, lo que requirió que la CPU principal fuera reemplazada por un GE-235, 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.

Queriendo generalizar el uso del lenguaje, sus diseñadores pusieron a disposición el compilador de forma gratuita. En la década de 1960, el software se convirtió en un producto de pago; hasta entonces, se proporcionaba sin cargo como un servicio con las computadoras muy costosas, generalmente disponibles solo para arrendamiento. También lo pusieron a disposición de las escuelas secundarias en el área de Hanover, New Hampshire y regionalmente en toda Nueva Inglaterra en terminales de teleimpresora Teletype Model 33 y Model 35 conectadas 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 se conoció como Dartmouth BASIC.

New Hampshire reconoció el logro en 2019 cuando erigió un hito histórico en la carretera en Hanover que describe la creación del "primer lenguaje de programación fácil de usar".

Difusión en servicios de tiempo compartido

La aparición de BASIC tuvo lugar como parte de un movimiento más amplio hacia los sistemas de tiempo compartido. Conceptualizada por primera vez a fines 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 "comprarían tiempo en la computadora de la misma manera que el hogar promedio compra energía y agua de las empresas de servicios públicos".

General Electric, después de haber trabajado en el proyecto de 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 rápidamente siguieron su ejemplo; Tymshare presentó SUPER BASIC en 1968, CompuServe tenía una versión en DEC-10 en su lanzamiento en 1969 y, a principios de la década de 1970, BASIC era en gran medida universal en las computadoras centrales de uso general. Incluso IBM finalmente se unió al club con la introducción de VS-BASIC en 1973.

Aunque los servicios de tiempo compartido con BASIC tuvieron éxito durante un tiempo, el éxito generalizado previsto anteriormente no iba a ser así. El surgimiento de las minicomputadoras durante el mismo período, y especialmente las microcomputadoras de bajo costo a mediados de la década de 1970, permitió que cualquier persona comprara y ejecutara sus propios sistemas en lugar de comprar tiempo en línea que normalmente se facturaba en dólares por minuto.

Difundir en minicomputadoras

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

BASIC, por su propia naturaleza de ser pequeño, se adaptaba naturalmente al mercado de las minicomputadoras, que estaba surgiendo al mismo tiempo que los servicios de tiempo compartido. Estas máquinas tenían una memoria principal muy pequeña, tal vez de tan solo 4 KB en la terminología moderna, 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 la menor necesidad de memoria de trabajo.

Un ejemplo particularmente importante fue HP Time-Shared BASIC, que, al igual que el sistema Dartmouth original, usaba 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 utilizó 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 resultados. Por un costo de alrededor de $ 100,000, uno podría tener una máquina capaz de ejecutar entre 16 y 32 usuarios al mismo tiempo. El sistema, incluido como HP 2000, fue la primera miniplataforma en ofrecer tiempo compartido y fue un éxito rotundo inmediato, lo que catapultó a HP a convertirse en el tercer proveedor más grande en el espacio de las minicomputadoras, detrás de DEC y Data General (DG).

DEC, el líder en el espacio de las minicomputadoras desde mediados de la década de 1960, había ignorado inicialmente 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. Esto llevó a DEC a introducir una versión más pequeña y limpia de JOSS conocida como FOCAL, que promovieron fuertemente a fines de la década de 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 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 de la educación. A principios de la década de 1970, FOCAL y JOSS se habían olvidado y BASIC se había vuelto casi universal en el mercado de las minicomputadoras. DEC continuaría presentando su versión actualizada, BASIC-PLUS, para usar en el sistema operativo de tiempo compartido RSTS/E.

Durante este período, se escribieron en BASIC una serie de juegos simples basados en texto, entre los que destaca Star Trek de Mike Mayfield. David Ahl los recopiló, algunos portados de FOCAL, y los publicó en un boletín educativo que compiló. Más tarde recopiló varios de estos en forma de libro, 101 juegos de computadora BÁSICOS, publicado en 1973. 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 respaldar el concepto, Ahl dejó DEC en 1974 para fundar la revista informática fundamental, Creative Computing. El libro siguió siendo popular y se volvió a publicar en varias ocasiones.

Crecimiento explosivo: la era del ordenador doméstico

Commodore BASIC v2.0 en el Commodore 64
MSX BASIC versión 3.0
"Train Basic every day!"—reads a poster (bottom center) in a Russian school (c. 1985-1986)

La introducción de las primeras microcomputadoras a mediados de la década de 1970 fue el comienzo 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 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 los estudiantes que han tenido una exposición previa a BASIC: como programadores potenciales, están mentalmente mutilados más allá de toda esperanza de regeneración', BASIC era uno de los pocos lenguajes que tenía un nivel lo suficientemente alto como para que lo pudieran usar personas sin capacitación y lo suficientemente pequeño como para caber en las microcomputadoras de la época, lo que lo convirtió en el lenguaje de programación estándar de facto en las primeras microcomputadoras.

La primera versión para microcomputadoras de BASIC fue coescrita por Bill Gates, Paul Allen y Monte Davidoff para su compañía recién formada, Micro-Soft. MITS lo lanzó en formato de cinta perforada para Altair 8800 poco después de la máquina misma, 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 ejemplo temprano 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 en máquinas de 4 KB, Bob Albrecht instó a Dennis Allison a escribir su propia variación del lenguaje. Cómo diseñar e implementar una versión simplificada de un intérprete para el lenguaje BASIC se trató en artículos de Allison en los tres primeros números trimestrales del boletín People's Computer Company publicado en 1975 y implementaciones con código fuente publicado en Dr. Dobb's Journal of Tiny BASIC Calisthenics & Ortodoncia: Running Light 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.

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" del TRS-80, Commodore PET y Apple II, incluyeron una versión del código MS o introdujeron rápidamente nuevos modelos con él. En 1978, MS BASIC era un estándar de facto y prácticamente todas las computadoras domésticas de la década de 1980 lo incluían en la ROM. Al arrancar, se presentó un intérprete BASIC en modo directo.

Commodore Business Machines incluía Commodore BASIC, basado en Microsoft BASIC. Apple II y TRS-80 tenían cada uno dos versiones de BASIC, una versión introductoria más pequeña introducida con los lanzamientos iniciales de las máquinas y una versión basada en MS 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. La familia Atari de 8 bits tenía su propio Atari BASIC que se modificó para encajar en un cartucho ROM de 8 KB. Sinclair BASIC se introdujo en 1980 con Sinclair ZX80 y luego se amplió para Sinclair ZX81 y Sinclair ZX Spectrum. La BBC publicó BBC BASIC, desarrollado por Acorn Computers Ltd, que incorpora muchas palabras clave de programación extra estructuradas y funciones avanzadas de operación 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 muy 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 consideraron universales y podrían usarse en máquinas que ejecutan 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 lo publicó desde Creative Computing como BASIC Computer Games. Este libro y sus secuelas proporcionaron cientos de programas listos para usar que se podían convertir fácilmente a prácticamente cualquier plataforma que funcione con BASIC. El libro llegó a las tiendas en 1978, justo cuando el mercado de las computadoras personales comenzaba, y se convirtió en el primer libro de computadoras vendido por un millón. Los paquetes posteriores, como Learn to Program BASIC, también tendrían juegos como enfoque introductorio. En las computadoras CP/M centradas en los negocios que pronto se generalizaron en los entornos de pequeñas empresas, Microsoft BASIC (MBASIC) fue una de las aplicaciones líderes.

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. Para 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.

PC IBM y compatibles

IBM Cassette BASIC 1.10

Cuando IBM estaba diseñando la PC de IBM, siguieron el paradigma de las computadoras domésticas existentes al querer tener un BASIC integrado. Obtuvieron esto de Microsoft (IBM Cassette BASIC), pero Microsoft también produjo varias otras versiones de BASIC para MS-DOS/PC DOS, incluidos IBM Disk BASIC (BASIC D), IBM BASICA (BASIC A), GW-BASIC (una versión compatible con BASICA). versión que no necesitaba la ROM de IBM) y QBasic, todos típicamente incluidos con la máquina. Además produjeron Microsoft BASIC Compiler dirigido a programadores profesionales. El editor de Turbo Pascal, Borland, publicó Turbo Basic 1.0 en 1985 (el autor original todavía comercializa versiones sucesoras con el nombre de PowerBASIC). Microsoft escribió el AmigaBASIC con ventana que se suministró con la versión 1.1 de las computadoras Amiga con GUI multitarea preventiva (finales de 1985 / principios de 1986), aunque el producto inusualmente no llevaba ninguna marca de Microsoft.

Estas variaciones posteriores introdujeron muchas extensiones, como una mejor manipulación de cadenas y compatibilidad con gráficos, acceso al sistema de archivos y tipos de datos adicionales. Más importantes fueron las instalaciones para la programación estructurada, incluidas las estructuras de control adicionales y las subrutinas adecuadas que respaldan las variables locales. Sin embargo, en la segunda mitad de la década de 1980, los usuarios usaban 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 de elección para la "envoltura retráctil" desarrollo de aplicaciones.

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 escritura estática opcional, así como construcciones orientadas a objetos de otros lenguajes, como "With" y "Para cada uno". El lenguaje mantuvo 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 como el nuevo lenguaje de macros para Microsoft Excel, un programa de hoja de cálculo. Para sorpresa de muchos en Microsoft que aún lo comercializaban inicialmente como un lenguaje para aficionados, el lenguaje se generalizó para aplicaciones de pequeñas empresas personalizadas poco después del lanzamiento de la versión 3.0 de VB, que se considera la primera versión relativamente estable.

Aunque 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. de un ojo" incluso usando un "lento" idioma, 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. Eventualmente, durante la larga vida de VB3, el conocimiento de Visual Basic se convirtió 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. El IDE, con su generador de GUI basado en eventos, también influyó en otras herramientas, sobre todo Delphi de Borland Software para Object Pascal y sus propios descendientes, como Lazarus.

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. El 11 de marzo de 2020, Microsoft anunció que la evolución del lenguaje VB.NET también había concluido. aunque todavía era compatible. Mientras tanto, existen competidores como Xojo y Gambas.

Tres modernos Variantes básicas: Mono Basic, OpenOffice.org Basic y Gambas

Versiones y dialectos posteriores a 1990

Muchos otros dialectos BASIC también han surgido desde 1990, incluido el código abierto QB64 y FreeBASIC, inspirados en QBasic, y el estilo Visual Basic RapidQ, Basic For Qt y Gambas. 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).

Ahora también existen varios intérpretes BASIC simples basados en la web, incluido Small Basic de Microsoft. Muchas versiones de BASIC ahora también están disponibles para teléfonos inteligentes y tabletas a través de Apple App Store o Google Play Store para Android. En las consolas de juegos, una aplicación para Nintendo 3DS y Nintendo DSi llamada Petit Computer permite la programación en una versión ligeramente modificada de BASIC con soporte para botones DS. También se ha lanzado una versión para Nintendo Switch.

Calculadoras

Las variantes de BASIC están disponibles en calculadoras gráficas y programables fabricadas por Texas Instruments, HP, Casio y otros.

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 básico era GW-Basic. QuickBasic es parte de una serie de tres idiomas 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 por defecto, 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 algunos sistemas de videojuegos, como el Nintendo Famicom.

Las diversas suites ofimáticas y productos relacionados de Microsoft, Lotus y Corel 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 es programable en una variante básica interna conocida como Hummingbird Basic. La variante de VBScript se utiliza para programar contenido web, Outlook 97, Internet Explorer y Windows Script Host. WSH también tiene instalado un motor Visual Basic para Aplicaciones (VBA) 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 usar 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 Visual Basic de implementaciones básicas. El lenguaje de macros anterior a Office 97 para Microsoft Word se conoce como WordBASIC. Excel 4 y 5 utilizan 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 de BASIC en las computadoras personales fue tal que los libros de texto alguna vez incluyeron el sencillo "Pruébelo en BASIC" ejercicios que alentaron a los estudiantes a experimentar con conceptos matemáticos y computacionales en el aula o en las computadoras del hogar. Las revistas informáticas populares de la época solían incluir programas de escritura.

El escritor futurista y de ciencia ficción David Brin lamentó la pérdida del ubicuo BASIC en un artículo de Salon de 2006, al igual que otros que usaron computadoras por primera vez durante esta época. A su vez, el artículo incitó a Microsoft a desarrollar y lanzar Small Basic; también inspiró proyectos similares como Basic-256. Dartmouth celebró el 50 aniversario de BASIC el 1 de mayo de 2014, al igual que otras organizaciones; al menos una organización de programadores de VBA organizó una celebración del 35 aniversario en 1999.

Dartmouth College celebró el 50.° aniversario del lenguaje BASIC con un día de eventos el 30 de abril de 2014. Se produjo un documental corto para el evento.

Sintaxis

Palabras clave 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, LET es opcional, y una línea sin otra palabra clave identificable asumirá la palabra clave para ser LET.
DATA
contiene una lista de valores que se asignan secuencialmente utilizando el comando READ.
READ
lee un valor de un DATA declaración y lo asigna a una variable. Un puntero interno mantiene un seguimiento del último DATA elemento que fue 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, leyendo varios valores en una sola operación.
RESTORE
reinicia el puntero interno al primero DATA declaración, permitiendo que el programa comience READA partir del primer valor. Muchos dialectos permiten un número de línea opcional o valor ordinal para permitir que el puntero sea reajustado a una ubicación seleccionada.
DIM
Establece un array.

Control de flujo de programa

IF... THEN... {ELSE}
utilizado para realizar comparaciones o tomar decisiones. Los dialectos primitivos sólo permitieron un número de línea después de la THEN, pero versiones posteriores permitieron seguir cualquier declaración válida. ELSE no fue ampliamente apoyado, especialmente en versiones anteriores.
FOR... TO... {STEP}... NEXT
repetir una sección de código un número determinado de veces. Una variable que actúa como contador, el "index", está disponible dentro del bucle.
WHILE... WEND y REPEAT... UNTIL
repetir una sección de código mientras que la condición especificada es verdadera. La condición puede ser evaluada antes de cada iteración del bucle, o después. Ambos comandos se encuentran principalmente en dialectos posteriores.
DO... LOOP {WHILE} o {UNTIL}
repetir una sección de código indefinidamente o mientras/hasta que la condición especificada sea verdadera. La condición puede ser evaluada antes de cada iteración del bucle, o después. 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 alcanza un RETURN comando, on which it jumps back to the statement following the GOSUB, ya sea después de un colon, o en la siguiente línea. Esto se utiliza para implementar las subrutinas.
ON... GOTO/GOSUB
elige dónde saltar basado en las condiciones especificadas. Vea la declaración de Switch para otros formularios.
DEF FN
un par de palabras clave introducidas a principios de la década de 1960 para definir funciones. Las funciones BASIC originales fueron modeladas en funciones de línea única FORTRAN. Las funciones BASIC fueron una expresión con argumentos variables, en lugar de subroutinas, con una sintaxis sobre el modelo de DEF FND(x) = x*x al principio de un programa. Los nombres de las funciones se limitaban originalmente a FN, más una carta, i.e., 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 declaración puede incluir un mensaje rápido.
TAB
usado con PRINT para establecer la posición donde se mostrará el siguiente personaje en la pantalla o impreso en papel. AT es una forma alternativa.
SPC
imprime varios caracteres espaciales. Similar en concepto a TAB pero se mueve por varios espacios adicionales de la columna actual en lugar de moverse a una columna especificada.

Funciones matemáticas

ABS
Valor absoluto
ATN
Arctangente (resultado en radians)
COS
Cosino (argumento en radians)
EXP
Función exponencial
INT
Parte entero (típica función del suelo)
LOG
Logaritmo natural
RND
Generación de números aleatorios
SIN
Sine (argumento en radians)
SQR
Base cuadrada
TAN
Tangente (argumento en radianos)

Varios

REM
contiene un comentario del programador o REMark; a menudo se utiliza para dar un título al programa y para ayudar a identificar el propósito de una sección determinada de código.
USR
transfiere el control del programa a una subrutina de lenguaje de máquina, generalmente ingresada como cadena alfanumérica o en una lista de declaraciones DATA.
CALL
formas alternativas de USR encontrado en algunos dialectos. No requiere un parámetro artificial para completar la sintaxis de función-como USR, y tiene un método claramente definido de llamar diferentes rutinas en memoria.
TRON / TROFF
gira en la pantalla de cada número de línea como se ejecuta ("TRace ON"). Esto fue útil para depurar o corregir problemas en un programa. TROFF vuelve a apagarlo.
ASM
Algunos compiladores como Freebasic, Purebasic y Powerbasic también apoyan el lenguaje de montaje en línea, permitiendo al programador intermix código de alto nivel y bajo nivel, normalmente prefijado con declaraciones "ASM" o "!".

Tipos de datos y variables

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 limitada y costosa (RAM). Las versiones más poderosas tenían aritmética de coma 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 solo los dos primeros eran significativos, por lo que era posible escribir inadvertidamente un programa con las variables "LOSS" y "PRÉSTAMO", que se trataría como si fuera lo mismo; asignar un valor a "PRÉSTAMO" sobrescribiría silenciosamente el valor previsto como "PÉRDIDA". Las palabras clave no se podían usar en variables en muchos de los primeros BASIC; "PUNTUACIÓN" se interpretaría como "SC" OR "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 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, punto flotante o variables de cadena.

Algunos dialectos de matrices y operaciones con matrices compatibles con BASIC, que se pueden usar 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 matriz compatibles) y evaluación de un determinante. Muchos BASIC de microcomputadoras no admitían este tipo de datos; Las operaciones matriciales aún eran posibles, pero tenían que programarse explícitamente en los elementos de la matriz.

Ejemplos

Un juego sencillo implementado en BASIC

BÁSICA no estructurada

(feminine)

Los nuevos programadores de BASIC en una computadora doméstica pueden 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 PRINT "¡Hola, Mundo!"20 FIN

Se podría usar un bucle infinito para llenar la pantalla con el mensaje:

10 PRINT "¡Hola, Mundo!"20 GOTO 10

Tenga en cuenta que la instrucción END es opcional y no tiene 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 un número fijo de mensajes usando la declaración común FOR...NEXT:

10 LET N=1020 PARA I=1 TO N30 PRINT "¡Hola, Mundo!"40 NEXT I

La mayoría de las versiones BASIC de primera generación, 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 "¿Cómo te llamas?"; U$20 PRINT "Hola"; U$30 INPUT "¿Cuántas estrellas quieres?"; N40 S$ = "50 PARA I = 1 TO N60 S$ = S$ + "*70 NEXT I80 PRINT S$90 INPUT "¿Quieres más estrellas? "; A$100 IF LEN()A$) = 0 Entonces GOTO 90110 A$ = LEFT$()A$, 1)120 IF A$ = "Y" O A$ = "y" Entonces GOTO 30130 PRINT "Adiós"; U$140 FIN

El cuadro de diálogo resultante podría parecerse a:

¿Cómo se llama? Mike
Hola Mike
¿Cuántas estrellas quieres: 7
♪♪
¿Quieres más estrellas? Sí.
¿Cuántas estrellas quieres: 3
.
¿Quieres más estrellas? no
Adiós.

El Dartmouth Basic original era inusual porque tenía una palabra clave de matriz, MAT. Aunque no está implementado por la mayoría de los derivados de microprocesadores posteriores, se usa en este ejemplo del manual de 1968 que promedia los números que se ingresan:

5 LET S = 010 MAT INPUT V 20 LET N = NUM 30 IF N = 0 Entonces 99 40 PARA I = 1 TO N 45 LET S = S + V()I) 50 NEXT I 60 PRINT S/N 70 Vamos. TO 5 99 FIN

BÁSICA Estructurada

(feminine)

Los BASIC de segunda generación (por ejemplo, VAX Basic, SuperBASIC, True BASIC, QuickBASIC, BBC BASIC, Pick BASIC, PowerBASIC, Liberty BASIC y (posiblemente) COMAL) introdujeron una serie de funciones en el lenguaje, principalmente relacionadas con y programación orientada a procedimientos. Por lo general, la numeración de líneas se omite del idioma y se reemplaza con etiquetas (para GOTO) y procedimientos para fomentar un diseño más fácil y flexible. Además se introdujeron palabras clave y estructuras para soportar la repetición, selección y procedimientos con variables locales.

El siguiente ejemplo está en Microsoft QuickBASIC:

REM QuickBASIC ejemploREM Declaración de avance - permite que el código principal llame aSubroutina REM que se define más adelante en el código fuenteDECLARE SUB PrintSomeStars ()StarCount!)REM El programa principal sigueINPUT "¿Cómo te llamas?", UserName$PRINT "Hola"; UserName$Sí. INPUT "¿Cuántas estrellas quieres?", NumStars CALL PrintSomeStars()NumStars) Sí. INPUT "¿Quieres más estrellas? ", Respuesta LOOP UNTIL Respuesta  " Respuesta = LEFT$()Respuesta, 1)LOOP WHILE UCASE$()Respuesta) = "Y"PRINT "Adiós"; UserName$FINREM subroutine definitionSUB PrintSomeStars ()StarCount) REM Esto procedimiento uso a local variable llamado Estrellas Estrellas = STRINGRESO()StarCount, "*) PRINT EstrellasFIN SUB

Básica orientada a objetos

(feminine)

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 controlada por eventos. La mayoría de los procedimientos y funciones incorporados 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:

Público Módulo StarsProgram Privado Función Pregunta()pronta As String) As String Consola.Escriba()pronta) Regreso Consola.ReadLine() Final Función Público Subsidio Main() Dim userName = Pregunta()"¿Cómo te llamas?") Consola.WriteLine()"Hola", userName) Dim respuesta As String Do Dim numStars = CInt()Pregunta()"¿Cuántas estrellas quieres?") Dim estrellas As Nuevo String()"*, numStars) Consola.WriteLine()estrellas) Do respuesta = Pregunta()"¿Quieres más estrellas? ") Loop Hasta luego respuesta  " Loop Mientras tanto respuesta.Empieza con()"Y", StringComparison.OrdinalIgnore Caso) Consola.WriteLine()"Adiós", userName) Final SubsidioFinal Módulo

Estándares

  • ANSI/ISO/IEC Standard for Minimal BASIC:
    • ANSI X3.60-1978 "Por mínima BASIC"
    • ISO/IEC 6373:1984 "Procesamiento de datos—Programar idiomas—BASIC mínima"
  • ECMA-55 Minimal BASIC (retirada, similar a ANSI X3.60-1978)
  • ANSI/ISO/IEC Standard for Full BASIC:
    • ANSI X3.113-1987 "Programming Languages Full BASIC"
    • INCITS/ISO/IEC 10279-1991 (R2005) "Tecnología de la información – Programación de idiomas – BASIC completo"
  • Módulos de Definición ANSI/ISO/IEC:
    • ANSI X3.113 Interpretaciones-1992 "BASIC Technical Information Bulletin # 1 Interpretations of ANSI 03.113-1987"
    • ISO/IEC 10279:1991/ Amd 1:1994 "Modules and Single Character Input Enhancement"
  • ECMA-116 BASIC (retirada, similar a ANSI X3.113-1987)

Compiladores e intérpretes

Compilador Autor Activo Windows Unix-like Otros sistemas operativos Tipo de licencia
AppGameKitLos Creadores del JuegoSí.Sí.Sí.NoPropietario
B4XErel UzielSí.Sí.Sí (Android, iOS)Sí (JVM)
BlitzMaxBlitz ResearchNo (2015)Sí.Sí (Linux, OS X)No
DarkBASICLos Creadores del JuegoNo (2016)Sí.NoNo
FreeBASICFreeBASIC Development TeamSí.Sí.Sí.DOS, FreeBSD
FutureBASICBrilor SoftwareSí.NoOS XClassic Mac OSPropietario
GambasBenoît MinisiniSí.NoSí.No
GFA BASICFrank OstrowskiNo (2005)Sí.NoAmiga, Atari ST, DOSPropietario
MercurioRemObjectsSí.Sí.Sí (Linux, OS X, Android, iOS)Sí (Asamblea web)Propietario
PowerBASIC (antes Turbo Basic)PowerBASIC, Inc.No (2010)Sí.NoDOSPropietario
PureBasicFantaisie SoftwareSí.Sí.Sí.Sí.Propietario
QB64GalleonSí.Sí.Sí.Sí.
QuickBASICMicrosoftNo (1990)NoNoDOSPropietario
Verdadera BASICVerdadera BASICSí.Sí.NoNoPropietario
VSI BASIC para OpenVMSVMS Software, Inc.Sí.NoNoOpenVMSPropietario
Xojo (antes REALbasic)Xojo Inc. (antes Software Real)Sí.Sí.Sí.Sí.Propietario
Interpreter Autor Windows Unix-like Otros sistemas operativos Tipo de licencia
Bywater BASIC (bwBASIC)Ted CampbellNoSí.?
Liberty BASICShoptalk SystemsSí.NoNoPropietario
GW-BASICMicrosoftNoNoMS-DOSPropietario
QBasicMicrosoftSí.NoNoPropietario
Chipmunk BasicRonald H. Nicholson, Jr.Sí.Sí.Sí.Freeware
TI BasicInstrumentos de TexasNoNoTI-99/4APropietario
TI Extended BasicInstrumentos de TexasNoNoTI-99/4APropietario
Montaña rocosa BASIC[Era Trans]Sí.NoHP 9000Propietario
BasMichael HaardtNoSí.No
YabasicMarc-Oliver IhmSí.Sí.Haiku
SmallBASICSmallBASICSí.Sí.Android, OS X
SuperBASICJan JonesNoNoSinclair QLPropietario
finoBasicfinoBasicSí.NoNoPropietario
PC-BASICRob HagemansSí.Sí.OS X

Contenido relacionado

Tarjeta Apple IIe

Arranque

Amigo 500

Más resultados...
Tamaño del texto:
Copiar