En matemáticas , en el área del cálculo lambda y la computación , los directores o cadenas de directores son un mecanismo para mantener el seguimiento de las variables libres en un término . En términos generales, pueden entenderse como una especie de memorización para variables libres; es decir, como una técnica de optimización para localizar rápidamente las variables libres en un álgebra de términos o en una expresión lambda. Las cadenas de directores fueron introducidas por Kennaway y Sleep en 1982 y desarrolladas posteriormente por Sinot, Fernández y Mackie [ 1 ] como un mecanismo para comprender y controlar el costo de complejidad computacional de la reducción beta .
Motivación
En la reducción beta, se define el valor de la expresión de la izquierda como el de la derecha:
- o (Reemplazar todas las x en E (cuerpo) por y )
Aunque conceptualmente se trata de una operación sencilla, la complejidad computacional del paso puede ser considerable: un algoritmo ingenuo buscaría en la expresión E todas las ocurrencias de la variable libre x . Dicho algoritmo tiene una complejidad de O ( n ) respecto a la longitud de la expresión E. Por lo tanto, resulta necesario rastrear de alguna manera las ocurrencias de las variables libres en la expresión. Se podría intentar rastrear la posición de cada variable libre, independientemente de dónde aparezca en la expresión, pero esto puede resultar muy costoso en términos de almacenamiento; además, proporciona un nivel de detalle innecesario. Las cadenas de directores sugieren que el modelo correcto consiste en rastrear las variables libres de forma jerárquica, registrando su uso en términos de componentes.
Definición
Consideremos, para simplificar, un álgebra de términos , es decir, una colección de variables libres, constantes y operadores que pueden combinarse libremente. Supongamos que un término t toma la forma
donde f es una función de aridad n , sin variables libres , y lason términos que pueden o no contener variables libres. Sea V el conjunto de todas las variables libres que pueden aparecer en el conjunto de todos los términos. El director es entonces el mapa
desde las variables libres hasta el conjunto potenciadel conjunto. Los valores tomados porson simplemente una lista de los índices de losen la que aparece una variable libre determinada. Por lo tanto, por ejemplo, si una variable libreocurre enypero en ningún otro término, entonces uno tiene.
Por lo tanto, para cada términoEn el conjunto de todos los términos T , se mantiene una funcióny en lugar de trabajar solo con términos t , se trabaja con paresDe este modo, la complejidad temporal de encontrar las variables libres en t se intercambia por la complejidad espacial de mantener una lista de los términos en los que aparece una variable.
Caso general
Aunque la definición anterior está formulada en términos de un álgebra de términos , el concepto general se aplica de manera más general y puede definirse tanto para álgebras combinatorias como para el cálculo lambda propiamente dicho, específicamente, dentro del marco de la sustitución explícita .
Véase también
Referencias
- ↑ Sinot, François-Régis; Fernández, Maribel; Mackie, Ian (2003), "Reducciones eficientes con cadenas de directores", en Nieuwenhuis, Robert (ed.), Técnicas y aplicaciones de reescritura, 14.ª Conferencia Internacional, RTA 2003, Valencia, España, 9-11 de junio de 2003, Actas , Lecture Notes in Computer Science, vol. 2706, Springer, pp. 46-60 , doi : 10.1007/3-540-44881-0_5
- F.-R. Sinot. " Director Strings Revisited: A Generic Approach to the Efficient Representation of Free Variables in Higher-order Rewriting. " Journal of Logic and Computation 15 (2), páginas 201-218, 2005.
- Cálculo lambda
- Sistemas de reescritura
- Optimización de software