Articulo de referencia

Puro Básico

IDE PureBasic 5.10 PureBasic es un lenguaje de programación procedimental distribuido comercialmente y un entorno de desarrollo integrado basado en BASIC y desarrollado por Fant...

IDE PureBasic 5.10

PureBasic es un lenguaje de programación procedimental distribuido comercialmente y un entorno de desarrollo integrado basado en BASIC y desarrollado por Fantaisie Software para Windows , Linux y macOS . Existe una versión para Amiga , aunque se ha discontinuado y algunas partes de ella se han publicado 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 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 en conjuntos de instrucciones IA-32 , x86-64 , PowerPC o 680x0 , lo que genera 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 de ensamblador FASM dentro del código fuente de PureBasic, mientras usa 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 admite y ha integrado el entorno 3D OGRE . Otros entornos 3D, como el motor Irrlicht, son compatibles de forma no oficial.

Lenguaje de programación

Características

PureBasic es un compilador BASIC nativo multiplataforma de 32 y 64 bits. Los sistemas compatibles actualmente son Windows, Linux y macOS. La versión para AmigaOS es antigua y de código abierto. El compilador produce ejecutables nativos y la sintaxis de PureBasic es simple y directa, comparable al C simple sin los 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]

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 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 mensajes" , 0 )   

La siguiente es una versión de consola del ejemplo Hola Mundo.

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

Programación procedimental

PureBasic es un lenguaje "BASIC de segunda generación", con condicionales y bucles estructurados y 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 = TamañoDeMatriz ( a ())  
   Repetir
     hasChanged = # Falso  
     número de artículos - 1  
     Para i = 0 hasta itemCount     
       Si a ( i ) > a ( i + 1 )     
         Intercambiar a ( i ), a ( i + 1 )    
         hasChanged = # Verdadero  
       FinSi 
     Próximo  
   Hasta que haya cambiado = # Falso   
 Fin del procedimiento

A continuación se muestra un programa de muestra que muestra un editor de texto de gran tamaño 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 ventana hasta cerrar: 
Repetir 
Seleccionar WaitWindowEvent () Caso # PB_Event_Menu Seleccionar EventMenu () Caso 1 : MessageRequester ( "Se hizo clic en OK directamente o con el mnemónico '&'." , GetGadgetText ( 0 )) Caso 2 : Romper EndSelect Caso # PB_Event_SizeWindow : ResizeGadget ( 0 , 0 , 0 , WindowWidth ( 0 , # PB_Window_InnerCoordinate ), WindowHeight ( 0 , # PB_Window_InnerCoordinate )) Caso # PB_Event_CloseWindow : Romper EndSelect ForEver     
     
         
           
          
        
            
      
    

PureBasic no escapa las comillas dobles en las cadenas, por lo que éstas deben concatenarse con Chr(34) .

Programación orientada a objetos

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]

Tipos de datos

Tipo de dato variable que se especifica cuando se utiliza por primera vez (y opcionalmente, en el futuro) y se separa del nombre del punto. Hay un conjunto de tipos básicos: .f, .d (números flotantes y dobles), .b, .c, .w, .l, .q (números enteros, desde un byte hasta 8 bytes), .s (cadenas).

  • Len(String) se utiliza para contar la longitud de una cadena que 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 a través de

Tipo de estructura_nombre
   field_name.type ; Campo único. Quizás el archivo adjunto de las estructuras.
   field_name[count].type ; Matrices estáticas.
   ; ...
   ; 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.
   EstructuraUnion
      nombre_tipo.tipo
      ; ...
   Unión de estructuras finales
Estructura final

Las variables pueden ser individuales (en realidad, variables estándar), una matriz dinámica (declarada mediante , una lista enlazada ( ), una matriz asociativa (en las nuevas versiones del lenguaje) ( ) Dim var_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 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]

Comunidad de usuarios

PureBasic ofrece 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 mensajes desde el 17 de mayo de 2002. [14]

Numerosos sitios de intercambio de código muestran que PureBasic se utiliza para crear herramientas [15] y juegos de una manera rápida y sencilla [16] , y para compartir grandes cantidades de código de fuente abierta. [17]

Lectura adicional

  • Willoughby, Gary (2006). Purebasic: Guía para principiantes de programación informática . Aardvark Global. ISBN 1-4276-0428-2.
  • Logsdon, John. Programación de juegos de desplazamiento en 2D .Este libro ahora 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 detalles de la licencia de por vida
  2. ^ Página de inicio de PureBasic
  3. ^ PureBasic - Consola
  4. ^ PureBasic - Dispositivo
  5. ^ Construyendo una DLL
  6. ^ PureBasic no estará orientado a objetos
  7. ^ PureObject: Compatibilidad con OOP de PureBasic
  8. ^ Tutorial de programación orientada a objetos
  9. ^ Otro precompilador OOP
  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 ricos y personalizables en sus aplicaciones.
  12. ^ PureFORM, Diseñador de formularios gratuito.
  13. ^ Se lanzó PureBasic 5.10
  14. ^ Foro en inglés, Foro oficial.
  15. ^ Páginas de software de Horst Schaeffer
  16. ^ Área pura
  17. ^ Archivo de código de Andre Beer.

Referencias generales

  • Hale Ligh, Michael (2010). Libro de recetas de analistas de malware: herramientas para frustrar ataques maliciosos . 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 pública y secreta con Java . Indianápolis, Ind.: Wiley. pp. 300. 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 (inglés)
  • PureBasic en Curlie
Artículos
  • PureBasic: el lenguaje de desarrollo nativo y multiplataforma perfecto (2015)
  • Una pequeña reseña de PureBasic (2023)
Bibliotecas y archivos de código abierto
  • Archivo de código abierto PB de Andre Beer
Retrieved from "https://en.wikipedia.org/w/index.php?title=PureBasic&oldid=1233289741"