8
votos
3
respuestas
vistas 762
Optimizaciones por compilador en un programa recursivo
Me motivó la pregunta de optimización de llamadas finales ¿Qué es la optimización de llamadas finales? ...
preguntado 10 años, 3 meses
63 preguntas, página #1
8
votos
3
respuestas
vistas 762
Me motivó la pregunta de optimización de llamadas finales ¿Qué es la optimización de llamadas finales? ...
preguntado 10 años, 3 meses
1
votos
2
respuestas
vistas 273
Estoy haciendo algo con una estructura de datos jerárquica, y he diseñado un grupo de métodos para atravesarlo/analizarlo con recursividad indirecta como se explica a continuación. ...
preguntado 10 años, 3 meses
2
votos
1
respuestas
vistas 499
Tengo una función que sé que es cola recursiva. Pero debido a la forma en que lo defino, el compilador se queja de que la función tiene una llamada recursiva en una posición que no es la cola. Esta es la función. ...
preguntado 10 años, 3 meses
6
votos
1
respuestas
vistas 934
El siguiente programa sopla la pila: ...
preguntado 10 años, 3 meses
4
votos
2
respuestas
vistas 189
Dado que .net tiene el código de operación TailCall, ...
preguntado 10 años, 3 meses
8
votos
1
respuestas
vistas 705
¿Cuál es el estado actual de la implementación de Tail Call Optimization (TCO) en Mono (2.11)? Lea en alguna parte que todo el código base debería modificarse para usar una convención callee-pops-arguments. ¿Cuál es el estado de este cambio? ¿Está actualizado el puerto ARM/Linux en este asunto? ...
preguntado 10 años, 3 meses
3
votos
2
respuestas
vistas 298
Antecedentes: estoy programando un compilador .NET (muy similar a C #) para un proyecto escolar. Una de las características que estoy tratando de agregar actualmente es la recursividad de tailcall dentro de los métodos. ...
preguntado 10 años, 4 meses
11
votos
2
respuestas
vistas 1,051
Entonces, la versión corta de mi pregunta es, ¿cómo se supone que vamos a codificar bucles en Haskell, en general? No hay garantía de optimización de cola en Haskell, los patrones de explosión ni siquiera son parte del estándar (¿verdad?), Y no se garantiza que el paradigma de plegar / desplegar funcione en todas las situaciones. Aquí está el caso en cuestión ...
preguntado 10 años, 4 meses
2
votos
1
respuestas
vistas 128
Aquí está mi intento, que NO está optimizado para la llamada final porque necesito eliminar el enumerador: ...
preguntado 10 años, 5 meses
4
votos
1
respuestas
vistas 626
La compilación predeterminada de PyPy 1.7 con stackless incluido, no ofrece la capacidad de ejecutarse sin límite de profundidad de recursividad (de forma directa). ...
preguntado 10 años, 5 meses
5
votos
3
respuestas
vistas 2,931
¿Existe alguna solución para los errores de desbordamiento de pila en funciones recursivas en Ruby? ...
preguntado 10 años, 5 meses
10
votos
4
respuestas
vistas 1,362
El siguiente artículo de blog muestra cómo en F # foldBack se puede hacer que la cola sea recursiva usando el estilo de paso de continuación. ...
preguntado 10 años, 6 meses
2
votos
3
respuestas
vistas 1,237
He estado investigando la recursividad y el TCO. Parece que el TCO puede hacer que el código sea detallado y también afectar el rendimiento. por ejemplo, he implementado el código que toma un número de teléfono de 7 dígitos y devuelve todas las posibles permutaciones de palabras. Por ejemplo, 464-7328 puede ser "GMGPDAS ... IMGREAT ... IOIRFCU" Aquí ...
preguntado 10 años, 7 meses
5
votos
1
respuestas
vistas 416
Estoy investigando scala TCO y he escrito el siguiente código ...
preguntado 10 años, 7 meses
4
votos
4
respuestas
vistas 392
Estábamos experimentando con colecciones paralelas en Scala y queríamos comprobar si el resultado estaba ordenado. Para eso, escribí una pequeña función en el REPL para hacer esa verificación en la Lista muy grande que estábamos produciendo: ...
preguntado 10 años, 8 meses
2
votos
2
respuestas
vistas 169
Implementé un pequeño intérprete lisp (sapid lisp en el código de google) en python y sapid lisp. Quizás su característica principal es implementar la optimización de recursividad mutua y de cola a través de excepciones. Detalles de implementación aquí ...
preguntado 10 años, 9 meses
6
votos
2
respuestas
vistas 2,823
Codifiqué 3 algoritmos factoriales: ...
preguntado 10 años, 9 meses
0
votos
3
respuestas
vistas 325
Código para determinar el elemento lat de una lista, utilizando la coincidencia de patrones: ...
preguntado 10 años, 9 meses
5
votos
2
respuestas
vistas 730
2
votos
1
respuestas
vistas 123
Al leer una entrada de blog de Eric Lippert, encontré este fragmento: ...
preguntado 10 años, 10 meses
26
votos
2
respuestas
vistas 1,410
...
preguntado 10 años, 10 meses
3
votos
1
respuestas
vistas 1,027
Descubrí (por accidente) que el último CLR realiza la optimización de la llamada de cola. Lo he probado con un fragmento de código, pero, francamente, no se comporta como esperaba. Pensé que la optimización de la llamada de cola puede ocurrir cuando lo último en la función es una llamada de función. ...
preguntado 11 años, 0 meses
2
votos
1
respuestas
vistas 625
Básicamente, estoy creando una clase base que se usará para las clases almacenadas como una lista vinculada, que se recorren y eliminan según lo dicta una función virtual update () que devuelve un bool. ...
preguntado 11 años, 0 meses
11
votos
2
respuestas
vistas 1,149
Mientras escribía esta función, sabía que no obtendría la optimización de la llamada final. Todavía no he encontrado una buena manera de manejar esto y esperaba que alguien más pudiera ofrecer sugerencias. ...
preguntado 11 años, 0 meses
9
votos
2
respuestas
vistas 735
Divulgación: esto surgió en FsCheck, un marco de prueba aleatorio de F # que mantengo. Tengo una solución, pero no me gusta. Además, no entiendo el problema, simplemente se eludió. ...
preguntado 11 años, 0 meses
20
votos
3
respuestas
vistas 4,371
Escribí un pequeño intérprete de Scheme en una mezcla profana de C / C ++, pero todavía tengo que implementar las llamadas de cola adecuadas. ...
preguntado 11 años, 1 meses
2
votos
1
respuestas
vistas 837
A continuación se muestra un fragmento que se genera programáticamente para un lenguaje de programación de juguetes, el código real es diferente, pero a continuación se muestra lo que hace cuando se ejecuta, ...
preguntado 11 años, 1 meses
5
votos
2
respuestas
vistas 296
Sé que Python no admite la optimización de llamadas finales. ¿Significa eso que un procedimiento recursivo con un proceso iterativo como el factorial que definí a continuación consumiría O (n) memoria, o el hecho de que no haya operaciones diferidas significa que el espacio sería O (1)? ...
preguntado 11 años, 1 meses
13
votos
1
respuestas
vistas 2,493
Recientemente aprendí Haskell y estoy tratando de llevar el estilo funcional puro a mi otro código cuando sea posible. Un aspecto importante de esto es tratar todas las variables como inmutables, es decir, constantes. Para hacerlo, muchos cálculos que se implementarían usando bucles en un estilo imperativo ...
preguntado 11 años, 3 meses
2
votos
2
respuestas
vistas 264
Si llamo a esta función con un valor de currentReflection inicial muy alto, obtengo una excepción de desbordamiento de pila, lo que indica que la función no es recursiva en cola (¿correcto?). Tenía entendido que siempre que la llamada recursiva fuera el cálculo final de la función, entonces debería ser ...
preguntado 11 años, 3 meses