Articulo de referencia

Cadena de directores

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...

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:

(λincógnita.mi)ymi[incógnita:=y]{\displaystyle (\lambda xE)y\equiv E[x:=y]\,}o(λincógnita.mi)ymi[y/incógnita]{\displaystyle (\lambda xE)y\equiv E[y/x]} (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

t::=F(t1,t2,,tnorte){\displaystyle t::=f(t_{1},t_{2},\dots ,t_{n})}

donde f es una función de aridad n , sin variables libres , y lati{\displaystyle t_{i}}son 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

σt:VPAG({1,2,,norte}){\displaystyle \sigma _{t}:V\to P(\lbrace 1,2,\dots ,n\rbrace )}

desde las variables libres hasta el conjunto potenciaPAG(incógnita){\displaystyle P(X)}del conjuntoincógnita={1,2,,norte}{\displaystyle X=\lbrace 1,2,\dots ,n\rbrace }. Los valores tomados porσt{\displaystyle \sigma _{t}}son simplemente una lista de los índices de losti{\displaystyle t_{i}}en la que aparece una variable libre determinada. Por lo tanto, por ejemplo, si una variable libreincógnitaV{\displaystyle x\in V}ocurre ent3{\displaystyle t_{3}}yt5{\displaystyle t_{5}}pero en ningún otro término, entonces uno tieneσt(incógnita)={3,5}{\displaystyle \sigma _{t}(x)=\lbrace 3,5\rbrace }.

Por lo tanto, para cada términotT{\displaystyle t\in T}En el conjunto de todos los términos T , se mantiene una funciónσt{\displaystyle \sigma _{t}}y en lugar de trabajar solo con términos t , se trabaja con pares(t,σt){\displaystyle (t,\sigma _{t})}De 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

  1. 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.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Director_string&oldid=1321900230 "