FreeBASIC es un compilador y lenguaje de programación BASIC multiplataforma, libre / de código abierto ( GPL ) para Microsoft Windows , MS-DOS en modo protegido ( extensor de DOS ), Linux , FreeBSD y Xbox . La versión de Xbox ya no se mantiene. [2]
Paradigma | De procedimiento , orientado a objetos |
---|---|
Diseñada por | Andre Victor [1] |
Desarrollador | El equipo de desarrollo de FreeBASIC |
Apareció por primera vez | 2004 |
Lanzamiento estable | 1.07.3 / 10 de abril de 2021 |
Disciplina de mecanografía | Estático |
SO | MS-DOS , FreeBSD , Linux , Microsoft Windows |
Licencia | GNU GPLv2 + , bibliotecas estándar con licencia de GNU LGPLv2 + |
Sitio web | www |
Influenciado por | |
QuickBASIC , C |
Según su sitio web oficial, [3] FreeBASIC proporciona compatibilidad de sintaxis 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] Los IDE hechos específicamente para FreeBASIC incluyen FBide y FbEdit, [5] mientras que más opciones gráficas incluyen WinFBE Suite y VisualFBEditor. [6]
Características del compilador
En su back-end , FreeBASIC hace uso de GNU Binutils para producir aplicaciones de consola e interfaz gráfica de usuario . FreeBASIC admite el enlace y la creación de bibliotecas estáticas y dinámicas de C y tiene un soporte limitado para las bibliotecas de C ++ . Como resultado, el código compilado en FreeBASIC se puede reutilizar en la mayoría de los entornos de desarrollo nativos.
Se admite el preprocesamiento de estilo C , incluidas las macros de varias líneas , la compilación condicional y la inclusión de archivos. El preprocesador también tiene acceso a la información de los símbolos y la configuración del compilador, como el dialecto del idioma .
Sintaxis
Inicialmente, FreeBASIC emuló la sintaxis de Microsoft QuickBASIC lo más fielmente posible. Más allá de eso, el idioma ha continuado su evolución. Como resultado, FreeBASIC combina varios dialectos de idiomas para un nivel máximo de compatibilidad con QuickBASIC y acceso completo a funciones modernas. [7] Las nuevas características incluyen soporte para conceptos tales como objetos , sobrecarga de operadores , sobrecarga de funciones , espacios de nombres y otros. [8]
Los caracteres de nueva línea indican la terminación de las instrucciones de programación. Una declaración de programación se puede distribuir en varias líneas consecutivas utilizando el carácter de continuación de la línea de subrayado (_), mientras que varias declaraciones se pueden escribir en una sola línea separando cada declaración con dos puntos (:).
Se admiten los comentarios en bloque , así como los comentarios al final de la línea. Los comentarios de línea completa se hacen con un apóstrofe '
, 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 proporciona soporte gráfico integrado compatible con QuickBASIC a través de FBgfx, que se incluye automáticamente en los programas que realizan una llamada al SCREEN
comando. Su backend tiene como valor predeterminado OpenGL en Linux y DirectX en Microsoft Windows . Esta abstracción hace que el código gráfico FBgfx sea compatible con varias plataformas. Sin embargo, FBgfx no está acelerado por hardware.
Los usuarios familiarizados con las utilidades gráficas externas como OpenGL o la API de Windows pueden usarlas sin interferir con la biblioteca de gráficos incorporada.
Dialectos del idioma
A medida que FreeBASIC ha evolucionado, se han realizado cambios que requerían romper la sintaxis de estilo antiguo. Con el fin de seguir admitiendo programas escritos con la sintaxis anterior, FreeBASIC ahora admite los siguientes dialectos:
- El dialecto predeterminado ( -lang fb como argumento de la línea de comandos ) admite todas las funciones nuevas del compilador y no permite la sintaxis arcaica.
- El dialecto FB-lite ( -lang fblite ) permite el uso de la mayoría de las funciones nuevas 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 características. - El dialecto QB ( -lang qb ) intenta replicar el comportamiento de QuickBASIC y es capaz de compilar muchos programas QuickBASIC sin modificación.
Código de ejemplo
Los programas estándar, como "¡Hola, mundo!" programa se realizan tal y como estaban en QuickBASIC.
Imprimir "¡Hola, mundo!" sleep: end 'Comment, evita que la ventana del programa se cierre instantáneamente
FreeBASIC se suma a esto con soporte para características orientadas a objetos como métodos , constructores , asignación de memoria dinámica , propiedades y asignación temporal.
Tipo de 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 tipo de fin de entero Vector de constructor ( nX como entero , nY como entero ) x = nX y = nY Constructor final Vector de propiedad . getX As Integer Return x End Propiedad Vector de propiedad . getY As Integer Return y End Propiedad
Atenuar como vector Ptr player = Nuevo vector ()* Reproductor = Tipo < vector > ( 100 , 100 ) Imprimir jugador -> getX Imprimir jugador -> getYEliminar jugadorSleep 'Evita que la ventana del programa se cierre instantáneamente
En ambos casos, el idioma es adecuado para fines de aprendizaje.
Referencias
- ^ "freeBASIC acerca de la página" . compilador freeBASIC . Consultado el 5 de febrero de 2012 .
- ^ FBWiki: FaqPgxbox
- ^ 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 .
- ^ FbEdit en sourceforge, consultado el 13 de mayo de 2017
- ^ IDE / Editores de FreeBASIC - Foros de FreeBASIC
- ^ "dialectos freeBASIC" . página de inicio de coderJeff . Consultado el 5 de febrero de 2012 .
- ^ "Diferencias de QB" . documentación de freeBASIC.net . Consultado el 5 de febrero de 2012 .
enlaces externos
- Página web oficial
- FreeBASIC en GitHub
- FreeBASIC en SourceForge.net
- IDE
- WinFBE - Editor FreeBASIC moderno para Windows
- 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 para freeBASIC (versión desactualizada: 1.0.6.8) en SourceForge.net
- Suite WinFBE
- VisualFBEditor