PBXA32 - Compiler Werkstatt
V24 Release — Nativer x86-32 Compiler

PBXA32 V24

V24 — im V8-Paket (Build vom 02.10.2026)

A complete x86-32 compiler pipeline written in ISO C11. From PowerBASIC source through preprocessor, lexer, parser, semantic analysis, IR, x86 code generation, COFF assembly, and PE32 linking — all in one toolchain. No C++ dependencies. No GNU extensions. Just pure standard C11 producing native Windows PE32 executables.

V24 — im PBX-Compiler enthalten
PBX-Compiler V8 herunterladen (ZIP) All-in-One: PBXA32, PBXA64, PBXB64, PBXC64, ScharffBasic und PBX-Editor Vorgänger-Bundles: V7 · V6 · V5 · V2 · V1 (optional) Bundle-Downloads: -- V24 Release
Older Versions

PBX-Compiler V8: 349.086.784 Bytes (332,9 MiB / 349,1 MB). Enthält PBXA32 V24, PBXA64 V10, PBXB64 V23, PBXC64 RC50, ScharffBasic und den PBX-Editor samt Hilfen, Includes und Beispielen.

Written in ISO C11 (no C++, no GNU)

Target: x86-32 / PE32

Historische Testzahlen sind kein aktueller Vollqualifikationsnachweis für die signierte V24-EXE.

PBXA32.exe UPX-gepackt; der Signaturstatus ist separat dokumentiert (Certum, SHA-256-Zeitstempel)

7Complete stages: Preproc → Lex → Parse → Sem → CodeGen → Asm → Link
C11Written in strict ISO C11. Portable. No external dependencies.
PE32Native x86 Windows executables. No GCC. No LLVM.
V24Aktuelle Compileridentität; gültige Authenticode-Signatur

Neu in PBXA32 V24

Module und Klassen

MODULE … END MODULE mit INTERFACE/IMPLEMENTATION, USES, PRIVATE, EXPORT sowie Initialisierung und Finalisierung. Module erfordern --profile=pbx32; der Standard bleibt strict PBWIN. Klassen unterstützen Wertinstanzen, ME, Methoden und verschachtelte Klassenfelder.

Parsing und echte PE-Ressourcen

PARSE, PARSE$ und PARSECOUNT unterstützen ANY/BINARY. #RESOURCE erstellt ein echtes PE-Ressourcenverzeichnis, unter anderem für VERSIONINFO, ICON, BITMAP, MANIFEST, RCDATA und STRINGTABLE.

Deklarationen, Optimierung und Interop

LOCAL/DIM/STATIC-Platzierung und Frame-Hoisting, O2/O3-HIR-Operandenreihenfolge, typisiertes POKE sowie SIZEOF/ALIGNOF/OFFSETOF und MEMCPY/MEMSET unter DIM ALL. Importdeklarationen berücksichtigen optionale Parameter und BYVAL/BYREF/BYCOPY-ASCIIZ-Verträge.

Präprozessor und praktische Grenzen

#IF-Konstanten, #SELECT, #ERROR/#WARN/#MESSAGE, DEFINE/UNDEF zum jeweiligen Quelltextzeitpunkt sowie Include-once-/Zyklusprüfungen wurden gehärtet. GLOBAL/STATIC-Initialisierer akzeptieren derzeit literale Ganzzahlen, optional negativ; andere Formen erzeugen Warnung 3002 und Nullinitialisierung. Managed STRING lokal in einem Block mit frühem Ausstieg bleibt bei O2/O3 eine bekannte Grenze: am Prozeduranfang deklarieren.

Why PBXA32 Matters

Pure C11 Implementation

The entire compiler — lexer, parser, preprocessor, code generator, assembler, linker, runtime — is written in standard ISO C11. No C++. No GNU extensions. Builds with any C11-compliant compiler including MinGW-w64, MSVC, and Clang.

Complete x86-32 Pipeline

The seven compiler stages form the native x86-32 pipeline. Tokenize PowerBASIC syntax, build an AST, lower to IR, generate x86 machine code, emit COFF objects, and link to PE32 — a full end-to-end compiler in C.

PowerBASIC Compatible

Supports directives (#COMPILE, #INCLUDE, #DIM), procedures (FUNCTION, SUB, CALLBACK), control flow (IF, SELECT, FOR, DO, WHILE), jumps (GOTO, GOSUB), aggregates (TYPE, UNION, ENUM), and classic type suffixes (% & && ! # $ @).

Per-Subsystem Smoke Tests

Every stage has its own dedicated smoke test. Test the lexer independently. Test the parser. Test the assembler. Test the linker. Isolate bugs to their layer without compiling full programs.

Quick Example

#COMPILE EXE "hello.exe" #DIM ALL FUNCTION PBMAIN() AS LONG PRINT "Hello from PBXA32!" FUNCTION = 0 END FUNCTION
pbxa32c hello.bas -o hello.exe hello.exe Hello from PBXA32!

Implemented Subsystems

StageStatusDescription
PreprocessorImplementedMacro expansion, conditional compilation (#IF/#ENDIF), file includes
LexerImplementedPowerBASIC-aware tokenizer with full numeric literal support
ParserImplementedRecursive-descent parser building full AST
SemanticImplementedType system, symbols, analyzer
IRImplementedIR module and lowering
CodeGenImplementedIR-to-x86 machine code generator
AssemblerImplementedx86/COFF assembler and object writer
LinkerImplementedPE32/i386 linker with import support
RuntimeImplementedRuntime library for compiled programs
OptimizerO2/O3 HIRV24 härtet HIR-Operandenreihenfolge und Deklarations-/Frame-Hoisting. Managed STRING im Block mit frühem Ausstieg bleibt eine dokumentierte O2/O3-Grenze.

Architecture — From Source to PE32

Source (.bas) |-> Preprocessor (MACRO, #IF, #INCLUDE) |-> Lexer (PB tokens, identifiers, literals) |-> Parser (AST construction) |-> Semantic Analysis (type checking, symbol binding) |-> IR Lowering (unified intermediate representation) |-> x86 CodeGen (machine code generation) |-> Assembler (COFF object emission) |-> Linker (PE32 image generation)

PBXA32 jetzt im PBX-Compiler

PBXA32 V24 (im V8-Paket, Build vom 02.10.2026) steht im PBX-Compiler zum Download bereit — zusammen mit PBXA64, PBXB64, ScharffBasic und dem PBX-Editor.

Downloads pro Tag

Tägliche Download-Statistik für alle angebotenen Dateien der letzten 28 Tage (rollierend). Jede Download-Datei behält ihre eigene Farbe.

Aktueller Download und Releasegrenzen

PBX-Compiler V8: 349.086.784 Bytes (332,9 MiB / 349,1 MB). Enthält PBXA32 V24, PBXA64 V10, PBXB64 V23, PBXC64 RC50, ScharffBasic und den PBX-Editor samt Hilfen, Includes und Beispielen.

Die ausgelieferte EXE meldet ausdrücklich PBXA32 Compiler V24 version 1.8.0.0 und hat eine gültige Signatur. Ihr Compilerpayload entspricht der lokalen V24-Release-EXE vor Signierung. Einige mitgepackte Textmetadaten tragen noch das frühere Ordnerlabel V4. Historische Testzahlen sind kein neu erbrachter Vollqualifikationsnachweis für diese signierten Bytes.

Aktuelle CHM-ReferenzV8-Paketprüfsumme