stringtranslate.com

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 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 heredada 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 uno hasta ocho bytes), .s (cadenas).

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 finalesEstructura 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

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

Enlaces externos

Artículos
Bibliotecas y archivos de código abierto