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

PBXA32 V2

V2 — Release 05.08.2026

Eine vollständige x86-32 Compiler-Pipeline geschrieben in ISO C11. Von PowerBASIC-Quellcode durch Präprozessor, Lexer, Parser, semantische Analyse, IR, x86-Codegenerierung, COFF-Assemblierung und PE32-Linking — alles in einer Toolchain. Keine C++-Abhängigkeiten. Keine GNU-Erweiterungen. Reines, standardkonformes C11, das native Windows PE32-Executables erzeugt.

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 (DE+EN), 400 Beispiele, 354 Includes und 34 C17-Header

Geschrieben in ISO C11 (kein C++, kein GNU)

Ziel: x86-32 / PE32

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

PBXA32.exe Authenticode-signiert (Certum, SHA-256-Zeitstempel)

7Vollständige Stufen: Präprozessor → Lexer → Parser → Semantik → CodeGen → Assembler → Linker
C11Strenges ISO C11. Portabel. Keine externen Abhängigkeiten.
PE32Native x86-Windows-Executables. Kein GCC. Kein LLVM.
87/87Smoke-Tests sowie Staged 173/173, CTest 68/68, CBC/CBCT 28/28 und negative Diagnosen 59/59

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.

Warum PBXA32 wichtig ist

Reine C11-Implementierung

Der gesamte Compiler - Lexer, Parser, Präprozessor, Codegenerator, Assembler, Linker und Laufzeit - ist in standardkonformem ISO C11 geschrieben. Kein C++. Keine GNU-Erweiterungen. Der Build funktioniert mit C11-kompatiblen Compilern wie MinGW-w64, MSVC und Clang.

Vollständige x86-32-Pipeline

Alle sieben Compilerstufen sind implementiert und getestet. PowerBASIC-Syntax wird tokenisiert, in einen AST überführt, in IR abgesenkt, zu x86-Maschinencode verarbeitet, als COFF-Objekt ausgegeben und zu PE32 gelinkt - ein vollständiger Compiler in C.

PowerBASIC-kompatibel

Unterstützt Direktiven (#COMPILE, #INCLUDE, #DIM), Prozeduren (FUNCTION, SUB, CALLBACK), Kontrollfluss (IF, SELECT, FOR, DO, WHILE), Sprünge (GOTO, GOSUB), Aggregate (TYPE, UNION, ENUM) und klassische Typsuffixe (% & && ! # $ @).

Subsystem-Smoke-Tests

Jede Stufe besitzt einen eigenen Smoke-Test. Lexer, Parser, Assembler oder Linker können unabhängig getestet werden, damit Fehler auf ihre jeweilige Schicht eingegrenzt werden können, ohne vollständige Programme zu kompilieren.

Kurzes Beispiel

#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!

Abgeschlossene Subsysteme

StufeStatusBeschreibung
PräprozessorVollständigMakroexpansion, bedingte Kompilierung (#IF/#ENDIF), Datei-Includes
LexerVollständigPowerBASIC-bewusste Tokenisierung mit vollständiger Unterstützung numerischer Literale
ParserVollständigRekursiver Descent-Parser zum Aufbau des vollständigen AST
SemantikVollständigTypsystem, Symbole und Analyse
IRVollständigIR-Modul und Absenkung
CodeGenVollständigGenerator für x86-Maschinencode aus der IR
AssemblerVollständigx86/COFF-Assembler und Objekt-Writer
LinkerVollständigPE32/i386-Linker mit Unterstützung für Imports
LaufzeitVollständigLaufzeitbibliothek für kompilierte Programme
Optimizer4 StubsOptimierungspipeline vorbereitet und bereit für weitere Pässe

Architektur — Von der Quelle zu PE32

Quelle (.bas) |-> Präprozessor (MACRO, #IF, #INCLUDE) |-> Lexer (PB-Tokens, Bezeichner, Literale) |-> Parser (AST-Aufbau) |-> Semantische Analyse (Typprüfung, Symbolbindung) |-> IR-Absenkung (gemeinsame Zwischenrepräsentation) |-> x86-CodeGen (Maschinencode-Erzeugung) |-> Assembler (COFF-Objektausgabe) |-> Linker (PE32-Image-Erzeugung)

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.

Private Nutzung kostenlos, Business sauber lizenziert

Private Nutzung ist kostenlos. Business-, Team- und kommerzielle Nutzung läuft über Smart Package Robot.

Download-Entwicklung

Tägliche Abrufe aller angebotenen Downloads der letzten 28 Tage (rollierend). Jede Download-Datei ist dauerhaft durch eine eigene Farbe gekennzeichnet.