BÁSICO | |
---|---|
clase de idioma | algorítmico, luego procedimental , luego orientado a objetos |
Apareció en | 1964 |
Autor | Thomas Kurtz , John Kemeny |
Desarrollador | Kurtz, Thomas , Kemeny, John George y Mary Kenneth Keller [d] [1] [2] |
extensión de archivo | .bas |
sistema de tipos | flojo |
sido influenciado | Algol 60 , Fortran II, JOSS |
influenciado | COMAL , GRASS y muchos dialectos posteriores de la lengua |
Archivos multimedia en Wikimedia Commons |
BASIC ( BASIC , abreviatura de inglés. Código de instrucciones simbólicas multiusos para principiantes: un código universal para instrucciones simbólicas para principiantes [3] ): una familia de lenguajes de programación de alto nivel .
Fue desarrollado en 1964 por los profesores de Dartmouth College Thomas Kurtz y John Kemeny [4] .
El lenguaje se creó como una herramienta con la que los estudiantes que no eran programadores podían crear de forma independiente programas informáticos para resolver sus problemas. Se ha generalizado en forma de varios dialectos, principalmente como lenguaje para computadoras domésticas . Hasta la fecha ha sufrido cambios significativos, alejándose de la sencillez característica de las primeras versiones, rozando el primitivismo, y convirtiéndose en un lenguaje de alto nivel bastante corriente con un conjunto de características típicas. Se utiliza como lenguaje independiente para el desarrollo de programas de aplicación, operando principalmente bajo el sistema operativo Windows de varias versiones. También se usa ampliamente como lenguaje incorporado para sistemas de software de aplicación para diversos propósitos y como lenguaje para calculadoras programables .
El requisito previo para el surgimiento de BASIC fue la mayor disponibilidad de computadoras en la década de 1960 y el surgimiento de la capacidad de trabajar en modo de tiempo compartido ( time - sharing ). Estudiantes y especialistas que no son programadores capacitados, pero que necesitan resolver sus problemas en una computadora, han obtenido acceso a las computadoras.
BASIC fue concebido en 1964 por los profesores de Dartmouth College John Kemeny y Thomas Kurtz , y bajo su dirección fue implementado por un equipo de estudiantes universitarios. Con el tiempo, a medida que comenzaron a aparecer otros dialectos, la implementación original se conoció como Dartmouth BASIC .
BASIC fue diseñado para que los estudiantes pudieran escribir fácilmente programas utilizando terminales de tiempo compartido. Estaba destinado a usuarios más "simples", no tanto interesados en la velocidad de ejecución del programa, sino simplemente en la capacidad de usar una computadora para resolver sus problemas sin capacitación especial.
Los ocho principios siguientes se utilizaron en el diseño del lenguaje. El nuevo lenguaje era para:
El lenguaje se basó en parte en Fortran II y en parte en Algol 60 , con adiciones para hacerlo adecuado para tiempo compartido y, más tarde, procesamiento de texto y aritmética matricial. BASIC se implementó originalmente en el mainframe GE-265 con soporte para múltiples terminales. Contrariamente a la creencia popular, en el momento de su creación era un lenguaje compilado .
Aunque el lenguaje ya estaba en uso en varias minicomputadoras, su verdadera difusión comenzó con la introducción de la microcomputadora Altair 8800 . Muchos lenguajes de programación eran demasiado grandes para caber en la pequeña memoria que los usuarios de tales máquinas podían permitirse. Para máquinas con medios lentos como cintas de papel (más tarde casetes de audio) y sin un editor de texto adecuado, un lenguaje pequeño como BASIC fue una bendición.
En 1975, Microsoft (entonces solo eran dos: Bill Gates y Paul Allen , con la participación de Monte Davidov ), lanzó Altair BASIC . Luego aparecieron versiones del mismo en otra plataforma bajo licencia, y pronto hubo millones de copias y variantes en uso: una variante, Applesoft BASIC , se convirtió en el lenguaje estándar en Apple II . Para el sistema operativo CP/M , se creó el dialecto BASIC-80 , que determinó el desarrollo del lenguaje durante mucho tiempo.
En 1979, Microsoft discutió con varios proveedores de computadoras (incluyendo IBM ) la licencia del intérprete BASIC en sus máquinas. Se incluyó una versión ( ROM BASIC ) en la ROM de PC de IBM : la computadora podía arrancar automáticamente en BASIC. Dado que IBM no le daba mucha importancia a las computadoras personales en ese momento ( los mainframes eran su principal campo de actividad ), contrariamente a sus principios, permitió que Microsoft vendiera el intérprete por separado. Esto convirtió a este último en pionero en el lanzamiento de una nueva generación de software, no vinculado a un hardware específico y suministrado por separado de la computadora.
BASIC experimentó plenamente un fenómeno tan conocido en 1970-1980 como la reproducción masiva de versiones y dialectos de un lenguaje de alto nivel que son en gran medida incompatibles entre sí. Hubieron varias razones para esto. Dado que el lenguaje no se consideraba industrial, no se hicieron esfuerzos especiales para estandarizarlo y cada computadora creó su propia implementación. En los mismos años, apareció una gran cantidad de computadoras domésticas y educativas de 8 bits , construidas sobre la base de procesadores como Intel 8080 (análogo soviético - KR580VM80A ) o Z80 , en el que BASIC era el principal (o único disponible) de alta velocidad. lenguaje de nivel. Cada modelo de computadora tenía ciertas características de hardware y software, medios específicos para generar sonido y gráficos; herramientas de entrada no estándar, para cuyo soporte se introdujeron comandos y construcciones especiales en la implementación BASIC. A veces, las herramientas de programación de bajo nivel se implementaron directamente en BASIC, como trabajar directamente con la memoria física o manejar las interrupciones de hardware. Por lo tanto, si en la parte básica (el conjunto estándar mínimo de operadores y E / S en serie de la consola) la mayoría de las implementaciones eran básicamente similares, entonces en términos de salida de sonido, gráficos y control más complejo de la consola de texto (gestión del color, creando un tipo de ventana I/O), son casi seguramente incompatibles. Como resultado, solo las versiones y dialectos más comunes de BASIC eran más de una docena, y la cantidad total de implementaciones a menudo incompatibles no era inferior a la cantidad de tipos y variedades de computadoras en funcionamiento.
El período de mayor prosperidad y desarrollo del BASIC original puede considerarse el final de la década de 1970, la primera mitad de la década de 1980. Durante este período, casi todas las computadoras personales tenían su propio intérprete BASIC, a menudo integrado en la ROM, que en las computadoras más simples a menudo también realizaba las funciones de un sistema operativo. Casi todas las computadoras más poderosas también tenían sistemas BASIC interactivos. Prácticamente no había compiladores BASIC , la gran mayoría de las implementaciones eran un híbrido estándar de un editor de línea y un intérprete. Con el tiempo, las herramientas básicas del lenguaje mejoraron, lo que condujo a la aparición en algunas implementaciones de operadores de rama complejos, tipos adicionales de bucles y procedimientos nombrados con parámetros.
Se crearon varias versiones nuevas de BASIC para la plataforma IBM PC. Microsoft vendió BASIC para MS-DOS / PC DOS , incluido IBM Advanced BASIC (BASICA), GW-BASIC (una modificación de BASICA que no requiere "firmware" de IBM) y QuickBASIC . Borland , que originalmente ingresó al mercado con su conocido Turbo Pascal , lanzó un sistema Turbo Basic 1.0 basado en el mismo entorno de software en 1985 (sus sucesores fueron vendidos posteriormente por otra compañía bajo el nombre de PowerBASIC ). Algunos otros lenguajes utilizaron la conocida sintaxis BASIC como base sobre la cual se construyó un sistema completamente diferente (ver GRASS , por ejemplo ). El deseo de aumentar el rendimiento de los programas BASIC hizo que surgieran compiladores completos (como el Turbo Basic mencionado anteriormente), así como sistemas "híbridos" en los que, manteniendo la interpretación como principal método de ejecución del programa, la compilación parcial Se implementó "sobre la marcha", por ejemplo, compilación de ciclos cortos. Además, al menos en la plataforma de IBM, se ha extendido la pseudocompilación de programas BASIC, cuando el traductor traduce el programa BASIC a pseudocódigo (a menudo reversible) y forma un programa ejecutable a partir del módulo objeto intérprete y el módulo codificado con el texto del programa. . Dicho programa se ejecutaría y ejecutaría como un programa de objeto compilado normal, aunque esencialmente se mantendría interpretado.
A mediados de la década de 1980, BASIC se convirtió en el lenguaje principal en modelos complejos de calculadoras programables , que en ese momento habían alcanzado el poder de permitir el uso de un lenguaje de alto nivel completo. El mismo hecho de que muchos fabricantes, sin decir una palabra, eligieron BASIC como base para el lenguaje de alto nivel de las calculadoras, habla mejor de todo sobre el predominio y la popularidad de este lenguaje en el momento indicado. Entonces, BASIC se incorporó a la calculadora electrónica soviética MK-85 y a todos sus modelos posteriores. El uso de BASIC como lenguaje principal de alto nivel para calculadoras programables continúa hasta el día de hoy; en la actualidad, es la "calculadora" BASIC que es más similar a la versión original de la década de 1960-80, por ejemplo, la implementación para calculadoras CITIZEN contiene solo 14 palabras clave (sin contar funciones matemáticas) y solo permite nombres de variables de un solo carácter .
A fines de la década de 1980, las computadoras personales se volvieron mucho más poderosas y proporcionaron características (como una interfaz gráfica de usuario ) que ya no eran tan convenientes de usar en BASIC. Además, la aparición en las computadoras de la clase "educativa" y "doméstica" de traductores económicos de lenguajes industriales (principalmente Pascal y C), acompañados de entornos de programación convenientes y bibliotecas útiles (por ejemplo, Borland Pascal con la biblioteca Turbo Vision ) creó una fuerte competencia para BASIC. BASIC comenzó a perder terreno, a pesar de que una gran cantidad de sus versiones todavía se usaban y vendían. Al mismo tiempo, comenzó un rápido cambio en la apariencia de aquellos sistemas BASIC que permanecieron en funcionamiento. Hubo una "deriva" gradual hacia lenguajes estructurales reconocidos: el vocabulario y el conjunto de construcciones del lenguaje se expandieron, aparecieron ramas complejas, subrutinas y funciones con nombre, nombres largos de variables. Además, las mayores capacidades de las computadoras personales permitieron abandonar los rasgos característicos de BASIC, introducidos para garantizar un trabajo interactivo efectivo en una terminal de texto: marcas numéricas para cada línea y edición línea por línea.
BASIC recibió una segunda vida con la llegada de Visual Basic de Microsoft . Aunque es difícil estar de acuerdo en que este lenguaje es realmente BÁSICO; fue la conclusión lógica de la evolución del lenguaje y, a pesar de la conservación de las palabras clave habituales, en términos de estructura y conjunto de funciones, está más cerca de Pascal que del BASIC original. Pero como herramienta para crear rápidamente programas de Windows prácticamente útiles con una baja calificación de programador, resultó ser muy útil y rápidamente se convirtió en uno de los lenguajes más utilizados en la plataforma Windows . La implementación exitosa del generador de GUI incluido en el sistema no jugó el último papel aquí, que ocultó los detalles de la programación de la GUI de Windows al desarrollador y les permitió concentrarse en la tarea. Microsoft creó una variante llamada WordBasic y la usó en MS Word hasta la llegada de Word 97. La variante de Visual Basic para Aplicaciones (VBA) se incorporó a Microsoft Excel 5.0 en 1993 , luego a Access 95 en 1995 , y luego a todos los demás herramientas incluidas en la suite de Microsoft Office . Internet Explorer 3.0 y superior, así como Microsoft Outlook , incluían un intérprete de VBScript .
La sintaxis del lenguaje se parece a Fortran y muchos elementos son préstamos explícitos de él. El lenguaje fue concebido para el aprendizaje, por lo que sus diseños son lo más simples posibles. Al igual que con otros lenguajes de programación , las palabras clave se toman del idioma inglés. Hay dos tipos básicos de datos: cadenas y números. Con la llegada de la versión de Visual Basic , así como sus diversas modificaciones (como VBA ), aparecieron en el lenguaje muchos otros tipos de datos y adiciones que son típicas de los lenguajes de programación modernos (como el modelo de objetos). La declaración de variables no requiere una sección especial (a diferencia de Pascal ). Declarar una variable es el primer uso de la misma.
Las primeras versiones de BASIC (como BASICA , GW-BASIC ) difieren significativamente de los dialectos modernos y apenas se usan en la actualidad.
La apariencia de los programas en las primeras versiones de BASIC estuvo determinada en gran medida por el hecho de que estaba destinado a un entorno de programación con un editor de texto de línea. En dicho editor, el usuario no podía mostrar todo el texto en la pantalla (en la ventana), moverse en cualquier dirección con el teclado y / o el mouse. En los editores de línea, para cambiar una línea de texto, el usuario debe dar el comando para cambiar la línea con un número dado, luego ingrese el nuevo texto de la línea especificada. Para insertar una nueva línea, debe dar el comando de inserción, indicando nuevamente el número. Las cadenas de entrada se muestran secuencialmente en la pantalla (independientemente de los números). Para ver los cambios realizados, se utiliza el comando de texto de salida, que genera las líneas en el orden correcto (números ascendentes).
Todo esto se refleja en BASIC. Cada línea comienza con un número. Cuando se ingresaba al editor, la línea aparecía en el código fuente del programa en la posición correspondiente a su número. Para insertar una nueva línea, era necesario agregar una línea con un número que estaba en el rango entre los números de las otras dos líneas. Era imposible "esparcir" las líneas si era necesario insertar una nueva línea entre líneas con números adyacentes, tenía que volver a ingresar estas líneas con otros números para asegurar una interrupción en la numeración (o usar un comando especial RENUMque renumeraba todas las líneas ya ingresadas con un paso constante, cambiando sincrónicamente todos los comandos de salto). Para simplificar la edición en línea del programa, se ha convertido en una práctica numerar las líneas con un paso de 10; esto hizo posible en casi todos los casos insertar nuevas líneas sin cambiar los números ingresados previamente. Por ejemplo, para agregar una tercera línea entre las líneas 20 y 30, habría que escribir una línea con un número entre 21 y 29. Una línea típica de un programa BASIC se veía así:
10 IMPRIMIR "¡Hola, mundo!"No era seguro cambiar manualmente los números de líneas ya existentes, ya que los números actuaban como etiquetas para el operador GOTO. Anteriormente, BASIC solo permitía etiquetas numéricas para este operador, y la presencia de un número único en cada línea permitía saltar incondicionalmente a cualquiera de ellas. Las etiquetas numéricas y el uso intensivo GOTOeran inevitables en la programación BASIC, lo que contribuía a una estructura de código deficiente y, en proyectos grandes, conducía a la confusión de los propios autores. Incluso se acuñó el término de broma "programación de pasta" ( código espagueti ), porque la lógica del programa con transiciones frecuentes se GOTOasemeja a un plato de espaguetis.
El terminador del operador era el final de la línea. Para colocar varias declaraciones en una línea, debe colocar dos puntos entre ellas (esto no estaba permitido en todas las implementaciones del lenguaje). Los nombres de variables en la mayoría de los dialectos solo podían constar de una letra, después de la cual se podía agregar un dígito, lo que tampoco mejoraba la comprensión del código. Para crear una variable de tipo cadena, tenía que poner un signo de dólar ( $) después del nombre. Una variable sin este signo era una variable numérica (coma flotante). Había varios modificadores más relacionados con el tipo numérico: el signo de porcentaje ( %) - un tipo entero, el signo de exclamación ( !) - precisión normal, octothorp ( #) - precisión doble (para datos de punto flotante, es decir, fracciones decimales ). En algunas versiones, es posible que no se hayan aplicado modificadores numéricos o que no se hayan aplicado todos. En la gran mayoría de los programas, solo se utilizó el tipo numérico básico.
Las expresiones son similares a la mayoría de los otros lenguajes de programación de procedimientos, pero en las primeras versiones de BASIC su conjunto era bastante pobre. En las primeras versiones, la cantidad de palabras clave ni siquiera llegaba a 20. Aquí hay un conjunto de construcciones básicas de programas y comandos interactivos que se implementaron en casi cualquier sistema BASIC de finales de la década de 1970:
El operador condicional ( IF..THEN) inicialmente solo tenía una rama: no había ELSEninguna rama en él y se modeló usando una transición incondicional. Entonces, en el siguiente programa, se realiza una operación elemental: ingresar un número y mostrar el mensaje "Número negativo" o "Número positivo o cero", según su valor:
10 INPUT I 20 IF I >= 0 THEN PRINT "Número positivo o nulo" : GOTO 40 30 PRINT "Número negativo" 40 FINHabía un operador de transición por una etiqueta calculada ON..GOTO(heredada de una construcción Fortran similar): después de ON, se indicaba una expresión numérica y, después GOTO , una lista de números de línea. La transición ocurrió a la línea, cuyo número en la lista correspondía al valor de la expresión. También hay ciclos (un ciclo con un contador FORy un ciclo con una condición previa WHILE).
El uso de funciones definidas por el usuario (secciones de código, reutilizables) era posible de dos formas: funciones definidas y subrutinas.
Las subrutinas no eran análogas a las funciones de lenguajes como C o Pascal , ya que no tenían nombres y no podían aceptar y/o devolver parámetros. Los parámetros y los resultados se pasaban a través de variables globales (todas las variables en las primeras versiones de BASIC eran globales). Las subrutinas generalmente se escribían al final del módulo, con una numeración obviamente mayor que el número de líneas planificado (por ejemplo, la numeración de un bloque de subrutinas podría comenzar desde 5000, incluso si el programa tuviera un par de cientos de líneas). Las subrutinas no tenían encabezados ni nombres, y no eran diferentes de cualquier otra pieza de código. La subrutina se llamó utilizando la palabra clave GOSUB <метка>. Esto es prácticamente un clon GOTO, excepto por una cosa: el regreso al punto de llamada se produjo automáticamente cuando se alcanzó la palabra clave en la subrutina RETURN. GOSUB, como GOTO, solo contribuyeron a una estructura de código deficiente, ya que era una tarea difícil rastrear la ejecución de un programa que contenía una gran cantidad de subrutinas y saltos incondicionales. No se permitió la recurrencia.
La incapacidad para nombrar subrutinas (y transferir el control sobre ellas), la incapacidad para pasar parámetros, la ausencia de variables locales, el uso de solo etiquetas numéricas en proyectos grandes causaron confusión en el código y dificultaron mucho la depuración.
En algunos dialectos BASIC, era posible cargar un archivo con código directamente durante la ejecución del programa (el actual se descargaba) por parte del operador CHAIN. Esta fue una de las características más útiles del lenguaje, ya que le permitió dividir un gran proyecto en módulos, llamándolos en orden de necesidad.
No había editor de código en versiones anteriores, como tal. Al iniciar el intérprete BASIC, se inició el modo de diálogo para ingresar comandos. Para trabajar en este modo, se proporcionaron comandos especiales que no eran operadores del lenguaje en sí (no podían incluirse en el código del programa). Estos son comandos para administrar el entorno de entrada, tales como: LIST <диапазон строк> - mostrar la lista de programas en la pantalla ( LLIST - a la impresora), SAVE <имя файла> - guardar el texto del programa en un archivo, LOAD <имя файла> - cargar el código en la memoria, etc. El programa fue iniciado por ingresando el comando EJECUTAR. La mayoría de los intérpretes de BASIC tenían una línea con estos (y otros) comandos en la parte inferior de la pantalla.
Si el comando comenzaba con un número de línea (etiqueta), se almacenaba en la memoria como parte del programa de entrada. Si la cadena de operadores se ingresó sin un número, se ejecutó inmediatamente después de presionar la tecla ↵ Enter. Como primeras lecciones, se les pidió a los estudiantes de BASIC que experimentaran con dicho modo, cuando el resultado de la ejecución de la expresión fue inmediatamente visible. Por ejemplo, si ingresa una cadena mientras está en el modo de diálogo PRINT 2+2y presiona ↵ Enter, el resultado de la suma se mostrará en la pantalla.
Para editar una cadena ya ingresada, en la mayoría de las implementaciones fue necesario volver a escribirla por completo. Las filas se eliminaron con el comando DELETE <диапазон строк>. Comando RENUM : permitido restaurar el paso 10 en la numeración de líneas. A menudo había una situación en la que el paso regular 10 no era suficiente para las líneas futuras (ya que dicho paso le permite agregar solo 9 líneas entre las requeridas) y luego el comando RENUMera necesario (todas las líneas se renumeraron con un paso de 10, y las líneas se ajustaron en consecuencia GOTOpara la nueva numeración de líneas).
Para ejecutar el programa en BASIC, el nombre del archivo con el código del programa se pasó al intérprete en la línea de comando. En este caso, después de cargar el código, el comando EJECUTAR (iniciar la ejecución del programa) se llamó automáticamente.
Un fragmento de un típico programa BASIC:
10 CLS 'Borrar pantalla 20 PRINT "¡Bienvenido!" 'Título en la primera línea 30 'Bucle que dibuja la línea debajo del título al ancho de pantalla completo 40 FOR I = 1 TO 80 50 PRINT "=" ; 60 NEXT I 65 'Entrada de caracteres del usuario (comentario agregado después de ingresar las líneas inferiores) 70 INPUT "First Name: " , N$ 80 INPUT "Apellido: " , S$ 90 INPUT "Patronímico: " , T$ 95 ' Corta una copia de los primeros caracteres del primer y segundo nombre 100 N2$ = LEFT$ ( N$ , 1 ) 110 T2$ = LEFT$ ( T$ , 1 ) 120 'Imprime el resultado 130 PRINT "Tu nombre es corto: " ; S$ ; "" ; N2$ ; ". " ; T2$ ; "." 140 ENTRADA "¿Repetir programa? (S/N) " , U$ 150 SI U$ = "S" ENTONCES IR A 10 160 FINEl punto y coma tiene la función de suprimir una nueva línea después del operador PRINT. La palabra clave ENDsignifica finalización del programa. Es opcional, en su ausencia el programa finalizaba después de la ejecución de la última instrucción, pero era útil en los casos en que había una sección de subrutinas, o el programa tenía varios puntos de terminación posibles (en este último caso, ya sea en cada uno de ellos). punto que pusieron END, o ENDhubo uno, y en él se hicieron pasajes en otros lugares).
Una de las variantes más comunes del lenguaje BASIC fue la implementación del intérprete QBasic por parte de Microsoft Corporation . Durante muchos años se incluyó como una aplicación gratuita incluida con MS-DOS y los primeros sistemas operativos de Windows . Tenía capacidades gráficas y de sonido bastante potentes, lo que te permitía crear incluso juegos en este lenguaje.
Las versiones posteriores de BASIC (comenzando con Turbo Basic y Visual Basic ) son muy diferentes de las versiones anteriores. De hecho, es un nuevo lenguaje que en muchos sentidos está más cerca de Fortran o Pascal que del BASIC original. Los principales cambios en las versiones de la década de 1990 son los siguientes:
Casi todas las deficiencias inherentes a las primeras versiones del lenguaje se han solucionado, y la programación en dialectos BASIC modernos difiere poco del uso de otros lenguajes y entornos (como Delphi ). La otra cara del proceso de modificación de Basic es que el lenguaje se ha vuelto mucho más grande y complejo, y su desarrollo requiere más tiempo y esfuerzo.
Fragmento de un programa típico de FreeBASIC:
# Lang "fb" Dim As String n , s , t , n2 , t2 Cls : Imprimir "¡Bienvenido!" 'Título en la primera línea Do 'Bucle que dibuja la línea debajo del título al ancho de pantalla completa For i As Integer = 1 To LoWord ( Ancho ) Print "=" ; Siguiente i 'Ingrese los datos del carácter del usuario Ingrese "Nombre: " , n Ingrese "Apellido:" , s Ingrese "Segundo nombre:" , t 'Corte una copia de los primeros caracteres del nombre y patronímico n2 = Izquierda ( n , 1 ) t2 = Izquierda ( t , 1 ) 'Muestra el resultado Imprimir "Tu nombre es corto:" ; s ; "" ; n2 ; ". " ; t2 ; "." Imprimir "¿Repetir programa? (s/n)" Bucle Mientras LCase ( Entrada ( 1 )) = "y" Fin 0A pesar de su popularidad, en 2001 Microsoft abandonó el soporte adicional para Visual Basic en favor de un lenguaje Visual Basic .NET fundamentalmente nuevo ; en esta implementación, el lenguaje se revisó de nuevo radicalmente, y en su estado actual prácticamente coincide en términos del conjunto de funciones con el lenguaje C# , solo los detalles difieren sintaxis y palabras clave. De esta manera, Basic ha evolucionado de una herramienta para crear programas para aficionados no profesionales a una herramienta completa para crear programas.
Además de escribir programas completos, BASIC se usa ampliamente como base para varios lenguajes de secuencias de comandos (por ejemplo, las macros en el paquete de Microsoft Office están escritas en el dialecto VBA ).
Durante su apogeo (1970-1980), BASIC fue muy criticado. Además de señalar las deficiencias obvias del lenguaje asociadas con la pobreza sintáctica de las primeras versiones y la ausencia de muchas construcciones y mecanismos convenientes y reconocidos, BASIC ha sido criticado por el hecho de que su simplicidad y falta de estructura fomentan el uso de prácticas de desarrollo viciosas y contribuir al desarrollo de peligrosos hábitos de programación que a veces pueden ser apropiados para la rápida creación de pequeños programas para las necesidades actuales, pero que pueden llevar al colapso de grandes proyectos.
La ubicua educación en programación inicial basada en BASIC ha sido duramente criticada. Una de las "tarjetas de presentación" de Edsger Dijkstra fue la declaración:
A los alumnos que han estudiado BASIC previamente les resulta casi imposible enseñar una buena programación. Como aspirantes a programadores, están lisiados mentalmente sin esperanza de recuperación [5] .
Texto original (inglés)[ mostrarocultar]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.
En respuesta a las críticas, los partidarios de BASIC señalan que los críticos atribuyen al lenguaje aquellos aspectos negativos que deberían atribuirse a su mal uso. Las desventajas de BASIC (si nos referimos a los primeros dialectos) aparecen cuando se trata de desarrollar profesionalmente programas complejos y grandes en él y cuando se usa como lenguaje base para enseñar a los programadores, pero este lenguaje no estaba destinado a ninguna de estas aplicaciones; su tarea principal era brindar a los estudiantes no programadores la oportunidad, después de un entrenamiento mínimo , de escribir los programas más simples para sus propias necesidades , a fin de no distraer a los especialistas para este trabajo. El lenguaje es bastante adecuado para esta tarea.
Si hablamos de dialectos modernos e implementaciones de BASIC, entonces se han alejado tanto de la forma original del lenguaje que todo lo anterior difícilmente puede considerarse relacionado con ellos. Los dialectos modernos de BASIC son lenguajes bastante estructurados, son comparables en capacidades a lenguajes como C , Pascal , etc.
En diferentes momentos, los intérpretes BASIC fueron producidos por varias organizaciones, empresas, firmas:
Soviético:
Manzana:
|
|
Sinclair :
|
|
|
Otro:
|
|
BASIC | Dialectos del lenguaje de programación|
---|---|
Clásico |
|
transicional |
|
procesal |
|
Objeto |
|
Móvil |
|
Consola |
|
Lenguajes de programación | |
---|---|
|