Articulo de referencia

FutureBASIC

{{start date and age|2025|10|6}}"},"typing":{"wt":""},"implementations":{"wt":""},"dialects":{"wt":""},"influenced_by":{"wt":""},"operating_system":{"wt":"[[Mac OS]]"},"license"...

FutureBasic es un compilador BASIC gratuito para Macintosh de Apple Inc.

Consta de un entorno de desarrollo integrado (IDE), editor, gestor de proyectos, etc., para microprocesadores Intel y Apple Silicon . Desde el 1 de enero de 2008, el paquete incluye un traductor, FBtoC, que convierte la sintaxis de FutureBasic a C y llama automáticamente al compilador clang de Apple . No se requieren conocimientos de C. FutureBasic permite el acceso a las bibliotecas de macOS .

Historia

FutureBasic (FB) comenzó su vida a mediados de la década de 1980 [ 1 ] como ZBasic , que fue creado por Andrew Gariepy y concebido como un sistema de desarrollo multiplataforma . Pronto, los aspectos multiplataforma fueron abandonados en favor de centrarse en el desarrollo para Macintosh. ZBasic adquirió un grupo de desarrolladores devotos que elogiaban su facilidad de uso y el código compacto y rápido producido por el compilador (un trabajo legendario que implicaba un uso extensivo de código de lenguaje ensamblador 68K escrito a mano). En 1992 y como el siguiente paso importante después de la versión 5 de ZBasic, Zedcor Inc., la compañía de los hermanos Gariepy Andy, Mike, Peter y amigos con sede en Tucson , Arizona, presentó FutureBASIC (más tarde llamado FBI). [ a ] ​​En 1995, Staz Software, dirigida por Chris Stasny, adquirió los derechos para comercializar FutureBasic. Chris Stasny inició este negocio con una versión mejorada, a saber, FBII, [ b ] y con su propio desarrollo, el Generador de Programas [ c ] (PG PRO), una herramienta CASE.

La transición de la unidad central de procesamiento (CPU) 68k a PowerPC fue un proceso largo que implicó una reescritura completa del editor por Chris Stasny y una adaptación del compilador por Andy Gariepy. El resultado de sus esfuerzos, un IDE notablemente mejorado llamado FB^3 [ d ] , se lanzó en septiembre de 1999 [ e ] , que incluía, entre muchas otras cosas, una aplicación de compilador separada, varios entornos de ejecución abiertos y, por lo tanto, modificables, [ f ] ensamblador PPC en línea, un acceso simplificado a la interfaz de programación de aplicaciones (API) de Macintosh Toolbox, así como una biblioteca ampliada de funciones integradas. Las principales actualizaciones introdujeron un entorno de ejecución Appearance Compliant [ g ] con todas las funciones escrito por Robert Purves y la compatibilidad con Carbon de las aplicaciones generadas. Una vez completamente adaptado a Carbon para ejecutarse de forma nativa en Mac OS X , el Entorno de Desarrollo Integrado FutureBASIC (FB IDE) se denominó FB4 y se lanzó por primera vez en julio de 2004.

Con sede en Diamondhead , Mississippi , Staz Software se vio gravemente afectada por el huracán Katrina en agosto de 2005, y el ritmo de desarrollo se ralentizó en un momento en que se requería un gran esfuerzo para mantener el IDE actualizado con la evolución de Apple hacia el Macintosh basado en Intel.

En 2007, un equipo independiente de programadores voluntarios de Facebook, conocido como el equipo FBtoC, desarrolló un traductor (FBtoC) que permite a Facebook generar aplicaciones como binarios universales mediante el uso del compilador de código abierto GCC, que se incluye con cada copia del software del sistema Mac OS X de Apple.

El 1 de enero de 2008, Staz Software anunció que FB sería a partir de entonces software gratuito y que FB4, junto con FBtoC 1.0, estaría disponible.

Soporte para procesadores y sistemas operativos

Requisitos del sistema para la versión original de Macintosh: Motorola 68000 Requisitos del sistema para crear binarios universales con FBtoC: Mac OS X v10.4 o superior, GCC 4.0 o superior, y los SDK de desarrollo cruzado deben estar instalados.

Sintaxis

La sintaxis de FutureBasic admite estilos de programación procedimentales y modulares mediante llamadas a funciones y variables locales .

Flujo del programa y bloques estructurales

Las funciones definidas por el usuario (también conocidas como funciones LOCAL FN en FutureBasic) son muy parecidas a las funciones de C o Pascal .

  • También pueden estar totalmente aislados del programa principal (instrucción LOCAL MODE);
  • permiten la recursión ;
  • Se pueden llamar dinámicamente en tiempo de ejecución (sentencia DEF FN USING);
  • llamado automáticamente por los vectores de eventos integrados de FutureBasic (instrucción ON EVENT FN);
  • Se utilizan como funciones multihilo cooperativas (instrucción THREADBEGIN).

Se utilizan estructuras específicas (ENTERPROC/EXITPROC) para los procedimientos de devolución de llamada cuando se llama a Macintosh Toolbox .

El lenguaje proporciona al programador un conjunto completo de vectores para aplicaciones basadas en eventos, como ON MENU, ON MOUSE, ON DIALOG, ON APPLEEVENT, ON EDIT, ON TIMER, etc.

Otras palabras clave estructuradas incluyen bloques condicionales como:

  • SI LARGO .... SINO ... FIN SI
  • HACER .... HASTA
  • MIENTRAS... TERMINAMOS
  • SELECCIONAR ... CASO ... CASO SI NO ... FIN SELECCIONAR
  • PARA ... SIGUIENTE

Los comandos del lenguaje BASIC clásico, como GOTO y GOSUB /RETURN con números de línea y etiquetas, aunque no se recomiendan, se admiten con fines educativos.

A continuación se muestra un ejemplo de un programa sencillo para introducir un número y mostrar "Hola Mundo".

//Ejemplo de programa FutureBasic dim i,num,a$ //Estas son nuestras variables ventana 1 //abrir ventana estándar Entrada "Número de bucles"; a$ //Entrada BÁSICA del usuario num=val(a$) //convierte texto a número largo si num>0 //IF estructurado para i = 1 hasta num //bucle BÁSICO imprimir "hola mundo" //texto de salida siguiente i //fin del bucle xelse //De lo contrario Imprimir "Hoy no" //No se ha introducido ningún número fin si //Esperar hasta que Apple-Q Manejar eventos hasta ( gFBQuit ) //para que podamos ver los resultados 

Tipos de datos

FutureBasic admite tipos de datos complejos, incluyendo números de coma flotante de precisión simple y doble , enteros de doble longitud, matrices, cadenas y registros (similares a las estructuras en C). Cabe destacar las estructuras de matriz DINÁMICAS (el tamaño de la huella de memoria aumenta solo cuando se utilizan), incluyendo matrices de cadenas DINÁMICAS llamadas INDEX$ y variables "contenedor" que pueden realizar operaciones similares a las de las cadenas en flujos de datos de hasta 2 GB.

C y Pascal tomaron prestados estilos de codificación

Es fundamental poder comentar el código, ya que permite el uso de instrucciones REMark y /* remark */sentencias al estilo C. Se pueden marcar secciones del código para consultarlas fácilmente.

Otra sintaxis alternativa tomada de C permite el uso de operadores como .++ -- == != += -= || &&

Los caracteres en las cadenas de Pascal son accesibles de forma muy similar a los elementos de una matriz: a$[0](longitud en bytes); a$[1](primer carácter en la cadena a$).

Aunque el lenguaje FutureBasic todavía admite la tipificación de variables de estilo antiguo con identificadores de sufijo, proporciona una alternativa moderna con la cláusula as: ; , ; etc.dimbasbytedimsasshortdimlaslong

Puentes hacia otros idiomas

  • Los scripts de AppleScript se pueden ensamblar con instrucciones FutureBasic y luego ejecutarse sobre la marcha por una aplicación en ejecución. Ejemplo:
ruta _toAppleScript imprimir "devuélveme la ruta como cadena" ruta _toScreenlargo si usr ApplescriptRun ( mensaje $ ) = _noErr imprimir mensaje $ fin si
  • FutureBasic permite la activación de comandos UNIX. Ejemplo:
// Imprimir un calendario para 2009 abierto "UNIX", 1, "cal 2009" culo oscuro hacer Entrada de línea n.° 1, a$ imprimir a$ hasta eof(1) cerrar 1 
  • FB permite código C en línea. Ejemplo:
BeginCFunction // Función simple en C para sumar dos enteros long simple_add ( long a , long b ) { long sum ; sum = a + b ; return ( sum ); } endC// Definir la función C para que FB pueda verla toolbox fn simple_add ( long a , long b ) = long// Crea un pequeño programa para sumar 2 + 2 con la función Cventana 1imprimir fn simple_add ( 2 , 2 )hacer HandleEvents hasta ( gFBQuit )

Limitaciones

  • No admite desarrollo multiplataforma. Este compilador es exclusivo para Macintosh.

FutureBasic es compatible con las arquitecturas Macintosh Intel y Apple Silicon, pero no se compila en ni para ninguna versión de Microsoft Windows.

Notas

  1. El FBI introdujo mejoras importantes en el lenguaje BASIC, animando a los desarrolladores a utilizar constantes con nombre y funciones locales en lugar de subrutinas para obtener programas mejor estructurados y código reutilizable.
  2. FBII era compatible con 32 bits y podía ejecutarse desde Mac 128 hasta Macintosh basado en G5 en modo emulado.
  3. Program Generator es una herramienta de desarrollo rápido de aplicaciones lo suficientemente flexible como para crear aplicaciones sofisticadas rápidamente para entornos Macintosh anteriores a Mac OS X. Para Mac OS X, a partir de programas compatibles con Appearance, FutureBasic utiliza Interface Builder de Apple .
  4. Se pronuncia FB al cubo.
  5. Una semana después se publicó la edición europea, que incluía inglés, italiano, alemán (actualmente descatalogado) y francés ( archivado el 15 de julio de 2011 en Wayback Machine ). También existe una edición en japonés ( archivada el 21 de marzo de 2008 en Wayback Machine ).
  6. A partir de FB^3, un entorno de ejecución consta de archivos de inclusión escritos en FutureBASIC que se compilan junto con el código fuente escrito por el programador. Contiene varias declaraciones para estructuras, constantes, variables globales, recursos, funciones y procedimientos que constituyen el lenguaje FutureBASIC. Los principales entornos de ejecución son: Standard BASIC , Appearance Compliant y Mac Toolbox .
  7. El entorno de ejecución compatible con la apariencia permite acceder a la mayoría de las funciones del Administrador de apariencia de Apple .

Referencias

  1. Una historia de las guerras de Basic en la plataforma Mac por Jonathan Hoyle para MacCompanion, Parte I ( Archivado el 5 de septiembre de 2008 en Wayback Machine ) MacCompanion, Parte II ( Archivado el 4 de agosto de 2009 en Wayback Machine )