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

PBXA32 V2

V2 — Release vom 05.08.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.

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

PBX-Compiler-Paket: 62,5 MB (ZIP), PBXA32, PBXA64, PBXB64 und ScharffBasic inklusive PBX-Editor, CHM-Hilfe, 400 Beispiele, 354 Includes und 34 C17-Header

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

Target: x86-32 / PE32

Smoke 87/87, Staged 173/173, CTest 68/68

PBXA32.exe Authenticode-signiert (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.
87/87Smoke-Tests; plus Staged 173/173, CTest 68/68, CBC/CBCT 28/28 und 59/59 negative Diagnosen

Was V2 neu bringt

Seit V1 wurde PBXA32 an der Parameter-ABI, in der Laufzeit und in der Diagnostik gehärtet und liegt seit dem 05.08.2026 erstmals als vollständig qualifiziertes, signiertes Release vor.

Reparierte BYREF- und ABI-Pfade

BYREF-Lese- und -Schreibzugriffe über die gemeinsame Parameter-ABI, XTHREAD-Callback-Parameterübergabe, Managed-String-Zeiger bei LINE INPUT und Parser-Aufrufzeiger nach AST-Speicherwachstum.

Typisierte Arrays und Mathematik

Typisierte TAGARRAY-Kompilierung und -Laufzeit, korrekte DOUBLE-Array-Elementabbildung sowie SINCOS-Zieltyp-Wiederherstellung und konsistentes Math-Array-Verhalten.

Stress- und Robustheits-Abdeckung

Dauerhafte Deep-Nesting-Abdeckung und Name-Pool-Behandlung, begrenzte Timeouts in den Fuzz-, Math- und PE-Validierungs-Lanes sowie FOR-Schleifen- und Managed-Allocation-Stressrunner.

CBC-Vertrag und Diagnosen

Der CBC-Vertrag ist als numerische PBXA32-Erweiterung geschlossen; nicht unterstütztes CBCT schlägt fail-closed mit expliziter Zurückweisung fehl. Division-durch-Null-Diagnosen, veraltete Negativ-Test-Fixtures geschlossen.

Neue Hilfe, deterministisches Paket

Die CHM-Hilfe wurde neu erstellt. Das Endanwender-Paket entsteht deterministisch und wird durch ein SHA-256-Manifest abgesichert.

Qualifiziert und signiert

Smoke 87/87, Staged 173/173, CTest 68/68, CBC/CBCT 28/28, negative Diagnosen 59/59, Paket-Selbsttest 3/3. PBXA32.exe ist Authenticode-signiert (Certum, Sectigo SHA-256-Zeitstempel) und erzeugt native Windows-x86-Executables ohne externen Compiler oder Runtime.

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

All seven compiler stages are implemented and tested. 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!

Completed Subsystems

StageStatusDescription
PreprocessorCompleteMacro expansion, conditional compilation (#IF/#ENDIF), file includes
LexerCompletePowerBASIC-aware tokenizer with full numeric literal support
ParserCompleteRecursive-descent parser building full AST
SemanticCompleteType system, symbols, analyzer
IRCompleteIR module and lowering
CodeGenCompleteIR-to-x86 machine code generator
AssemblerCompletex86/COFF assembler and object writer
LinkerCompletePE32/i386 linker with import support
RuntimeCompleteRuntime library for compiled programs
Optimizer4 StubsOptimization pipeline scaffolded, ready for passes

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 V2 (Release 05.08.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.