Mi chiedo se MATLAB sia Turing complete (= computazionalmente universale, ad esempio "se può essere utilizzato per simulare qualsiasi macchina di Turing a nastro singolo")?Mi chiedo se MATLAB sia completo di Turing (computazionalmente universale)?
risposta
Essendo Turing completo è davvero una barra piuttosto bassa per le lingue del mondo reale. Secondo Wikipedia (sottolineatura mia):
per dimostrare che qualcosa è Turing completa, è sufficiente a dimostrare che può essere utilizzato per simulare alcuni Turing sistema completo. Ad esempio, un linguaggio imperativo è Turing completo se ha condizionale ramificazione (ad esempio, "se" e le dichiarazioni "Vai a", o un "ramo se zero" istruzioni. Vedere OISC) e la capacità a cambia memoria arbitraria posizioni (ad esempio, la possibilità di mantenere un numero arbitrario di variabili ). Poiché questo è quasi sempre il caso, la maggior parte se non tutte le lingue imperative sono completate da Turing se ignoriamo eventuali limitazioni di memoria finita.
Oltre a ciò, MATLAB ha molte delle caratteristiche che ci si aspetta da un relativamente moderna 3GL/4GL. È completo di VM, I/O, costrutti di interfaccia utente, operatori matematici (ovviamente), tipi di dati, funzioni definite dall'utente, ecc. È persino possibile fornire programmi Matlab al di fuori dell'ambiente Matlab.
Nota che la lingua è una domanda completamente diversa, sia che si tratti o meno di .
E puoi anche usare liblab matlab fuori da Matlab – Rodrigo
ma sarebbe anche possibile scrivere un "compilatore" matlab interamente in matlab, o riscrivere matlab stesso in matlab rispettivamente? – karsten
@karsten, naturalmente. Non riesco a immaginare che una cosa del genere sia molto pratica, ma non vedo alcuna ragione per cui non sarebbe possibile. –
Suppongo che si distingua tra linguaggi di programmazione e linguaggi di script e, a causa della natura di MATLAB, sembra un linguaggio di scripting? Se questo è il caso, la tua opinione potrebbe dipendere da ciò che consideri un linguaggio di programmazione.
Credo che MATLAB sia completo di Turing e abbia una sintassi ragionevolmente rigorosa e utilizzabile, quindi lo definirei un linguaggio di programmazione. Allo stesso tempo, csh è probabilmente completo da turing, ma è così drammaticamente strano da programmare in quanto lo definirei un linguaggio di scripting.
L'argomento "programmazione contro script" potrebbe essere ancora più complicato per MATLAB poiché traccia distinzioni tra "script" e "m-file" (cioè "funzioni"). – gnovice
csh = c shell, uno dei linguaggi di scripting della shell in genere trovato su linux, unix, bsd, ecc. –
lol, che dire di ksh? k sharp ...:) –
- 1. IntelliJ: non mi chiedo se voglio salvare un file
- 2. Set completo di istruzioni alfanumeriche x86 di Turing (sottoinsieme)
- 3. SQL o anche TSQL Turing completo?
- 4. Mi chiedo se dovrei limitarmi ad usare le proprietà in python
- 5. Invia un messaggio a un amico, mi chiedo API Javascript
- 6. Vignette R computazionalmente pesanti
- 7. Qual è il motivo di un sistema di tipo completo di Turing
- 8. Quale proprietà del sistema di tipi Scala lo rende Turing-completo?
- 9. La ramificazione condizionale è un requisito della completezza di Turing?
- 10. vettorizzato se in matlab
- 11. My simple turing machine
- 12. Turing-completezza di una versione modificata di Brainfuck
- 13. Rilevare se la CPU è 64 bit nell'app universale (Windows)
- 14. PI è un numero computabile di turing?
- 15. In WatiN come aspettare che il postback sia completo
- 16. Puoi realizzare un'app universale utilizzando sia MainWindow.xib per iPhone che Storyboard per iPad?
- 17. Utilizzo dell'interfaccia di scacchi universale
- 18. App universale per iPhone/iPadDelegate
- 19. Che cosa rende Erlang inadatto a lavori computazionalmente costosi?
- 20. Hash universale
- 21. Come capire se una macchina è equivalente alla macchina di Turing
- 22. Quale combinazione di valori di enumerazione MINIDUMP_TYPE mi darà il mini dump 'completo'?
- 23. Aggiornamento completo dei documenti senza creazione se non esistente
- 24. App universale per Android Approccio
- 25. C++ chiamante funzione universale
- 26. Il preprocessore C++ metaprogrammazione Turing-complete?
- 27. Come disabilitare dbstop se errore in MATLAB
- 28. Matlab: variabile iniziale se non definita
- 29. linguaggio di scripting universale per Windows
- 30. riferimento universale vs priorità di riferimento const?
Ho riformulato la mia domanda per trasmettere ciò che intendevo veramente. –
Perché non implementare una macchina di Turing in Matlab per provarlo da solo? – nibot
Si noti che una vera macchina di Turing richiede un nastro infinito, quindi penso che, in senso stretto, qualsiasi linguaggio possa essere solo "Turing completo" purché assumiamo una quantità arbitrariamente grande di memoria. – nibot