www.wikidata.de-de.nina.az
Mit Turing Vollstandigkeit engl turing completeness eines Systems wird seine universelle Programmierbarkeit beschrieben Fur die Adjektivform Turing vollstandig wird synonym haufig auch turingmachtig verwendet Der Name ist abgeleitet vom englischen Mathematiker Alan Turing der das Modell der universellen Turingmaschine eingefuhrt hat 1 2 Inhaltsverzeichnis 1 Definition und Anwendung des Begriffs 2 Beispiele 3 Weitergehende Schlussfolgerungen 4 Literatur 5 EinzelnachweiseDefinition und Anwendung des Begriffs BearbeitenExakt ausgedruckt bezeichnet Turing Vollstandigkeit in der Berechenbarkeitstheorie die Eigenschaft einer Programmiersprache oder eines anderen logischen Systems samtliche Funktionen berechnen zu konnen die eine universelle Turingmaschine berechnen kann Anders ausgedruckt das System und eine universelle Turingmaschine konnen sich gegenseitig emulieren Noch vor der Pragung des Begriffs wurde der erste turingmachtige mathematische Formalismus von Kurt Godel im Jahre 1931 in seiner Arbeit zum Unvollstandigkeitssatz veroffentlicht Obwohl solche Maschinen physikalisch unmoglich sind da sie unbegrenzten Speicherplatz besitzen mussten werden gangige Programmiersprachen und Computer die universell waren wenn sie unbegrenzten Speicher besassen als Turing vollstandig bezeichnet Die in den 30er Jahren des 19 Jahrhunderts von Charles Babbage entworfene Analytical Engine hatte in diesem Sinne Turing Vollstandigkeit besessen ware sie jemals gebaut worden 3 Die Zuse Z3 wurde 1941 gebaut sie war nicht turingmachtig konstruiert und wurde auch nicht dafur genutzt 4 Wie Raul Rojas im Jahr 1998 herausfand ist sie uber zwei Tricks begrenzte Rechengenauigkeit und Zusammenkleben des Lochstreifens zu einer Schleife dennoch Turing vollstandig wird dabei aber sehr langsam 5 Im Jahre 1954 veroffentlichte Hans Hermes als einer der Ersten einen Beweis fur die Turing Vollstandigkeit von Von Neumann Rechenmaschinen also von tatsachlich realisierten Computern Alle modernen Computer sind ebenfalls im weiteren Sinne Turing vollstandig Eine Maschine die Turing vollstandig ist kann jede Berechnung die irgendein Computer ausfuhren kann ebenso ausfuhren und wird daher auch als universell programmierbar bezeichnet Hierdurch ergibt sich jedoch weder eine Aussage uber den Aufwand ein bestimmtes Programm auf einer solchen Maschine zu implementieren noch uber die Zeit die zur Ausfuhrung benotigt werden wurde Die Berechenbarkeitstheorie befasst sich damit welche Probleme mit Hilfe einer Maschine insbesondere mit einer Turingmaschine losbar sind Beispiele BearbeitenDie gangigen Programmiersprachen sind Turing vollstandig Einige Autoren definieren den Begriff Programmiersprache sogar auf Basis der Turing Vollstandigkeit 6 Dies schliesst konventionelle prozedurale Sprachen wie C und objektorientierte Sprachen wie C und Java ein Auch Sprachen die nach weniger gelaufigen Paradigmen entworfen wurden unter anderem funktionale Programmiersprachen wie LISP und Haskell und Sprachen fur Logikprogrammierung wie Prolog sind Turing vollstandig Ebenfalls Turing vollstandig sind die in der Berechenbarkeitstheorie verwendeten minimalistischen Programmiersprachen GOTO und WHILE Beispiele fur nicht Turing vollstandige Programmiersprachen zu finden fallt Fachleuten schwer da diese die Sprachen nach Funktionalitat filtern und strukturelle Sprachen und rein prozessorientierte von vornherein als sehr eingeschrankt erachten und sie gar nicht erst in die Betrachtung aufnehmen Ein haufig diskutiertes Beispiel sind SGML Dialekte und Derivate wie beispielsweise HTML die Auszeichnungssprache zur Darstellung von Webseiten Diese Struktur Sprache ist bei Einsatz aller gegebenen Attribute durchaus in der Lage universelle Beschreibungen fur Prozesse zu halten Auch die zeit diskrete Steuerung bzw die zeitliche Abfolge lasst sich mit Hilfe der Relationalen beschreiben Alle Instrumentale die notig waren sind im Sprachschatz vorhanden Einziges Hindernis zur Aufnahme in die Reihe der Turing vollstandigen Sprachen stellt die Tatsache dar dass HTML in sich nicht aktiv sein kann Erst in Erganzung um eine aktive Komponente wie z B JavaScript oder durch den ausfuhrenden Webbrowser ergibt sich die Steuerbarkeit und verfolgbare zeitliche und hierarchische Abhangigkeit Eine Folge von Formeln in einer Tabellenkalkulation ohne Schleife ist nicht Turing vollstandig obwohl es moglich ist komplexe Operationen mit einem solchen System durchzufuhren Dagegen ist z B die Programmiersprache VBA fur Microsoft Excel ihrerseits Turing vollstandig Regulare Ausdrucke in Programmiersprachen Editoren oder Systemwerkzeugen z B grep wo sie vor allem zum Pattern Matching verwendet werden sind nicht Turing vollstandig auch wenn in vielen Implementierungen regulare Ausdrucke um Konstrukte wie Ruckwartsreferenzen engl backreferences erweitert werden die nicht mehr von endlichen Automaten erzeugt werden konnen Die relationale Algebra ist nicht Turing vollstandig da es innerhalb dieser nicht moglich ist die transitive Hulle zu bilden Ausserdem verfugt die Relationale Algebra nicht uber Schleifen Turing vollstandig sind m rekursive Funktionen daher kommt auch die Bezeichnung rekursiv fur entscheidbare Mengen Der untypisierte Lambda Kalkul ist Turing vollstandig aber viele typbehaftete Kalkule unter anderem System F sind es nicht Der Vorteil von typbehafteten Systemen ist ihre Moglichkeit die meisten typischen Computerprogramme darzustellen dabei aber mehr Fehler entdecken zu konnen Weitergehende Schlussfolgerungen BearbeitenEine wichtige Schlussfolgerung aus der Berechenbarkeitstheorie ist dass es keinen Algorithmus geben kann der uber jedes in einer bestimmten Turing vollstandigen Programmiersprache geschriebene Programm aussagen kann ob es in endlicher Zeit abbricht oder fur immer in einer Schleife bleibt siehe Halteproblem Eine Methode dieses Problem zu umgehen ist das Abbrechen eines Programmablaufs nach einer fixen Zeitspanne oder das Herabsetzen der Machtigkeit von Kontroll Anweisungen Solche Systeme gelten jedoch strikt als nicht Turing vollstandig Dieses Resultat wurde z B von Landweber abgeleitet Ein weiteres Theorem stammt aus der Berechenbarkeitstheorie Mit einer Maschine die nur endliche Schleifen bietet zum Beispiel LOOP oder die dazu aquivalenten primitiv rekursiven Funktionen ist garantiert dass jedes Programm irgendwann anhalt Mit dieser Maschine konnen jedoch nicht alle Probleme gelost werden die von einer Turing Maschine gelost werden konnen z B die Ackermann Funktion Literatur BearbeitenWalter S Brainerd Lawrence H Landweber Theory of Computation Wiley New York NY u a 1974 ISBN 0 471 09585 0 Einzelnachweise Bearbeiten Alan Turing On Computable Numbers with an Application to the Entscheidungsproblem In Proceedings of the London Mathematical Society Band s2 42 Nr 1 1937 S 230 265 doi 10 1112 plms s2 42 1 230 PDF Alan Turing On Computable Numbers with an Application to the Entscheidungsproblem A Correction In Proceedings of the London Mathematical Society Band s2 43 Nr 1 1938 S 544 546 doi 10 1112 plms s2 42 1 230 PDF J Fuegi J Francis Lovelace amp Babbage and the creation of the 1843 notes In Annals of the History of Computing Band 25 Nr 4 IEEE Oktober 2003 ISSN 1058 6180 S 16 26 doi 10 1109 MAHC 2003 1253887 Raul Rojas Konrad Zuse s Legacy The Architecture of the Z1 and Z3 In IEEE Annals of the History of Computing Band 19 Nr 2 1997 ISSN 1058 6180 S 5 16 PDF Raul Rojas How to make Zuse s Z3 a universal computer In Annals of the History of Computing Band 20 Nr 3 IEEE 1998 ISSN 1058 6180 S 51 54 doi 10 1109 85 707574 PDF Scan PDF HTML So etwa Bruce MacLennan Principles of Programming Languages Oxford University Press New York 1999 ISBN 0 19 511306 3 S 1 Abgerufen von https de wikipedia org w index php title Turing Vollstandigkeit amp oldid 238482953