No puedo encontrarlo si es o no y soy muy curioso: si no califica, ¿qué funcionalidad le falta para calificar? He hecho una buena cantidad de lotes y no veo ningún inconveniente obvio en la capacidad.¿Está completa la hornada de lotes?
Respuesta
Creo que califica. Se cree que los requisitos básicos de la integridad de Turing se pueden reducir a unas pocas operaciones simples, que incluyen: la capacidad de almacenar estados (variables), la capacidad de ramificar (condicionales) y la capacidad de iterar (bucles). Batch tiene todo esto, por lo tanto, a menos que exista un requisito aún por descubrir para la integridad de Turing, el scripting por lotes califica.
acabo 'demostrado' por lotes es Turing completo, mediante la creación de un intérprete de brainfuck en lotes (brainfuck Porque se ha demostrado para ser Turing completo):
https://github.com/YoYoYonnY/Brainfuck-In-Batch
Por cierto, una de Turing completa significa su lenguaje de programación, ya sea:
- imposible crear un programa que puede determinar si otro programa (en el mismo idioma) será finalmente detener o seguirá funcionando para siempre (no sé cómo funciona ésta, y yo no pienses que nadie e usé este para probar la integridad de Turing).
- posible crear un programa que puede ejecutar todos los programas posibles en el idioma (Un intérprete:. Brainfuck interpreter in Brainfuck (Hay una versión mejor, que por desgracia no puedo encontrar Éste es terriblemente lento))
- posible actuar como o simular una máquina de Turing, y por lo tanto contiene al menos los siguientes aspectos:
- de escritura a la memoria (es decir, el cambio de un valor de la variable a cualquier otro valor; sólo ser capaz de cambiar
true
afalse
y al revés es sigue siendo válido. En el caso del lote:SET A=5
) - memoria 'Infinita' (es decir también hay más de un bit/byte que puedes escribir, preferiblemente infinitos. Cadenas, matrices, tablas, campos de bits o incluso solo enteros son todos válidos, siempre que podamos escribir en el objeto completo. Tenga en cuenta que debe ser posible leer y escribir en una variable por dirección: debe haber bitshifts si desea que los enteros sean válidos, y debe poder indexar su matriz, por lo que es
array[index];
). - Salto condicional estados (es decir
IF %A%==0 GOTO LABEL
(Ir a etiqueta si a es cero),while (var) {/*code*/}
(saltar de nuevo a comenzar de código mientras var no es cero) ojmp0 exit;
(Ir a salir si el valor actual en la pila es cero))
- de escritura a la memoria (es decir, el cambio de un valor de la variable a cualquier otro valor; sólo ser capaz de cambiar
La máquina de Turing tradicional requiere que tengas una cinta que sea infinita en ambos lados, pero una simple matriz, cadena, tabla (objeto) o número binario (campo de bits) trabajo tambien En mi "Brainfuck in Batch", por ejemplo, utilicé un objeto array/table-like para almacenar la memoria (dado que el lote le permite cambiar la clave de un valor, así: SET ARRAY[%KEY%]=%VALUE%
)
- 1. (fue inesperado en este momento - escritura de la hornada
- 2. cómo usar Goto en la escritura de la hornada
- 3. Escapar argumentos cuando pasa% * de escritura de la hornada como $ args al script de PowerShell
- 4. phantomjs no está esperando la carga de la página "completa"
- 5. Ejecutar archivo por lotes tras otro archivo por lotes se completa
- 6. Cómo comprobar si la validación del formulario html5 está completa
- 7. ¿Dónde está la documentación oficial, extensa y completa en web.config?
- 8. eliminar todos los archivos de una carpeta a FTP mediante secuencias de comandos por lotes ftp
- 9. ¿Por qué mi fuente de Android SDK no está completa?
- 10. ¿Dónde está la línea divisoria entre la falta completa de planificación y la parálisis del análisis?
- 11. ¿Cómo obtengo la notificación de que la construcción local de Visual Studio está completa?
- 12. Detectando si un navegador está en modo de pantalla completa
- 13. Cambiar un archivo por lotes cuando se está ejecutando
- 14. Cómo ocultar la salida por lotes
- 15. ¿Cómo encuentro ruta completa a una aplicación en un archivo por lotes
- 16. Python no está escribiendo cadena completa en el archivo
- 17. Completa replicación completa de la base de datos MySQL? Ideas? ¿Que hace la gente?
- 18. ¿Por qué el ImageView no está en pantalla completa?
- 19. ¿Por qué la inicialización de las constantes enum de Java no está completa?
- 20. ¿Hay alguna forma de determinar si la aplicación de Android se está ejecutando a pantalla completa?
- 21. ¿Puedo obtener la consulta completa de que un PreparedStatement está a punto de ejecutarse?
- 22. lotes vs instrucción SQL
- 23. Pasar de la pantalla completa a la pantalla completa pop/slide
- 24. ¿Cómo obtener la ruta del script por lotes en Windows?
- 25. Control deslizante de TkInter: cómo activar el evento solo cuando la iteración está completa?
- 26. ¿Por qué la estrategia de evaluación call-by-value no está completa?
- 27. Verificación ortográfica de código fuente por lotes
- 28. Ajax.BeginForm devuelve la página completa
- 29. Codificación de archivo por lotes
- 30. lotes Concatenación
También señalaré que las personas logran hacer cosas completamente ridículas usando nada más que secuencias de comandos en lotes puros. : S – Wug
Siento que hay algo más que esto. Una máquina de Turing no solo "almacena el estado", básicamente tiene una pila de dos extremos. Los FSM tienen versiones débiles de estado, bifurcación e iteración, y no son TC. Los PDA incluso tienen una pila y aún no son TC; se necesita un PDA con dos pilas para ser TC. –