Hallo, alle bekannten Rechner/Befehlssätze erlauben es, Programme, welche die selbe Aufgabe übernehmen, unterschiedlich zu implementieren Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden würde, bei dem immer nur ein einziges Programm zur Realisierung einer Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal. Es kann nicht optimiert werden, weder in Geschwindigkeit noch Speicherbedarf. Wie könnte so etwas aussehen? Innere Zustände könnten schließlich nicht auf niedriger Ebene programmiert werden. (keine freie Registerwahl -> keine GPR,...)
Das ist nicht das, was ich suche, da kann man ja sogar wählen, welchen Kern man nimmt. Man kann Befehle unterschiedlich anordnen und trotzdem die gleiche Funktion haben.
Nunja. Du müsstest das vielleicht aus einzelnen gates aufbauen? Aber im Grunde brauchst du irgendwas wie einen mathematischen Beweis, dass eine beste Lösung existiert. Das hört sich nach einem Jahrhundertproblem an.
Stefan Helmert schrieb: > Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden > würde, bei dem immer nur ein einziges Programm zur Realisierung einer > Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal. Interessante Frage! Aber wäre das nicht eher ein Thema für ein Philosophie-Forum deiner Wahl? ;-)
Meiner Meinung nach einzige (theoretische) Möglichkeit: Es gibt für jedes Problem einen Befehl und es können nicht mehrere Befehle verkettet werden. sonst kann man immer mehrere Programme finden, die genau das gleiche Ergebnis liefern.
Stefan Helmert schrieb: > Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden > würde, bei dem immer nur ein einziges Programm zur Realisierung einer > Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal. Es > kann nicht optimiert werden, weder in Geschwindigkeit noch > Speicherbedarf. > > Wie könnte so etwas aussehen? So etwas kann für eine Turing-mächtige Maschine nicht existieren. Gäbe es eine Sprache, die dies darstellen könnte, wäre über die Reduktion des Äquivalenzproblems auch das Halteproblem gelöst. Eine Entscheidung des Halteproblems ist jedoch bewiesener Maßen nicht auf der Menge aller Turingmaschinen möglich. (siehe Diagonalsprache) Du müsstest also schon die Möglichkeiten deiner Maschine stark einschränken, damit es so etwas geben kann.
hmmm schrieb: > Meiner Meinung nach einzige (theoretische) Möglichkeit: > Es gibt für jedes Problem einen Befehl und es können nicht mehrere > Befehle verkettet werden. > sonst kann man immer mehrere Programme finden, die genau das gleiche > Ergebnis liefern. Das ist eine ausgezeichnete Idee! Am besten, es gibt auch für die automatische Suche nach der vom Thread-Ersteller gewünschten Rechnerarchitektur einen solchen Befehl, dann haben wir das Problem gelöst. :-)
Der TO sollte wissen, dass er sich in unbestimmtes Terrain begibt. Viele Mathematiker sind schon dort verlorengegangen und sind verrückt geworden.
Markus W. schrieb: > hmmm schrieb: >> Meiner Meinung nach einzige (theoretische) Möglichkeit: >> Es gibt für jedes Problem einen Befehl und es können nicht mehrere >> Befehle verkettet werden. >> sonst kann man immer mehrere Programme finden, die genau das gleiche >> Ergebnis liefern. > > Das ist eine ausgezeichnete Idee! > Am besten, es gibt auch für die automatische Suche nach der vom > Thread-Ersteller gewünschten Rechnerarchitektur einen solchen Befehl, > dann haben wir das Problem gelöst. :-) Das bringt mich darauf, dass die Suche eindeutig bestimmen muss welches Problem es ist -> Äquivalente Probleme könnten das ganze wieder zerstören.
Hallo, was den nicht redundanten Befehlssatz angeht, ist man bei der Turingmaschine mit dem Alfabet 0,1 richtig, die kennt nur die Befehle: Stehenbleiben, 0 Schreiben, neuer Zustand n Stehenbleiben, 1 Schreiben, neuer Zustand n nach Links, 0 Schreiben, neuer Zustand n nach Links, 1 Schreiben, neuer Zustand n nach Rechts, 0 Schreiben, neuer Zustand n nach Rechts, 1 Schreiben, neuer Zustand n das ist minimal und nicht redundand. Bewiesen wurden die Sätze "Alles was berechenbar ist, ist durch eine Turingmaschine berechenbar" und "Alles was nicht durch eine Turingmaschoine berechenbar ist, kann überhaupt nicht berechnet werden". M.a.W. jedes sinnvolle Rechenprogramm lässt sich auch auf einer Turingmaschine programmieren und ausführen, was bedeutet, der obige Befehlssatz reicht für alle Programme aus. Über die Eindeutigkeit ist damit allerdings nichts ausgesagt, dass ein Programm mit minimalem Befehlssatz nur auf eine einzige Art realisiert werden kann ist meiner Meinung nach auch von vornherein falsch. Allerings ist die ganze Frage etwas spät dran, Alan Turing hat die Turingmaschine 1920 definiert. Wenn der Fragesteller noch ein paar Jahre gewartet hätte, könnte die Antwort hundertjährigen Geburtstag feiern. Reinhard Kern
Reinhard Kern schrieb: > das ist minimal und nicht redundand Natürlich ist das redundant im Sinne des TO: "bei dem immer nur ein einziges Programm zur Realisierung einer Aufgabe gefunden werden kann." das kann ich bei deiner
tja schrieb: > Viele > Mathematiker sind schon dort verlorengegangen und sind verrückt > geworden. Turing wurde psychiatrisch behandelt - allerdings wegen Homosexualität. Das ist sicher nicht das was du meinst. Gruss Reinhard
tja schrieb: > Viele > Mathematiker sind schon dort verlorengegangen und sind verrückt > geworden. Berufsrisiko. Ham die eigentlich für den Fall ne Berufsunfähigkeitsversicherung? ;-)
Reinhard Kern schrieb: > Turing wurde psychiatrisch behandelt - allerdings wegen Homosexualität. > Das ist sicher nicht das was du meinst. Eher Kurt Gödel. Der hatte auch mehr Grund dazu gegeben als Turing. Immerhin hatte er Hilberts Traum einer perfekten Mathematik gründlich den Boden weggezogen. Turings Problem war nur die Konsequenz daraus.
Stefan Helmert schrieb: > Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden > würde, bei dem immer nur ein einziges Programm zur Realisierung einer > Aufgabe gefunden werden kann. Deine Anforderung lässt sich mit einer frei mikroprogrammierbaren Maschine lösen, in dem das Programm im Mikrocode steckt. Der gehört im allgemeinen Verständnis zur Maschine und nicht zum Programm. Alternativ kannst du auch das ganze Programm in VHDL formulieren und in ein FPGA stecken. In gewisser Weise bist du hier im Forum damit goldrichtig. Denn viele Mikrocontrolleranwendungen sind Maschinen, in denen sich nur ein einziges Programm zur Realisierung einer Aufgabe finden lässt. Insbesondere wenn schlussendlich maskenprogrammiert.
solange A+B das gleiche ist wie B+A und C*D das gleiche wie D*C wird sich die Vision des TO wohl nicht realisieren lassen.....
A. K. schrieb: > Eher Kurt Gödel. Der hatte auch mehr Grund dazu gegeben als Turing. > Immerhin hatte er Hilberts Traum einer perfekten Mathematik gründlich > den Boden weggezogen. Ja da sind die Weisskittel wohl zu spät gekommen. Früher war Mathematik viel einfacher und vor allem hoffnungsvoller. Tom schrieb: > solange A+B das gleiche ist wie B+A und C*D das gleiche wie D*C wird > sich die Vision des TO wohl nicht realisieren lassen..... Und (a+b)+c = a+(b+c) usw. Man dürfte überhaupt keine Gleichungen mehr umformen, denn das bedeutet immer Äquivalenz der beiden Gleichungsformen. Also garkeine Mathematik mehr. Gruss Reinhard
Alle Algorithmen und Gleichungen müssten in einer Art "Normalform" realisiert werden.
Stefan Helmert schrieb: > Interessant wäre es doch, wenn man eine Architektur/Befehlssatz finden > würde, bei dem immer nur ein einziges Programm zur Realisierung einer > Aufgabe gefunden werden kann. Das Programm ist dabei immer optimal. Das schließt sich gegenseitig aus. Entweder optimal oder keine Redundanz. Es gibt immer mehrere Befehle, mit denen das gleiche gemacht werden kann. Ansonsten dürfte es nur einen Befehl geben. In der Digitalrechnik kann man alles mit einem NAND realisieren. Genauso kann man alle Programme nur mit einem NAND schreiben. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.