FreeBASIC es un compilador multiplataforma y lenguaje de programación libre y de código abierto basado en BASIC con licencia GNU GPL para Microsoft Windows , MS-DOS en modo protegido ( extensor DOS ), Linux , FreeBSD y Xbox . La versión para Xbox ya no recibe mantenimiento. [2]
Según su sitio web oficial, [3] FreeBASIC ofrece compatibilidad sintáctica con programas escritos originalmente en Microsoft QuickBASIC (QB). Sin embargo, a diferencia de QuickBASIC, FreeBASIC es un compilador de línea de comandos únicamente, a menos que los usuarios instalen manualmente un entorno de desarrollo integrado (IDE) externo de su elección. [4]
Características del compilador
En su backend , FreeBASIC utiliza GNU Binutils para producir aplicaciones de consola e interfaz gráfica de usuario . FreeBASIC admite la vinculación y creación de bibliotecas estáticas y dinámicas de C y tiene un soporte limitado para bibliotecas de C++ . Como resultado, el código compilado en FreeBASIC se puede reutilizar en la mayoría de los entornos de desarrollo nativos.
Si bien no es un compilador optimizador , FreeBASIC puede transcompilar opcionalmente a C para compilar con optimizaciones. FreeBASIC admite ensamblaje en línea , subprocesamiento múltiple y no utiliza recolección automática de elementos no utilizados .
Se admite el preprocesamiento de estilo C , incluidas las macros multilínea , la compilación condicional y la inclusión de archivos. El preprocesador también tiene acceso a la información de símbolos y a la configuración del compilador, como el dialecto del lenguaje .
Sintaxis
Inicialmente, FreeBASIC emulaba la sintaxis QuickBASIC de Microsoft lo más fielmente posible. Más allá de eso, el lenguaje ha continuado su evolución. Como resultado, FreeBASIC combina varios dialectos del lenguaje para lograr el máximo nivel de compatibilidad con QuickBASIC y acceso total a las características modernas. [5] Las nuevas características incluyen soporte para conceptos como objetos , sobrecarga de operadores , sobrecarga de funciones , espacios de nombres y otros. [6]
Los caracteres de nueva línea indican la terminación de las sentencias de programación. Una sentencia de programación se puede distribuir en varias líneas consecutivas utilizando el carácter de continuación de línea de subrayado (_), mientras que se pueden escribir varias sentencias en una sola línea separando cada sentencia con dos puntos (:).
Se admiten comentarios en bloque y comentarios de final de línea. Los comentarios de línea completa se realizan con un apóstrofo ' , mientras que los bloques de código comentado comienzan con /'y terminan con '/.
FreeBASIC no distingue entre mayúsculas y minúsculas.
Biblioteca de gráficos
FreeBASIC ofrece compatibilidad con gráficos QuickBASIC integrada a través de FBgfx, que se incluye automáticamente en los programas que realizan una llamada al SCREENcomando. Su backend predeterminado es OpenGL en Linux y DirectX en Microsoft Windows . Esta abstracción hace que el código gráfico de FBgfx sea compatible con varias plataformas. Sin embargo, FBgfx no está acelerado por hardware.
Los usuarios familiarizados con utilidades gráficas externas como OpenGL o la API de Windows pueden usarlas sin interferir con la biblioteca de gráficos incorporada.
Dialectos del lenguaje
A medida que FreeBASIC ha evolucionado, se han realizado cambios que han obligado a romper con la sintaxis antigua. Para seguir admitiendo programas escritos con la sintaxis antigua, FreeBASIC ahora admite los siguientes dialectos:
- El dialecto predeterminado ( -lang fb como argumento de línea de comandos ) admite todas las nuevas características del compilador y no permite la sintaxis arcaica.
- El dialecto FB-lite ( -lang fblite ) permite el uso de la mayoría de las nuevas funciones no orientadas a objetos, además de la programación de estilo antiguo. En este dialecto se permiten variables implícitas, sufijos,
GOSUB/RETURN, etiquetas numéricas y otras funciones. - El dialecto QB ( -lang qb ) intenta replicar el comportamiento de QuickBASIC y es capaz de compilar muchos programas QuickBASIC sin modificaciones.
Código de ejemplo
Los programas estándar, como el programa "¡Hola mundo!", se realizan tal como se hacían en QuickBASIC.
Imprimir "¡Hola, mundo!"
dormir: fin 'Comentario, evita que la ventana del programa se cierre instantáneamente
FreeBASIC agrega a esto soporte para características orientadas a objetos, como métodos , constructores , asignación de memoria dinámica , propiedades y asignación temporal.
Tipo Vector
Privado : x como entero y como entero Público : Declarar constructor ( nX como entero = 0 , nY como entero = 0 ) Declarar propiedad getX como entero Declarar propiedad getY como entero Fin Tipo
Vector constructor ( nX como entero , nY como entero )
x = nX y = nY Fin del constructor
Vector de propiedad . getX como entero Devuelve x Fin de la propiedad
Vector de propiedad . getY como entero Devuelve y Fin de la propiedad
Dim As Vector Ptr player = Nuevo Vector ()
* jugador = Tipo < Vector > ( 100 , 100 ) Imprimir jugador -> obtenerX Imprimir jugador -> obtenerY
Eliminar jugador
Dormir 'Evita que la ventana del programa se cierre instantáneamente
En ambos casos, el idioma es adecuado para fines de aprendizaje.
Referencias
- ^ "Página de información de freeBASIC". Compilador de freeBASIC . Consultado el 5 de febrero de 2012 .
- ^ FBWiki: Preguntas frecuentes sobre Pgxbox
- ^ Lenguaje de programación freeBASIC: Sitio web oficial
- ^ "página de descargas del sitio web oficial de freeBASIC". compilador freeBASIC . Consultado el 13 de mayo de 2017 .
- ^ "dialectos freeBASIC". Página de inicio de coderJeff . Consultado el 5 de febrero de 2012 .
- ^ "Diferencias con QB". Documentación de freeBASIC.net . Consultado el 5 de febrero de 2012 .
Enlaces externos
- Sitio web oficial
- FreeBASIC en GitHub
- FreeBASIC en SourceForge
- IDE
- WinFBE: editor FreeBASIC moderno para Windows
- VisualFBEditor: IDE gráfico multiplataforma
- fbide.freebasic.net: entorno de desarrollo integrado FBIDE para freeBASIC
- FBEdit (actual): editor de código fuente FBEdit para FreeBASIC, versión 1.0.7.6c
- Editor de código fuente FBEdit gratuitoBASIC (versión desactualizada: 1.0.6.8) en SourceForge