PureBasic es un lenguaje de programación informática procedimental distribuido comercialmente y un entorno de desarrollo integrado basado en BASIC y desarrollado por Fantaisie Software para Windows , Linux y macOS . Hay una versión Amiga disponible, aunque ha sido descontinuada y algunas partes se lanzan como código abierto . El primer lanzamiento público de PureBasic para Windows fue el 17 de diciembre de 2000. Desde entonces se ha actualizado continuamente.
PureBasic tiene un "modelo de licencia de por vida". Como se cita en el sitio web, el primer usuario de PureBasic (que se registró en 1998) todavía tiene acceso gratuito a nuevas actualizaciones y esto no va a cambiar. [1]
PureBasic compila directamente en conjuntos de instrucciones IA-32 , x86-64 , PowerPC o 680x0 , generando pequeños ejecutables independientes y DLL que no necesitan bibliotecas de tiempo de ejecución más allá de las bibliotecas estándar del sistema. Los programas desarrollados sin utilizar las interfaces de programación de aplicaciones (API) específicas de la plataforma se pueden crear fácilmente a partir del mismo archivo fuente con poca o ninguna modificación.
PureBasic admite el ensamblaje en línea , lo que permite al desarrollador incluir comandos del ensamblador FASM dentro del código fuente de PureBasic, mientras utiliza las variables declaradas en el código fuente de PureBasic, lo que permite a los programadores experimentados mejorar la velocidad de las secciones de código críticas para la velocidad. PureBasic soporta y ha integrado el entorno 3D OGRE . Otros entornos 3D, como Irrlicht Engine, son compatibles de forma no oficial.
PureBasic es un compilador BASIC nativo multiplataforma de 32 y 64 bits. Los sistemas soportados actualmente son Windows, Linux, macOS. La versión AmigaOS es heredada y de código abierto. El compilador produce ejecutables nativos y la sintaxis de PureBasic es simple y directa, comparable a C simple sin corchetes y con manejo nativo de cadenas Unicode y una gran biblioteca de funciones de soporte integradas. [2] Puede compilar aplicaciones de consola, [3] aplicaciones GUI, [4] y archivos DLL. [5]
La siguiente línea única de código PureBasic creará un ejecutable x86 independiente (4,5 KiB (4608 bytes) en la versión de Windows) que muestra un cuadro de mensaje con el texto " Hola mundo ".
MessageRequester ( "Cuadro de mensaje" , "Hola mundo" )
Y la siguiente variante del mismo código, que en su lugar utiliza una llamada API de Windows en línea sin necesidad de declaraciones u otras referencias externas, creará un ejecutable x86 independiente aún más pequeño de 2,0 KiB (2048 bytes) para Windows.
MessageBox_ ( 0 , "Hola mundo" , "Cuadro de mensaje" , 0 )
La siguiente es una versión de consola del ejemplo Hello World.
OpenConsole () ; Abra una ventana de consola. Imprimir ( "¡Hola, mundo!" ) Retraso ( 5000 ) ; Pausa de 5 segundos
PureBasic es un lenguaje "BASIC de segunda generación", con bucles y condicionales estructurados, y admite programación orientada a procedimientos. El usuario no está obligado a utilizar procedimientos, por lo que un programador puede optar por un estilo de codificación que incluya Goto, Gosub Label y Return .
A continuación se muestra un procedimiento de muestra para ordenar una matriz, aunque SortArray ahora es una función incorporada de PureBasic.
Procedimiento bubbleSort ( Array a ( 1 )) Protegido i , itemCount , hasChanged itemCount = ArraySize ( a ()) Repetir ha cambiado = # Falso número de artículos - 1 Para i = 0 Para itemCount Si a ( i ) > a ( i + 1 ) Intercambiar a ( i ), a ( i + 1 ) ha cambiado = # verdadero Terminara si Próximo Hasta que haya cambiado = # Falso Procedimiento final
A continuación se muestra un programa de muestra que muestra un editor de texto considerable con dos elementos de menú.
;Crear ventana: OpenWindow ( 0 , # PB_Ignore , # PB_Ignore , 800 , 600 , "Editor de texto simple" , # PB_Window_SystemMenu | # PB_Window_MinimizeGadget | # PB_Window_MaximizeGadget | # PB_Window_SizeGadget ) ;Agregar 2 menús: CreateMenu ( 0 , WindowID ( 0 )) MenuItem ( 1 , "&OK" ) MenuItem ( 2 , "&Cancel" ) ;Agregar editor: EditorGadget ( 0 , 0 , 0 , 0 , 0 ) SetGadgetFont ( 0 , LoadFont ( 0 , "Courier New" , 10 )) ;Procesar mensajes de la ventana hasta que se cierre: Repetir Seleccionar WaitWindowEvent () Caso # PB_Event_Menu Seleccionar EventMenu () Caso 1 : MessageRequester ( "Aceptar hecho clic directamente o con el mnemotécnico '&'." , GetGadgetText ( 0 )) Caso 2 : Interrumpir EndSelect Caso # PB_Event_SizeWindow : ResizeGadget ( 0 , 0 , 0 , WindowWidth ( 0 , # PB_Window_InnerCoordinate ), WindowHeight ( 0 , # PB_Window_InnerCoordinate )) Caso # PB_Event_CloseWindow : Break EndSelect ForEver
PureBasic no escapa de las comillas dobles en las cadenas, por lo que deben concatenarse con Chr(34) .
Fred, el desarrollador de PureBasic, ha declarado que PureBasic nunca estará orientado a objetos . [6] Sin embargo, numerosos usuarios han creado sistemas de soporte orientados a objetos. [7] [8] [9]
El tipo de datos variable se especifica cuando se usa por primera vez (y opcionalmente, en el futuro) y está separado del nombre del punto. Hay un conjunto de tipos básicos: .f, .d (números flotantes y dobles), .b, .c, .w, .l, .q (enteros, de un solo byte y 8 bytes), .s - instrumentos de cuerda.
Además de los tipos básicos, el usuario puede definir el tipo de construcción mediante
estructura tipo_nombre nombre_campo.tipo; Campo único. Quizás el apego a las estructuras. nombre_campo[recuento].tipo ; Arreglos estáticos. ; ... ; Construcción opcional StructureUnion. EndStructureUnion le permite ; combinar múltiples campos en un área de memoria ; que a veces es necesario para los tipos de conversión. EstructuraUnión tipo_nombre.tipo ; ... FinEstructuraUniónEstructura final
Las variables pueden ser simples (en realidad, variables estándar), una matriz dinámica (declarada usando , una lista vinculada ( ), una matriz asociativa (en nuevas versiones del lenguaje) ( )Dim var_name.type_name (size1, size2, ... )
List() var_name.type_name
Map var_name.type_name()
PureBasic tiene su propio diseñador de formularios para ayudar en la creación de formularios para aplicaciones, pero también hay disponibles otras soluciones de terceros. [10] [11] [12] El Diseñador visual original no integrado fue reemplazado por un nuevo Diseñador de formularios integrado el 14 de febrero de 2013. [13]
PureBasic proporciona un foro en línea para que los usuarios hagan preguntas y compartan conocimientos. El 6 de mayo de 2013, el foro en inglés tenía 4.769 miembros y contenía 44.043 hilos que comprendían 372.200 publicaciones desde el 17 de mayo de 2002. [14]
Numerosos sitios para compartir código muestran que PureBasic se utiliza para crear herramientas [15] y juegos de una manera rápida y sencilla, [16] y compartir grandes cantidades de código fuente abierto. [17]