Articulo de referencia

PureBasic

Entorno de desarrollo integrado PureBasic 5.10 PureBasic es un lenguaje de programación procedimental y un entorno de desarrollo integrado, distribuido comercialmente, basado en...

Entorno de desarrollo integrado PureBasic 5.10

PureBasic es un lenguaje de programación procedimental y un entorno de desarrollo integrado, distribuido comercialmente, basado en BASIC y desarrollado por Fantaisie Software para Windows , Linux , macOS y Raspberry Pi . Existe una versión para Amiga , aunque su desarrollo se ha interrumpido y algunas de sus partes se han publicado como software libre . La primera versión pública de PureBasic para Windows se lanzó el 17 de diciembre de 2000 y desde entonces se ha actualizado continuamente.

PureBasic tiene un modelo de licencia de por vida. Como se indica en el sitio web, el primer usuario de PureBasic (que se registró en 1998) todavía tiene acceso gratuito a las nuevas actualizaciones y esto no va a cambiar. [ 1 ]

PureBasic compila directamente a los conjuntos de instrucciones IA-32 , x86-64 , arm32 y arm64 , PowerPC o 680x0 , generando pequeños ejecutables y DLL independientes que no requieren 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 compilar fácilmente a partir del mismo archivo fuente con pocas 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, utilizando las variables declaradas en dicho código. Esto permite a los programadores experimentados mejorar la velocidad de las secciones críticas del código. PureBasic es compatible con el entorno 3D OGRE y lo tiene integrado . Otros entornos 3D, como el motor Irrlicht, cuentan con soporte no oficial.

Desde la versión 6.00 (junio de 2022), además de la compilación mediante ASM, PureBasic ofrece la compilación con un backend en C. Esto permite el acceso a nuevas plataformas (por ejemplo, Raspberry Pi) y debería facilitar la incorporación de nuevas bibliotecas en el futuro.

Lenguaje de programación

Características

PureBasic es un compilador BASIC nativo multiplataforma de 32 y 64 bits. Actualmente, admite sistemas Windows, Linux y macOS. La versión para AmigaOS es heredada y de código abierto. El compilador produce ejecutables nativos y su sintaxis es simple y directa, comparable a la de C sin corchetes, con manejo nativo de cadenas Unicode y una amplia biblioteca de funciones de soporte integradas. [ 2 ] Puede compilar aplicaciones de consola, [ 3 ] aplicaciones con interfaz gráfica de usuario (GUI) [ 4 ] y archivos DLL. [ 5 ]

Ejemplo de "Hola Mundo"

La siguiente línea 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 mensajes" , "Hola mundo" )

Y la siguiente variante del mismo código, que en su lugar utiliza una llamada a la API de Windows en línea sin necesidad de declaraciones ni 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 )

A continuación se muestra una versión para consola del ejemplo "Hola Mundo".

OpenConsole () ; Abre una ventana de consola. Imprimir ( "¡Hola, mundo!" ) Retraso ( 5000 ) ; Pausa de 5 segundos

Programación procedimental

PureBasic es un lenguaje BASIC de segunda generación, con condicionales y bucles 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 ejemplo para ordenar una matriz, aunque SortArray ahora es una función integrada de PureBasic.

Procedimiento bubbleSort ( Array a ( 1 ))Protegido i , itemCount , hasChangeditemCount = ArraySize ( a ())RepetirhasCambiado = # FalsoitemCount - 1Para i = 0 hasta itemCountSi a ( i ) > a ( i + 1 )Intercambiar a ( i ), a ( i + 1 )ha cambiado = # VerdaderoFinSiPróximoHasta que hasChanged = # FalsoFin del procedimiento

A continuación se muestra un programa de ejemplo que presenta un editor de texto de tamaño 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 , "&Aceptar" ) MenuItem ( 2 , "&Cancelar" );Agregar editor: EditorGadget ( 0 , 0 , 0 , 0 , 0 ) SetGadgetFont ( 0 , LoadFont ( 0 , "Courier New" , 10 ));Procesar mensajes de ventana hasta que se cierre: Repetir Seleccionar WaitWindowEvent () Caso # PB_Event_Menu Seleccionar EventMenu () Caso 1 : MessageRequester ( "OK pulsado directamente o con el mnemónico '&'." , GetGadgetText ( 0 )) Caso 2 : Break 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 las comillas dobles en las cadenas, por lo que estas deben concatenarse con Chr(34) .

Programación orientada a objetos

Fred, el desarrollador de PureBasic, ha declarado que PureBasic nunca será orientado a objetos . [ 6 ] Sin embargo, numerosos usuarios han creado sistemas de soporte orientados a objetos. [ 7 ] [ 8 ] [ 9 ]

Tipos de datos

El tipo de datos de la variable se especifica la primera vez que se usa (y opcionalmente, en el futuro) y se separa del nombre del punto. Hay un conjunto de tipos básicos: .f, .d (números de coma flotante y doble), .b, .c, .w, .l, .q (enteros, desde un byte hasta 8 bytes), .s (cadenas).

  • La función Len(String) utilizada para contar la longitud de una cadena no excederá el primer carácter nulo ( Chr(0) ).

Además de los tipos básicos, el usuario puede definir el tipo de construcción mediante

Nombre del tipo de estructura field_name.type ; Campo único. Quizás la estructura adjunta. nombre_campo[cantidad].tipo ; Matrices estáticas. ; ... ; Construcción opcional StructureUnion. EndStructureUnion le permite ; combinar varios campos en un área de memoria ; eso a veces es necesario para los tipos de conversión. Unión Estructural tipo_nombre.tipo ; ... Unión de la estructura final Estructura final 

Las variables pueden ser simples (en realidad, variables estándar), matrices dinámicas (declaradas usando ), una lista enlazada ( ), una matriz asociativa (en versiones nuevas del lenguaje) ( )Dimvar_name.type_name(size1,size2,...)List()var_name.type_nameMap var_name.type_name()

Diseñador de formularios RAD

PureBasic tiene su propio diseñador de formularios para ayudar en la creación de formularios para aplicaciones, pero también hay otras soluciones de terceros disponibles. [ 10 ] [ 11 ] El Diseñador visual original no integrado fue reemplazado por un nuevo Diseñador de formularios integrado el 14 de febrero de 2013. [ 12 ]

Comunidad de usuarios

PureBasic ofrece un foro en línea para que los usuarios hagan preguntas y compartan conocimientos. El 17 de febrero de 2025, el foro en inglés tenía 6484 miembros y contenía 70 174 hilos que comprendían 578 646 publicaciones desde el 17 de mayo de 2002. [ 13 ]

Numerosos sitios para compartir código muestran que PureBasic se utiliza para crear herramientas [ 14 ] y juegos de forma rápida y sencilla, [ 15 ] y para compartir grandes cantidades de código abierto. [ 16 ]

Lecturas adicionales

  • Willoughby, Gary (2006). Purebasic: Guía para principiantes en programación informática . Aardvark Global. ISBN 1-4276-0428-2.
  • Logsdon, John. Programación de juegos de desplazamiento 2D .Este libro ya se puede descargar gratuitamente.
  • Compiladores básicos: QuickBASIC, PureBASIC, PowerBASIC, Blitz Basic, XBasic, Turbo Basic, Visual Basic, FutureBASIC, REALbasic, FreeBASIC . ISBN 1-155-32445-5.

Referencias

  1. Preguntas frecuentes sobre la licencia de por vida
  2. Página principal de PureBasic
  3. PureBasic - Consola
  4. PureBasic - Gadget
  5. Creación de una DLL
  6. PureBasic no será orientado a objetos.
  7. PureObject: Soporte para POO PureBasic
  8. Tutorial de POO
  9. Otro precompilador de POO
  10. PureVision , diseño de formularios profesionales para PureBASIC.
  11. ProGUI , biblioteca DLL que comprende más de 100 comandos bien documentados para incorporar rápidamente componentes GUI completos y personalizables en sus aplicaciones.
  12. Se lanza PureBasic 5.10
  13. Foro en inglés , Foro oficial.
  14. Páginas de software de Horst Schaeffer
  15. PureArea
  16. Archivo de código de Andre Beer.

Referencias generales

  • Hale Ligh, Michael (2010). Malware Analysts Cookbook Tools for Thwarting Malicious Attacks . Indianápolis, IN: John Wiley & Sons Inc. p.  241. ISBN 978-0-470-61303-0.
  • Galbreath, Nick (2002). Criptografía para aplicaciones de Internet y bases de datos  : desarrollo de técnicas de clave secreta y pública con Java . Indianápolis, Indiana: Wiley. 300 págs . ISBN  978-0-471-21029-0.
  • "Aprendiendo a descifrar códigos" . Manly Daily . 25 de junio de 2004.
  • Georges, Felipe. "La programación con PureBasic" . PROgrámez (141).
  • Svoboda, Luboš (2012). Překvapivý PureBasic (Sorprendente PureBasic: un libro electrónico checo para posibles usuarios de PureBasic) . pag.  89.
  • Sitio web oficial
  • Foros oficiales de Purebasic (en inglés)
  • Blog del equipo de PureBasic - Blog oficial "Reflexiones aleatorias sobre el desarrollo de PureBasic"
Artículos
  • PureBasic: El lenguaje de desarrollo nativo y multiplataforma perfecto (2015)
Bibliotecas y archivos de código abierto
  • Archivo de código abierto de PB de Andre Beer