IT-Berater Forum

CX32 and CX64 Compiler Project => Project Progress and Learning => Topic started by: Theo Gottwald on June 10, 2026, 12:17:40 PM

Title: [Deutsch] PBXB64 V1 - Der native Multi-Frontend Compiler fuer Windows x64
Post by: Theo Gottwald on June 10, 2026, 12:17:40 PM
PBXB64 V1 - Der native Multi-Frontend Compiler fuer Windows x64 (Alpha)
Fuenf Sprachen. Ein IR. Ein x64-Backend. Ein PE32+. Eine Binary. ~856 KB.

---



Download: https://smart-ai-robot.com/compilers/pbxb64/ (https://smart-ai-robot.com/compilers/pbxb64/) (8,9 MB ZIP, digital signiert)



Was ist PBXB64?

PBXB64 ist ein reiner C17-Compiler, der fuenf Sprachen (B64, PowerBASIC, C, x64-Assembler, PILOT) durch eine einzige IR-Pipeline und einen nativen x64-Backend in echte PE32+ Windows-Executables uebersetzt.


Entstanden aus der Idee: Kann man einen vollstaendigen Compiler-Backend (Instruction Selection, Register Allocation, Peephole Optimization, COFF-Erzeugung, PE-Linking) in reinem C17 schreiben - ohne auf LLVM, GCC oder andere Toolchains zurueckzugreifen?

Die Antwort ist ja. Und zwar in ~76 Source-Dateien / ~43.000 Zeilen C.

---

Fuenf Sprach-Frontends

Das Besondere an PBXB64: Es sind nicht fuenf separate Compiler, die zufaellig in der gleichen Binary stecken. Es ist ein Compiler mit fuenf Frontends - alle erzeugen die gleiche IR, durchlaufen den gleichen Optimizer, den gleichen x64-Backend und den gleichen PE-Linker.

SpracheExtensionStatusBeschreibung
B64[tt].b64[/tt]ActiveC-aehnliche Systemsprache mit manueller Speicherverwaltung, rohen Pointern, Structs, Funktionspointern und globalen Variablen. 13/13 Link+Run-Tests.
PowerBASIC[tt].pb, .bas, .pba[/tt]ActivePowerBASIC-kompatibler Dialekt: FUNCTION/SUB, LOCAL/GLOBAL, TYPE/UNION/ENUM, vollstaendige FOR/NEXT-Semantik, PRINT, String-Builtins, File-I/O. 20/20 Link+Run-Tests.
C17 Subset[tt].c, .h[/tt]Active#include, #define, #if/#endif, struct/union/typedef/enum, switch/case, function pointers, 33 C17-Header. 63/63 Compile-Tests.
x64 ASM[tt].asm, .s[/tt]ActiveIntel + AT&T Syntax, direkte COFF/PE-Emission ohne Zwischensprache.
PILOT[tt].pil[/tt]ActiveBildungsorientierte Sprache: T:/A:/M:/Y:/N:/J:/U:/E:-Befehle, bedingte Suffixe, Pattern Matching.

Mixed-Language-Projekte: PowerBASIC + Inline-ASM im selben Modul. B64 ruft C-Funktionen. PILOT steuert ein BASIC-Programm. Der gemeinsame IR-Layer macht es moeglich.

---

FOR/NEXT - Die vollstaendige Abdeckung

Das langjaehrige "FOR-Body constant-fold"-Problem ist geloest. FOR/NEXT arbeitet jetzt korrekt fuer:


FUNCTION PBMAIN() AS LONG
    LOCAL g AS LONG
    FOR i = 1 TO 3
        g = g + i
    NEXT
    FUNCTION = g         ' = 6
END FUNCTION

---

Technische Tiefe

KomponenteUmfangDetails
Lexer~3.000 LOCPer-language Tokenizer
Parser~12.000 LOC5 Sprach-Frontends mit AST-Erzeugung
IR Builder~2.000 LOCUnified Intermediate Representation
Optimizer~6.000 LOCPass Manager, CFG, Dominance, Constant Folding, DCE, Copy Propagation, Peephole (9 Passes), CSE, GVN, SCCP, LICM, SROA, Strength Reduction
x64 Backend~14.000 LOCInstruction Selection, Register Allocation (Graph Coloring), Peephole Optimization, Scheduler, Frame Layout, Unwind Info
Assembler~5.000 LOCx64 Encoding, Fixups, Relocs, Intel + AT&T Syntax
COFF Writer~1.500 LOCCOFF-Objekt-Datei-Erzeugung
PE Linker~3.000 LOCPE32+ Image-Generierung, Import Table, Relocs, TLS, Exception Data (.pdata/.xdata)

Optimierungs-Durchlaeufe (Auszug):

[tt]Constant Folding -> Dead Code Elimination -> Mem2Reg -> Copy Propagation -> CFG Cleanup -> Strength Reduction -> Instruction Combining -> Branch Simplification -> SCCP -> GVN -> DSE -> ADCE -> Reassociation -> Load Forwarding -> SROA -> LICM -> Peephole (9 Passes)[/tt]

---

Test-Lane: 287/287 gruen, 0 expected fails

Jeder Build durchlaeuft eine automatisierte Test-Suite:

KategorieErgebnisBeschreibung
Assembly (-S)190/190Jede .pb-Datei wird fehlerfrei nach .asm uebersetzt
PB Link+Run20/20PB-Programme kompilieren, linken und liefern korrekte Exit-Codes (u.a. FOR/NEXT, String-Ops, Pointer/Structs)
B64 Link+Run13/13B64-Programme inkl. Calls, Bedingungen, Loops, Args, Globals, Division
C Compile (-S)63/63C-Programme inkl. 33 C17-Headern uebersetzen fehlerfrei
C Link+Run1/1C-Programm laeuft und liefert korrekten Exit-Code

Build-Zeit: ~26 Sekunden (76 Source-Dateien, MinGW-w64, neuere Versionen mit inkrementellem Build deutlich schneller)

---

Was ist im ZIP-Paket? (8,9 MB)


---

Quick Start

PowerBASIC:
FUNCTION PBMAIN() AS LONG
    PRINT "Hello from PBXB64!"
    FUNCTION = 0
END FUNCTION

B64:
fn main(): i32 {
    let x: i32 = 42;
    return x;
}

C:
#include <stdio.h>
int main(void) {
    printf("Hello from PBXB64 C!\n");
    return 0;
}

Kompilieren & Ausfuehren:
PBXB64 mein_programm.pb -o mein_programm.exe
mein_programm.exe
echo %ERRORLEVEL%

Build aus dem Quellcode (fuer Entwickler):
cd core
build_mingw64.bat
build\PBXB64.exe --version
# -> PBXB64 version 0.50.0-z62

Voraussetzung: MinGW-w64 (x86_64-w64-mingw32-gcc 15.2.0 oder vergleichbar)

---

Alpha-Hinweis

PBXB64 V1 ist eine Alpha-Version. Das bedeutet:

Was bereits funktioniert (stabil und getestet):


Was noch nicht vollstaendig ist:


Fuer wen ist PBXB64 V1 geeignet?


Fuer wen ist es (noch) nicht geeignet?


---

Ausblick: V2 und darueber hinaus

Geplant fuer die naechsten Versionen:


Der Compiler ist als offene Entwicklungsplattform konzipiert. Wer sich beteiligen moechte - Features vorschlagen, Bug-Reports einreichen, Code beitragen - ist herzlich willkommen.

---



Download: https://smart-ai-robot.com/compilers/pbxb64/ (https://smart-ai-robot.com/compilers/pbxb64/)
8,9 MB ZIP - PBXB64.exe (856 KB UPX) - PBXB64_Help.chm - 1233 Includes - 127 Samples



Theo Gottwald | Dettenheim, Deutschland | info@it-berater.org (mailto:info@it-berater.org)
Web: smart-ai-robot.com (https://smart-ai-robot.com/) | Smart Package Robot (https://www.smart-package.com/)



PBXB64 V1 - Z62 "FOR/NEXT Coverage" - 2026-06-10 - 287/287 Tests gruen, 0 expected fails, 0 Regressions.
Title: Re: [Deutsch] PBXB64 V1 - Der native Multi-Frontend Compiler fuer Windows x64
Post by: Norbert Spoerl on June 10, 2026, 01:23:18 PM
Hi Theo,
Gratulation - ich hatte nicht gedacht, dass Du und KI das hinbekommen. Ich habe bei JKB intensiv als Betatester geholfen. Darum geht meine Orientierung in diese Richtung. Ich hoffe, Juergen gibt aufgrund der mangelnden Resonanz nicht auf. Stand heute, aus meiner Sicht, es wäre gut gewesen, ihr beide hättet bzgl. Projekt PB64bit zusammen gefunden. Auf der anderen Seite ist es nicht schlecht, dass es Alternativen gibt.
Viel Erfolg weiterhin!
Title: Re: [Deutsch] PBXB64 V1 - Der native Multi-Frontend Compiler fuer Windows x64
Post by: Theo Gottwald on June 10, 2026, 01:31:29 PM
Hallo Norbert,

wir arbeiten zusammen, ich bin auch in Kontakt mit Jürgen.

Er möchte evtl. auch seinen Compiler auf meiner WEB-Site im Oktober unterbringen.
Derzeit möchte er erst Mal was "der Jahrezeit" entsprechendes machen,
und das ist auch gut so.

Ich hab ihm von Anfang an gesagt dass wir hier nur "Paar Opas"" sind die noch Interesse an PB haben.
Evtl. könnte es Firmen mit bestehendem Source-Code geben, die interssiert sind.

Das war als er mit seinem Projekt angefangen hat noch anders, aber in der Software und beim Obst vergeht die Zeit schnell.
Du bist natürlich hier auch willkommen.

Defacto sind meine Alpha-Compiler im Bezug auf PB langsamer beim Kompilieren und auch der Code wird erwartungsgemäß schlechter sein als bei Jürgens Compiler. Dafür habe ich paar Features mehr eingebaut und ein zusätzliches C-Frontend.

Aber vor allem kann man es jetzt schon ausprobieren. Jürgen möchte erst im Spätjahr - so hab ich Ihn verstanden - seinen Compiler fertig machen. Ich hatte auch gehofft er würde zu erst publizieren.

Habe Ihm auch Hilfe angeboten, bei allem, Fehlersuche, bei der Hilfe ... aber er hat so entschieden.
Gut nun mache ich das Mal.


 
Title: Re: [Deutsch] PBXB64 V1 - Der native Multi-Frontend Compiler fuer Windows x64
Post by: Norbert Spoerl on June 10, 2026, 02:07:20 PM
Hi Theo,
dass ihr Kontakt hattet, weiß ich, und auch das, was bei ihm im Moment Priorität hat. Über die Gründe der geringen Resonanz habe ich mir auch Gedanken gemacht. Meine Vorschläge werde ich Ihm im Herbst unterbreiten. Einer davon ist eine eigene Homepage für JKB. Das Parken auf anderen, wie z.B. auf Deiner wirkt nicht professionell. Es stimmt nicht, dass sein JKB nicht fertig ist. Es tut das, was es tun soll. Nur einiges um den Kern herum ist noch nicht 100% abgerundet (Hilfedateien und IDE-Spezifika). Aber es lässt sich damit gut arbeiten.
Title: Re: [Deutsch] PBXB64 V1 - Der native Multi-Frontend Compiler fuer Windows x64
Post by: Theo Gottwald on June 11, 2026, 01:38:25 PM
Hallo Norbert

Im Prinzip hat er ja auch für seinene Editor schon einen eigene Homepage.
Aber mein Eindruck ist dass er im Moment einfach nicht so viel Zeit am PC verbringen will sondern an die frische Luft will.
Ich rede Ihm da nicht rein, wenn er kommt und Hilfe braucht hat er ja meine Mailadresse.
Ich wollte eignetlich nach Ihm releasen, weil er schon weiter ist.
Aber da er gesagt hat er relleased erst im Oktober habe ich das vorgezogen so haben die Leute die das interessiert schon Mal "was zum Spielen".
Und kleine Exe kann man ja damit schon machen. Damit lebt die PB-Syntax schon mal weiter.
Ob die KI in Zukunft noch compiler braucht oder gleich die EXE ausspuckt, da werden wir sehen -
aber genauso wie es heute noch Leute gibt die C64 und AMIGA Nutzen gibt es ja vielleicht auch eine "Hand voll Powerbasic Opas" die sich darüber freuen. Also ausser mir, bin ja einer davon.