aths
2025-12-15, 00:31:08
https://gitlab.com/aths-public/athsc
An dem Scheiß arbeite ich seit einigen Monaten. Implementiert in Python, benötigt Version 3.10, Code auch von ChatGPT geschrieben, war eine Heidenarbeit es hinzukiegen dass meine Anforderungen genau erfüllt werden. Also ja KI kann helfen beim schnellen Protoyping, aber ganz ehrlich wenn man auf die Nacharbeit schaut, weiß ich nicht.
Grundidee: Man hat eine Operation. Den Combiner der 3dfx Voodoo: (a-b)*c+d. Also Multiply-Add mit einer zusätzlichen Subtraktion. Oder eine lineare Interpolation. Oder ein "entferne Bias, skaliere, füge Bias hinzu". Um extra nicht-hilfreich zu sein, in athsc mit komplexen Zahlen. Also wenn man den imaginären Teil weglässt, rechnet er normal, aber er kann mit komplexen Zahlen umgehen.
Ich wollte außerdem, dass konstruierbare Zahlen erreichbar sind, weshalb auch Quadratwurzel integriert ist. Wie man sieht, fehlt noch die Division. Die ist auch integriert. Aber nicht einzeln, man hat als Special Function "1/Wurzel(x)".
Lustig: Alle Mathe-Operationen kommen ohne Argumente aus, weil die immer vordefinierte Variablen verwenden, und alle Variable sind global, und es gibt nur eine Handvoll. In athsc werden Variablen Register genannt. Als Speicher gibt es noch zwei Stacks, um Turingkomplett zu sein (dazu athsc mit --stacks -1 starten für den Unbound-Mode).
Nachdem ich anfing, mit meinem Machwerk Programme zu schreiben, brauchte ich diverse Debugging-Hilfen um es hinzukriegen. Das ist natürlich jetzt alles noch drin, inklusive Line-Trace, Debug-Mode mit break-Option und mehr.
Ich habe viel Zeit investiert, um athsc einerseits als mächtige Sprache zu entwerfen und brauchbare Hilfe einzubauen, die interaktive Shell kann man fast schon als Nano-VM sehen, andererseits aber die Zahl der Befehle zu reduzieren. Meine drei Ideen waren:
- Ein Minimum oberhalb der Turing-Vollständigkeit
- Vielleicht ist es schwer die Macht der Sprache zu entfalten, aber athsc ist einfach zu programmieren/debuggen
- Dem Anwender etwas zu geben wo er er/sie sich die benötigten Features selbst programmieren kann
Man braucht Python 3.10 zum Ausführen, sowie einen Text-Editor zur eigentlichen Programmmierung, kann in der Shell aber auch erst mal viel ausprobieren.
Keine Installation notwendig, einfach "python ./athsc.py" eingeben (oder in Linux natürlich "python3 ./athsc.py")
- Läuft es bei dir?
- Ist es (irgendwie) interessant?
An dem Scheiß arbeite ich seit einigen Monaten. Implementiert in Python, benötigt Version 3.10, Code auch von ChatGPT geschrieben, war eine Heidenarbeit es hinzukiegen dass meine Anforderungen genau erfüllt werden. Also ja KI kann helfen beim schnellen Protoyping, aber ganz ehrlich wenn man auf die Nacharbeit schaut, weiß ich nicht.
Grundidee: Man hat eine Operation. Den Combiner der 3dfx Voodoo: (a-b)*c+d. Also Multiply-Add mit einer zusätzlichen Subtraktion. Oder eine lineare Interpolation. Oder ein "entferne Bias, skaliere, füge Bias hinzu". Um extra nicht-hilfreich zu sein, in athsc mit komplexen Zahlen. Also wenn man den imaginären Teil weglässt, rechnet er normal, aber er kann mit komplexen Zahlen umgehen.
Ich wollte außerdem, dass konstruierbare Zahlen erreichbar sind, weshalb auch Quadratwurzel integriert ist. Wie man sieht, fehlt noch die Division. Die ist auch integriert. Aber nicht einzeln, man hat als Special Function "1/Wurzel(x)".
Lustig: Alle Mathe-Operationen kommen ohne Argumente aus, weil die immer vordefinierte Variablen verwenden, und alle Variable sind global, und es gibt nur eine Handvoll. In athsc werden Variablen Register genannt. Als Speicher gibt es noch zwei Stacks, um Turingkomplett zu sein (dazu athsc mit --stacks -1 starten für den Unbound-Mode).
Nachdem ich anfing, mit meinem Machwerk Programme zu schreiben, brauchte ich diverse Debugging-Hilfen um es hinzukriegen. Das ist natürlich jetzt alles noch drin, inklusive Line-Trace, Debug-Mode mit break-Option und mehr.
Ich habe viel Zeit investiert, um athsc einerseits als mächtige Sprache zu entwerfen und brauchbare Hilfe einzubauen, die interaktive Shell kann man fast schon als Nano-VM sehen, andererseits aber die Zahl der Befehle zu reduzieren. Meine drei Ideen waren:
- Ein Minimum oberhalb der Turing-Vollständigkeit
- Vielleicht ist es schwer die Macht der Sprache zu entfalten, aber athsc ist einfach zu programmieren/debuggen
- Dem Anwender etwas zu geben wo er er/sie sich die benötigten Features selbst programmieren kann
Man braucht Python 3.10 zum Ausführen, sowie einen Text-Editor zur eigentlichen Programmmierung, kann in der Shell aber auch erst mal viel ausprobieren.
Keine Installation notwendig, einfach "python ./athsc.py" eingeben (oder in Linux natürlich "python3 ./athsc.py")
- Läuft es bei dir?
- Ist es (irgendwie) interessant?