Introduction

PureBasic is an "high-level" programming language based on established "BASIC" rules. It is mostly compatible with any other "BASIC" compiler. Learning PureBasic is very easy! PureBasic has been created for beginners and experts alike. Compilation time is extremely fast. This software has been developed for the Windows operating system. We have put a lot of effort into its realization to produce a fast, reliable and system-friendly language.

The syntax is easy and the possibilities are huge with the "advanced" functions that have been added to this language like pointers, structures, procedures, dynamic lists, maps, interfaces, modular programmation (modules), an inline assembler and much more. For the experienced coder, there are no problems gaining access to any of the legal OS structures or API objects.

PureBasic is a portable programming language which currently works on Linux, Mac OS X and Windows computer systems. This means that the same code can be compiled natively for the OS and use the full power of each. There are no bottlenecks like a virtual machine or a code translator, the generated code produces an optimized executable.

The main features of PureBasic

- x86 and x64 support
- 83 native libraries
- Hundreds of functions
- Built-in arrays, dynamic lists, complex structures, maps, pointers and variable definitions
- Supported types: Byte (8-bit), Word (16-bit), Long (32-bit), Quad (64-bit), Float (32-bit), Double (64-bit) and Characters
- User defined types (structures)
- Built-in string types (characters), including ascii and unicode
- Powerful macro support
- Constants, binary and hexadecimal numbers supported
- Expression reducer by grouping constants and numeric numbers together
- Standard arithmetic support in respect of sign priority and parenthesis: +, -, /, *, and, or, <<, >>
- Extremely fast compilation
- Procedure support for structured programming with local and global variables
- All Standard BASIC keywords: If-Else-EndIf, Repeat-Until, etc
- Specialized libraries to manipulate BMP pictures, windows, gadgets, DirectX, etc
- Specialized libraries are very optimized for maximum speed and compactness
- The Win32 API is fully supported as if they were BASIC keywords
- Inline Assembler
- Precompiled structures with constants files for extra-fast compilation
- Integrated debugger to follow the execution of a program and correct errors more easily
- Configurable CLI compiler
- Dedicated editor with automatically highlighted syntax
- Very high productivity, comprehensive keywords, online help
- System friendly, easy to install and easy to use
- IDE and help available in english, french and german
- SDK Visual C

- Compilation of windowed program, console and DLL
- Creation of integrated wysiwyg windows
- Creation of windows with automatic reorganization of gadgets (layout) with the 'Dialog' library
- 33 native gadgets
- 1 gadget specialized in OpenGL
- 1 scintilla gadget
- Process, thread, mutex, semaphore
- Drag'n drop
- DPI for MS Windows
- QT and GTK3 for Linux
- DirectX and OpenGL systems
- Import of static (lib) or dynamic libraries (dll, so, etc.)
- Drawing with antialiasing with the 'Vector' library
- 3D functions with the 3D engine OGRE
- Pseudotypes: p-ascii, p-utf8, p-bstr, p-unicode, p-variant
- Array, linked-list (list), maps, Database (MySQL, SQLite, ODBC, PostgreSQL, Maria)
- json, xml
- Regular expression
- http, ftp, mail, application server / client, CGI and FastCGI
- Cypher
- OnError
- Compressor/decompressor: BriefLZ, JCALG1, LZMA, Tar, Zip
- ini file
- Printer, serial port
- Runtime

Here is the exhaustive list of all the libraries that PureBasic offers:

  Windows & system :
    arrays
    cgi
    cipher
    clipboard
    console
    database
    date
    debugger
    desktop
    dialog
    dragdrop
    file
    filesystem
    font
    ftp
    gadget
    help
    http
    json
    library
    lists
    mail
    maps
    math
    memory
    menu
    network
    onerror
    packer
    preference
    printer
    process
    regularexpression
    requester
    runtimes
    scintilla
    serialport
    sort
    statusbar
    string
    system
    systray
    thread
    toolbar
    window
    xml

  2D & Medias :
    2ddrawing
    audiocd
    font
    image
    imageplugin
    joystick
    keyboard
    mouse
    movie
    music
    screen
    sound
    soundplugin
    sprite
    vectordrawing

  3D Engine :
    billboard
    camera
    engine3d
    entity
    entityanimation
    gadget3d
    joint
    light
    material
    mesh
    node
    nodeanimation
    particle
    sound3d
    specialeffect
    spline
    staticgeometry
    terrain
    text3d
    texture
    vehicle
    vertexanimation
    window3d