[...]
Ein möglicher Algorithmus wäre, das Ergebnis vorherberechnen, wie es sein soll und auf dessen basis, einen effektiveren Algo vorzuschlagen, falls er einen kennt.
Falls er einen kennt. Dat ersetzt aber den Menschen, der ihn sich ausdachte nicht...
Wenn der Compiler einen auswählt, den er kennt, dann hast du recht, ja,
wenn er aber z.B. einen genetischen Algorithmus arbeitet, der einen Algorithmus verändert, dann muss der Coder des Compilers _nur_ diesen bauen, der Rest ergibt sich sozusagen von selbst.
(mir ist klar, das genetische Algorithmen im allgemeinen recht langsam zum Ziel kommen, aber die PC's werden auch schneller)
Und wie gesagt, das ist auch nicht Aufgabe des Compilers.
Ein in C gebautes quicksort, wird (mit gleichen gimmicks) einem relativ gut gecodetem asm-quicksort in nichts nachstehen. (ok, bei asm kann man direkt den stack benutzten und muss sich nicht selber einen bauen)
Wie war das mit dem beschränkt?
allerdings sollte bis dahin die Menschheit ihre inneren Konflikte lösen, sonst gehts zurück in die Steinzeit.
Soweit waren wir schonmal mit dem kalten Krieg. Ich glaube nicht, dass die Menschheit jemals ihre innersten Probleme lösen wird, leider.
Ist mir auch relativ egal, solange es mich nicht betrifft.
immer dieser Egoismus.
Aber eine Hochsprache hat _immer_ Nachteile gegenueber der reinen Prozessorsprache, was gewisse Sachen angeht. Perfekte Optimierung und 100%ige Flaschenhalsentfernung ist mit einer Hochsprache - besonders im Lowlevelbereich - nicht möglich.
Die Nachteile, sind doch nicht zwanghaft, sie sind vorhanden, bei wahrscheinlich allen aktuellen Compilern.
Alles was zum Programmablauf zu wissen ist, steht im Quellcode.
Ein gut "ausgebildeter" asm-coder könnte diesen maximal optimiert übersetzten. Diese maximale Optimierung, geschieht doch aber nicht irgendwie wirr, sondern nachvollziehbar, ja wahrscheinlich sogar nach einem bestimmten Schema/Algorithmus und das ist genau das, was ein Computer sehr gut kann. Das es recht gut geht, sieht man an den heutigen Compilern. Das es aber noch besser ginge, sieht man daran, das an einigen stellen, handoptimierung sinnvoll wird.
Optimierung bis zum äussersten geht nur mit Assembler
In asm kann man als einiziges für einen speziellen Prozessor hinoptimieren, ja. Algorithmen kann man aber auch in allen anderen Sprachen optimieren. (ja, das meintest du wahrscheinlich nicht
).
Bei Hochsprachen optimiert der Compiler, bei asm ist einem das selber überlassen (ja, wieder sind die algorithmen nicht gemeint).
Das, was uns wahrscheinlich trennt, ist, dass ich glaube das Compiler (vielleicht in 20 Jahren, vielleicht eher) maximale Optimierung erreichen können.
Boah leute, die 20-30% die ne gute(!) ASM Implementierung wohl gegenüber ner guten(!) Hochsprachenimplementation bringen wird
Die Zahl ist aber reichlich aus der Luft gegriffen, 20-30% schneller ist Handoptimierter Code wahrscheinlich nicht, kleiner erst recht nicht.
Ich würde maximal von 10%, im Durchschnitt aber _deutlich_ unter 5%.
(ausser wohl im Bereich von SIMD, da die Compiler wohl noch nicht so toll sind )
ja, hoffentlich _noch_
sind wenig im Vergleich von einem guten zu einem schlechten Algorithmus.
Ja, das will keiner abstreiten
Implementiert erstmal einen ordentlichen Algorithmus, wenn ihr das habt, dann guckt mal ob sich ASM überhaupt lohnt.
willst du an _uns_ Zweifeln?
MfG
DDR-RAM