Compiler, Interpreter und ihre Schwächen

Loading

Zeit, dass ich mich mal wieder einem Computerthema widme. Das heutige Thema war als ich mit der Computerei anfing – Anfang der Achtziger Jahre – „in“, ist heute aber kein Thema mehr. Es geht darum, wie ein ausführbares Programm erzeugt wird. Da heute zwar viel mehr Leute einen Computer oder ein Gerät das einen Computer beinhaltet wie ein Smartphone oder Tablett nutzen, aber nicht mehr wie früher Programmieren (müssen) zuerst mal eine Erklärung. Continue reading „Compiler, Interpreter und ihre Schwächen“

Der Compiler ist schuld – oder auch nicht

Ein Compiler hat die Aufgabe eine höhere Programmiersprache in Maschinensprache zu übersetzen. Bei Großrechnern haben kompilierte Programme schon in den Sechzigern die Maschinensprache sukzessive verdrängt. Im PC Bereich war wegen der anfangs langsamen Prozessoren und dem geringen Speicher Assembler noch in den ersten Jahren wichtig, aber heute sicher nicht mehr.

Machen wir einen geschichtlichen Rückblick. Früher hat man auch evaluiert, wie effizient Compiler sind. Die Ergebnisse sind natürlich stark vom Quelltext abhängig. Die NASA hat für die Flugsoftware der Shuttle evaluiert wie schnell HAL als höhere Programmiersprache verglichen mit Assembler war. Und das Ergebnis war damals: 10-20% langsamer. Das Betriebssystem, das zeitkritisch war, wurde daraufhin in Assembler geschrieben, die „Anwendungen“ dann in HAL. Ein ähnliches Ergebnis gab es bei Tests der ersten Versionen von Turbo Pascal. Das ist erfreulich, denn das Programmieren ist doch erheblich leichter in einer Hochsprache. Continue reading „Der Compiler ist schuld – oder auch nicht“

Die Sache mit den Gigaflops

Da ich gerade in loser Reihe mich mit den Supercomputern von Cray beschäftige und dann in der letzten ct‘ noch der Artikel „Matrix reloaded“ erschien möchte ich an dieser Stelle mal was zu der realen und theortischen Geschwindigkeit auf sich hat. Bei Supercomputern aber auch Großrechnern hat sich da die Angabe der Fließkommaoperationen pro Sekunde eingebürgert. Früher meist Megaflops, heute pro Prozessor Gigaflops und pro Rechner können es schon Teraflops sein. Das Maß ist auch für den Laien gut verständlich: Ein „FLOP“ so die Abkürzung ist eine Rechnung pro Sekunde, entspricht also im täglichen Leben einem Druck auf die Taschenrechnertasten + – * / oder einer längeren Anstrengung des Kopfes. Das F steht für Fließkommazahlen, denn es gibt auch die Ganzzahlrechnungen, die man zweckentfremden zur Festpunktarithmetrik nutzen kann. So wird aus einer 20 Stelligen Ganzzahl eben dann eine 16 Stellige mit 4 Stellen hinter dem Komma. Nachteil dieses Verfahrens ist, dass man nicht sehr große oder sehr kleine Zahlen verarbeiten kann. Continue reading „Die Sache mit den Gigaflops“