Programming language shootout



  • volkard schrieb:

    Mit Forth statt herkömmlichem asm als Zielsprache hätte man vielleicht Fixkosten von 5% dazu, aber ganze Betriebssysteme würden auf eine Diskette passen.

    und in 8 GB RAM passen manche Forth-SYsteme Millionen Mal rein. Man könnte im RAM eines gewöhnlichen PC 1-2 Mio. Instanzen eines minimalen Forth-Systems im Multitasking laufen lassen ohne auf die Platte zuzugreifen. Ein ziemlich schneller Server.



  • Was sind eigentlich heutzutage noch die großen Nachteile von realen Stackmaschinen? Der hauptsächliche Nachteil war doch meines Wissens das ständige Push und Pop zwischen Stack und Speicher, das eine hohe Datenbandbreite erforderte. Aber das gilt doch für x86 beispielsweise auch, da ein ausreichend großer Hardwarestack doch sicherlich mehr Informationen halten kann als 2 oder 4 GP-Register. Ich kann mir gut vorstellen, dass man einen Stack sehr gut Cachen könnte, so wie man dieses Problem bei x86 ja auch umgeht. Könnte man nicht sogar den Stack nach oben erweitern und zukünftig benötigte Daten dort im Voraus ablegen?

    Ein typischer RISC-Prozessor besitzt drei Parameter in Form von Registernummern, eine Stackmaschine besitzt höchstens einen für die Push/Pop-Kommandos. Dadurch könnte man doch auch beispielsweise bei einer 64 bit-Maschine und 10 bit Befehlssatz 6 Befehle auf einmal laden. Der Code wäre Kompakter und der Datenverkehr verringert.

    Gibt es einen technischen Grund, warum Stackmaschinen so selten eingesetzt werden?



  • Forß schrieb:

    Was sind eigentlich heutzutage noch die großen Nachteile von realen Stackmaschinen? Der hauptsächliche Nachteil war doch meines Wissens das ständige Push und Pop zwischen Stack und Speicher, das eine hohe Datenbandbreite erforderte. Aber das gilt doch für x86 beispielsweise auch, da ein ausreichend großer Hardwarestack doch sicherlich mehr Informationen halten kann als 2 oder 4 GP-Register. Ich kann mir gut vorstellen, dass man einen Stack sehr gut Cachen könnte, so wie man dieses Problem bei x86 ja auch umgeht. Könnte man nicht sogar den Stack nach oben erweitern und zukünftig benötigte Daten dort im Voraus ablegen?

    Ein typischer RISC-Prozessor besitzt drei Parameter in Form von Registernummern, eine Stackmaschine besitzt höchstens einen für die Push/Pop-Kommandos. Dadurch könnte man doch auch beispielsweise bei einer 64 bit-Maschine und 10 bit Befehlssatz 6 Befehle auf einmal laden. Der Code wäre Kompakter und der Datenverkehr verringert.

    Gibt es einen technischen Grund, warum Stackmaschinen so selten eingesetzt werden?

    Google sagt, dass Stickmaschinen besser sind.


Anmelden zum Antworten