stringtranslate.com

PuroBásico

PureBasic IDE 5.10

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.

Lenguaje de programación

Características

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]

Hola mundo ejemplo

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    

Programación procesal

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) .

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

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_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 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]

Otras lecturas

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 programación orientada a objetos PureBasic
  8. ^ Tutorial de programación orientada a objetos
  9. ^ Otro precompilador de programación orientada a objetos
  10. ^ PureVision, diseño de formularios profesional 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 lanza 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ódigos de Andre Beer.

Referencias generales

enlaces externos

Artículos
Bibliotecas y archivos de código fuente abierto