Performante Basic Compiler für CBM/PET

  • Hallo Hobbyprogrammierer,


    ich stelle mir die Frage, ob es neben

    - PETSPEED

    - Austro-Comp

    noch weitere Basic Compiler für unsere beliebten Bürocomputer gibt?


    Evtl. sogar etwas aus der "Neuzeit". Ich stelle mir da eine Art externe Kompilierung auf einem modernen PC vor, welche ein (Im Rahmen der Möglichkeiten) gutes Assembler-Programm aus dem Basiclisting bastelt.


    Hintergrund:

    Beschleunigen meiner stümperhaft programmierten Basic-Ergüsse. :)


    Danke euch!

  • Ja, das ist eine IDE mit Basic-Compiler, Sprite-Editor und der Möglichkeit, Assembler zu programmieren und einzubinden. Ergebnis z. B. Eine .PRG Datei oder ein D64-Image.

    Ich meine:

    Geschriebenes Basic Programm laden, nach Assembler umwandeln lassen (compilieren?), mit SYS-Befehl ausführen.

    Also nicht nur das Einbinden von Assembler bzw. die Programmierung in Assembler- das kann ich nicht. ;)

  • Ich habe damals sehr viel mit dem DTL-Compiler gearbeitet - auf dem 3032. Der war nicht verdongelt oder jemand hatte den schon rausgepatcht.

    Ob der besonders perfomant war, das weiß ich nicht. Ich hatte keine Vergleichsmöglichkeiten. Mir reichte es aus, dass der PRG-Dateien erzeugte, die Programme (ab einer gewissen Länge) kürzer wurden und deutlich schneller liefen - Faktor 2-3, wenn ich mich richtig erinnere. Aber das ist natürlich stark von den Programmen abhängig.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Ist nicht wirklich alt, aber vllt trotzdem was für Dich?

    XC=BASIC 3

    XC=BASIC is a cross compiled, modern BASIC programming language for 8-bit Commodore machines

    It compiles BASIC source code to fast machine code.

    Although not 100% compatible, its syntax was designed to be similar to that of QuickBASIC and CBM BASIC.


    Source hier:

    GitHub - neilsf/xc-basic3: A BASIC cross compiler for MOS 6502-based machines
    A BASIC cross compiler for MOS 6502-based machines - neilsf/xc-basic3
    github.com

  • Der DTL Compiler erzeugt vergleichsweise langsamen Code. Für den gibt es sogar einen Recompiler, aus dem Kompilat wieder Basic Code erzeugt.

    Recht performanten Code erzeugt der Austrospeed. Der unterstützt auch Userport - Dongles, die Abfrage wird über spezielle Kommandos in REM Zeilen aktiviert.

    +++ ATH

  • Ich hab gestern mal ein wenig mit PETSPEED gespielt und meinen HPGL-Converter drübergejagt.


    Zeiten kommen später, wenn ich alles sortiert hab. Schneller fühlt es sich auf alle Fälle an.

  • Ich habe in meiner Jugend kommerzielle Software für den 8032 entwickelt.

    Da hatte ich PETSPEED zur Auswahl und eine Art von Austro-Comp, ich glaub der hat anders geheißen.


    Nun ja, richtig guten und sauschnellen Code macht nur der PETSPEED, der ist wirklich genial!


    ABER: PETSPEED ist nicht wirklich BASIC 4 kompatibel.

    Man kann nicht einfach ein beliebiges BASIC Programm "kompilieren und läuft".


    Der Austro-Comp schon.

    Fast jedes BASIC Programm das läuft kann man kompilieren und es läuft ein bisschen schneller.

    Vor allem hat der Kunde dadurch den Sourcecode nicht, das war auch ein Ziel.




    FAZIT:


    Der PETSPEED ist sehr gut, wenn man die Features kennt und die ganze Entwicklung auf PETSPEED auslegt.


    Der Austro-Comp ist gut, wenn man ein fertiges BASIC Programm hat und es einfach kompilieren will.

  • Unterstützen die beiden echte Integer-Arithmetik? Das bringt in der Regel die meiste Geschwindigkeit, wenn man kein Floating-Point braucht.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Unterstützen die beiden echte Integer-Arithmetik? Das bringt in der Regel die meiste Geschwindigkeit, wenn man kein Floating-Point braucht.

    PETSPEED hat nicht nur Integer Arithmetik, es kompiliert sogar solche Dinge in echten Assembler.


    Austro-Comp hat, soweit ich weiß, keine Integer Arithmetik.

    Austro-Comp ist nach wie vor ein Interpreter.

    Er verwendet Token und führt die aus mit einem beigepackten Interpreter.

    Deswegen ist der auch so kompatibel.


    Allerdings ist der Token Stream hoch optimiert.

    Zeilennummer sind ersetzt durch echte Adressen.

    Syntax Prüfung entfällt und die Token werden direkt ausgeführt.

    Typ Prüfungen entfallen, es wird immer direkt der richtige Code angesprungen.


    Austro-Comp hat den Vorteil, dass die Code Größe sehr klein ist.

    Es hat zwar eine Runtime, aber je größer das Programm desto weniger schmerzt der Runtime Code.

    Also kleine Programme werden größer.

    Große Programme sind kompiliert kaum größer als der Source Code.