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

PBXA32 V24

V24 — im V8-Paket (Build vom 02.10.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.

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
Ältere Versionen

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.

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

Ziel: 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)

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

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

Die sieben Compilerstufen bilden die native x86-32-Pipeline. 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!

Implementierte Subsysteme

StufeStatusBeschreibung
PräprozessorImplementiertMakroexpansion, bedingte Kompilierung (#IF/#ENDIF), Datei-Includes
LexerImplementiertPowerBASIC-bewusste Tokenisierung mit vollständiger Unterstützung numerischer Literale
ParserImplementiertRekursiver Descent-Parser zum Aufbau des vollständigen AST
SemantikImplementiertTypsystem, Symbole und Analyse
IRImplementiertIR-Modul und Absenkung
CodeGenImplementiertGenerator für x86-Maschinencode aus der IR
AssemblerImplementiertx86/COFF-Assembler und Objekt-Writer
LinkerImplementiertPE32/i386-Linker mit Unterstützung für Imports
LaufzeitImplementiertLaufzeitbibliothek für kompilierte Programme
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.

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

Private Nutzung kostenlos, Business sauber lizenziert

Private, nicht-kommerzielle Nutzung ist kostenlos. Business-, Team- und kommerzielle Nutzung läuft über Smart Package Robot oder per E-Mail an info@it-berater.org.

Download-Entwicklung

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

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