Pregunta

En el marco del Esquema y CPS conversión, estoy teniendo un poco problemas para decidir qué administrativa redexes (lambda) son exactamente:

  • todos las expresiones lambda que se introducen por la conversión de CPS
  • solamente las expresiones lambda que se introducen por la conversión de CPS, pero que no habría escrito si se hizo la conversión "a mano" o por medio de un convertidor de CPS-
  • más inteligente

Si es posible, una referencia buena sería bienvenido.

¿Fue útil?

Solución

Redex significa "expresión reducible", que es una expresión que no es un valor. Por lo tanto, un lambda no es un redex, pero hay una llamada.
En CPS, un redex administrativa es un redex cuyo operador es un lambda de continuación. Tales redexes se pueden reducir de inmediato porque usted sabe qué función que está llamando.
Por ejemplo, ((lambda (u) ...) foo) es un redex administrativa, pero no es (k foo).

Otros consejos

creo que he encontrado mi respuesta. ( Editar:. La respuesta de dimvar He aceptado En cambio, es más corto y más correcto)

Suponiendo que el programa de entrada no es totalmente CPS, al menos un procedimiento de punto de retorno tendrá que ser convertido en una continuación por la conversión CPS. Por lo tanto esta continuación se introdujo por la conversión y es necesario. Debido a que es necesario, que siempre tendría que hacer esto, también al convertir a mano, por ejemplo. Por lo tanto, redexes administrativos son sólo aquellos lambdas introducidas por la conversión de CPS que no son realmente necesarios (mi segunda definición).

papel que lo explica como esta (énfasis mío):

  

El ingenuo λ-codificación en CPS,   sin embargo, genera una muy impresionante   la inflación de lambdas, más de la cual   formar redexes administrativas que pueden   reducirse de forma segura. Administrativo   reducciones en el rendimiento términos de CPS   correspondiente a lo que se podría escribir   a mano. Por lo tanto, se ha convertido en una   desafiar a eliminar el mayor número   redexes administrativas como sea posible, a   tiempo de CPS-transformación.

Sin embargo, cualquier comentario o sugerencia bienvenida por supuesto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top