Articulo de referencia

Libertad Básica

El sistema IDE Liberty Basic v4.03 Liberty BASIC (LB) es un lenguaje de programación comercial y un entorno de desarrollo integrado (IDE). Cuenta con un intérprete , desarrollad...

El sistema IDE Liberty Basic v4.03

Liberty BASIC (LB) es un lenguaje de programación comercial y un entorno de desarrollo integrado (IDE). Cuenta con un intérprete , desarrollado en Smalltalk , que reconoce su propio dialecto del lenguaje de programación BASIC . Se ejecuta en sistemas Windows de 16 y 32 bits y en OS/2 .

Fondo

Liberty BASIC fue escrito por Carl "Gunner" Gundel y publicado en su primera versión por su compañía, Shoptalk Systems, en 1991. Desde entonces ha evolucionado constantemente. La última actualización publicadaLa actualización del software, versión 4.5.1, se realizó en junio de 2018. [ 1 ]

Aunque Liberty BASIC presenta algunas limitaciones en su diseño para la programación avanzada, ofrece un entorno de desarrollo integrado (IDE) introductorio para usuarios de Windows y OS/2 de nivel intermedio a avanzado. Dispone de bibliotecas de enlace dinámico (DLL). En su versión actual, solo se ejecuta en Microsoft Windows y bajo Wine en Linux. Actualmente se están realizando pruebas alfa de Liberty BASIC v5.0 con versiones compatibles con Microsoft Windows , Mac OS X , Linux y Raspberry Pi.

Liberty BASIC no compila a código nativo. En su lugar, compila el código escrito en el IDE a un archivo cifrado con la extensión TKN. Este archivo es ejecutado posteriormente por un archivo EXE con el mismo nombre, aunque esto podría cambiar con el lanzamiento de la versión 5.

Características

Liberty Basic v4.03 ejecutándose en Linux con Wine
  • Una herramienta de desarrollo visual llamada FreeForm, escrita en Liberty BASIC y ampliada enormemente por la comunidad de Liberty BASIC a lo largo de los años.
  • depurador a nivel de código fuente
  • Llamada a DLL e interfaces de programación de aplicaciones (API)
  • Capacidad de gráficos en color
  • Puede crear juegos con animación de sprites, sonido, música y control mediante joystick.
  • Un paquete adicional llamado Assist con muchas características nuevas, como un formateador de código, control de versiones del código fuente, un analizador de rendimiento, un navegador de diferencias de código fácil de usar y un sistema mejorado de paquetes e implementación.

Características distintivas

Liberty BASIC permite la programación procedimental mediante una "ventana principal" predeterminada que muestra texto formateado y acepta la entrada del usuario. También admite la programación orientada a eventos basada en una interfaz gráfica de usuario , utilizando varios tipos de ventanas que pueden contener los controles estándar, como botones, menús, cuadros de texto, etc.

Una idea central en la creación de Liberty BASIC fue modelar el manejo de ventanas según la sintaxis para el manejo de archivos. Por ejemplo, (del archivo de ayuda de Liberty BASIC):

"El comando OPEN abre la comunicación con un dispositivo, que puede ser un archivo de disco, una ventana, una biblioteca de vínculos dinámicos o un puerto de comunicaciones serie."

ABRIR dispositivo PARA propósito COMO # manejador { LEN = n }

Una vez abierto un dispositivo, se le pueden enviar datos y comandos para controlarlo. Para cada tipo de dispositivo, existe un conjunto de comandos que se pueden enviar de esta manera. En las versiones más recientes de LB, se puede omitir la palabra "print" de la instrucción "print", lo que simplifica aún más la sintaxis.

La simplicidad ha sido la esencia de Liberty BASIC desde sus inicios. Esto facilita el aprendizaje, aunque a costa de limitar su funcionalidad. En LB v4.03 solo se admiten dos tipos de datos  : numérico y cadena. No se requieren declaraciones de tipo; cualquier variable con un signo $ al final de su nombre es una variable de cadena, de lo contrario es numérica. (El plan para LB v5 es admitir otros tipos, incluidos los definidos por el usuario). Para realizar llamadas a una API o DLL de terceros, se dispone de una estructura (STRUCT) y los tipos adicionales necesarios para la DLL. La única otra estructura de datos admitida es el array (ARRAY). Se admiten arrays de una o dos dimensiones. LB v5 podría admitir arrays de tipos definidos por el usuario.

Programas destacados escritos en Liberty BASIC

  • FreeForm, un editor de interfaz gráfica de usuario para crear formatos de interfaz gráfica de usuario.

Código de ejemplo

Aquí hay algunos ejemplos del lenguaje:

Programa "¡Hola, mundo!"

imprimir "¡Hola, mundo!" fin

Programa para mostrar un cuadro de mensaje emergente con las palabras "¡Hola, mundo!":

aviso nomainwin "¡Hola, mundo!" fin
aviso nomainwin "Programa de ejemplo" + CHR$ ( 13 ) + "¡Hola, mundo!" fin

Programa para mostrar un cuadro de entrada:

nomainwin prompt "Ingrese su nombre:" ; response$ notice "Respuesta:" + CHR$ ( 13 ) + response$ end

Ejecutar otra aplicación:

nomainwin ejecutar "notepad.exe" fin

Imprimir la tabla de multiplicar del 5 en el formulario:

[ multi ] para i = 1 a 15 res = 5 * i imprimir res siguiente i fin

Implementaciones alternativas

La colección de compiladores GNU/Liberty Basic (GLBCC), creada por Anthony Liguori, es un conjunto de herramientas para compilar programas Liberty Basic que se ejecuta en sistemas Windows y Linux, pero el proyecto no se ha actualizado desde 2001.

En 2012, se lanzó una implementación alternativa de Liberty BASIC para Windows , LB Booster (LBB). Aunque es sustancialmente compatible con la sintaxis del lenguaje Liberty BASIC 4, LBB fue desarrollado de forma totalmente independiente por Richard Russell y está escrito en BBC BASIC .

LBB ofrece (normalmente) mayor velocidad de ejecución, ejecutables más pequeños y autónomos, y algunas capacidades adicionales. Sin embargo, LBB no es 100% compatible con LB4 y, si bien muchos programas se ejecutarán sin modificaciones, algunos podrían necesitar adaptaciones o incluso no ser adecuados para ejecutarse con LBB.

Liberty Basic no admite declaraciones de datos. En su lugar, cualquier nombre de dato nuevo se trata como una nueva declaración. Algunos lo consideran una ventaja, otros lo ven como un problema de depuración para quienes escriben con poca precisión. En 2019, Peter JD Matthews ideó un método para añadir declaraciones y comprobar si hay datos no declarados, sin modificar el código que interpreta el intérprete de LB. En 2023, este sistema se publicó en GitHub, en el repositorio público "LBPrePass", para que cualquiera pueda usarlo. Este repositorio también contiene la documentación del programa. El programa está escrito en Liberty Basic 4.5.1 y está diseñado para analizar código de la versión 4.5.1.

Referencias

  1. "Noticias de Liberty BASIC" . www.libertybasic.com . Consultado el 25 de enero de 2019 .
  • www.libertybasic.com  — sitio oficial
  • El blog de Carl Gundel
  • Liberty BASIC (en francés)
  • Liberty BASIC en Rosetta Code
  • Colección de compiladores GNU/Liberty Basic (GLBCC)
  • Refuerzo LB