Ich frage mich, ob MATLAB ist Turing complete (= rechnerisch universell, d. H. "Wenn es verwendet werden kann, um jede single-taped Turing-Maschine zu simulieren")?Ich frage mich, ob MATLAB Turing vollständig (rechnerisch universell) ist?
Antwort
Turing komplett zu sein ist wirklich eine ziemlich niedrige Bar für reale Sprachen. Nach Wikipedia (Hervorhebung von mir):
Um zu zeigen, dass etwas Turing abgeschlossen ist, ist es ausreichend, dass zu zeigen, es verwendet werden kann einige Turing komplettes System zu simulieren. Zum Beispiel eine imperative Sprache ist Turing vollständig, wenn es bedingte Verzweigung hat (zB „wenn“ und „goto“ Aussagen oder ein „Zweig, wenn Null“ Anweisung. Siehe OISC) und die Fähigkeit, ändere willkürlichen Speicher Positionen (zB die Möglichkeit, eine beliebige Anzahl von Variablen zu verwalten). Da dies fast immer der Fall ist, sind die meisten, wenn nicht alle Imperativsprachen Turing abgeschlossen, wenn wir irgendwelche Einschränkungen des endlichen Speichers ignorieren .
Darüber hinaus hat MATLAB viele der Funktionen, die Sie von einem relativ modernen 3GL/4GL erwarten. Es ist komplett mit VM, I/O, Benutzeroberflächenkonstrukten, mathematischen Operatoren (offensichtlich), Datentypen, benutzerdefinierten Funktionen usw. Sie können sogar Matlab-Programme außerhalb der Matlab-Umgebung bereitstellen.
Beachten Sie, ob es eine gute Sprache ist, ist eine ganz andere Frage.
Und Sie können auch Matlab-Bibliotheken außerhalb von Matlab – Rodrigo
verwenden, aber wäre es auch möglich, einen Matlab-Compiler vollständig in Matlab zu schreiben oder Matlab selbst in Matlab zu schreiben? – karsten
@ Karsten natürlich. Ich kann mir nicht vorstellen, dass so etwas sehr praktisch ist, aber ich sehe keinen Grund, warum es nicht möglich wäre. –
Ja, ein high-level programming language.
Ich nehme an, Sie unterscheiden zwischen Programmiersprachen und Skriptsprachen, und aufgrund der Natur von MATLAB erscheint es wie eine Skriptsprache? Wenn dies der Fall ist, könnte Ihre Meinung davon abhängen, was Sie als Programmiersprache betrachten.
Ich glaube, MATLAB ist Turing-vollständig und hat eine einigermaßen strenge und verwendbare Syntax, also würde ich es eine Programmiersprache nennen. Zur gleichen Zeit ist Csh wahrscheinlich Turing-vollständig, aber es ist so dramatisch seltsam zu programmieren, dass ich es eine Skriptsprache nennen würde.
Das Argument "Programmierung vs. Skripting" könnte für MATLAB noch komplizierter werden, da es Unterschiede zwischen "Skripten" und "m-Dateien" (d. H. "Funktionen") macht. – gnovice
csh = c shell, eine der Shell-Skriptsprachen, die normalerweise unter linux, unix, bsd usw. zu finden sind. –
lol, was ist mit ksh? k scharf ...:) –
- 1. Sind LINQ-Expressionsbäume Turing vollständig?
- 2. Programmierungsparadigma; frage mich, ob Neuschreiben/Refactoring notwendig ist
- 3. Nur frage mich, System.out.println()
- 4. Ist C# in Englisch universell?
- 5. Universell-verallgemeinert Zwänge
- 6. "System ist rechnerisch singular" Fehler, wenn ich 'Winsorize'
- 7. MATLAB - floor Frage
- 8. Ermitteln, ob ein Formular vollständig ausgeblendet ist
- 9. Ich frage mich, ob ich nur Eigenschaften in Python verwenden sollte.
- 10. Matlab Unterklasse Frage
- 11. Ich verwende eine Rails 2.3.4 App und frage mich, ob ich auf 3.0 upgraden sollte?
- 12. Turing Komplette alphanumerische x86 Befehlssatz (Subset)
- 13. Ich frage mich, ob jemand kann mir sagen, wie die Bytecode zu verstehen
- 14. Sind Makefiles Turing abgeschlossen?
- 15. Begrenzung universell quantifizierte Variable
- 16. Wie kann ich prüfen, ob ein MATLAB-Handle gültig ist?
- 17. Testen, ob ein Bild vollständig mit Picasso geladen ist
- 18. Rechnerisch schwerer Thread hängt in Python 3 - Warum ist das?
- 19. Ich frage mich, wie man Objekte aus .dat-Datei
- 20. Wie universell wird C99 unterstützt?
- 21. Wie man feststellen kann, ob eine Maschine Turing Maschine entspricht
- 22. Wie verschiebe ich Daten in Turing-Maschine?
- 23. JFLAP Turing Machine-Verknüpfungsproblem
- 24. Ich frage mich, wie ich ein Diagramm ausgeben kann, das ich im Wirtschaftsmagazin gesehen habe
- 25. So ermitteln Sie, ob ein WebView vollständig herausgezoomt ist
- 26. Ruhezustand, Test, ob eine Sammlung vollständig geladen ist
- 27. überprüfen, ob ein Baum vollständig ist Standard ml
- 28. Mit SFINAE prüfen, ob der Typ vollständig ist oder nicht
- 29. Ist WCSF für mich?
- 30. Wie kann ich feststellen, ob ein Popup vollständig geladen wurde?
Ich formulierte meine Frage um zu vermitteln, was ich wirklich meinte. –
Warum nicht eine Turing-Maschine in Matlab implementieren, um es selbst zu beweisen? – nibot
Beachten Sie, dass eine echte Turing-Maschine ein unendliches Band benötigt. Ich denke also, streng genommen kann jede Sprache nur "Turing abgeschlossen" sein, solange wir eine beliebig große Menge an Speicher annehmen. – nibot