Hogar Desarrollo ¿Qué es la transparencia referencial? - definición de techopedia

¿Qué es la transparencia referencial? - definición de techopedia

Tabla de contenido:

Anonim

Definición - ¿Qué significa Transparencia referencial?

La transparencia referencial es una propiedad de una parte específica de un programa o un lenguaje de programación, especialmente los lenguajes de programación funcionales como Haskell y R. Se dice que una expresión en un programa es referencialmente transparente si puede reemplazarse por su valor y el comportamiento resultante es lo mismo que antes del cambio. Esto significa que el comportamiento del programa no cambia si la entrada utilizada es una referencia o un valor real al que apunta la referencia.

Techopedia explica la transparencia referencial

La transparencia referencial tiene sus raíces en la filosofía analítica, que es una rama de la filosofía que estudia las construcciones del lenguaje natural, los argumentos y las declaraciones basadas en los métodos de las matemáticas y la lógica y tiene poco que ver con la programación, aunque ha sido adoptada por informáticos.

El concepto es simple, el "referente", a lo que se refiere una expresión, puede usarse para sustituir al "referente" sin cambiar el significado de la expresión. Por ejemplo, la afirmación "El padre de Luke es un hombre malvado", "El padre de Luke" hace referencia a "Darth Vader" en la historia de Star Wars. Por lo tanto, la declaración es referencialmente transparente ya que "el padre de Luke" puede ser reemplazado en cualquier momento por "Darth Vader" y la declaración no cambiaría de significado. Sin embargo, en la declaración "la audiencia no supo hasta 'The Empire Strikes Back' que el padre de Luke es en realidad Darth Vader" no es una expresión referencialmente transparente ya que si "el padre de Luke" se reemplaza por "Darth Vader" la expresión se convierte en "el La audiencia no supo hasta 'The Empire Strikes Back' que Darth Vader es en realidad Darth Vader ", que tiene un significado completamente diferente.

En relación con la programación, el concepto es a primera vista el mismo, pero muchos filósofos no están de acuerdo en que el concepto se implemente o se lleve bien en los lenguajes de programación. Pero en la programación general, esto simplemente significa que una expresión puede ser reemplazada por su valor resultante sin tener un efecto en el comportamiento del programa. Por ejemplo, la función plusOne (x) simplemente agrega uno a cualquiera que sea el valor de x, así que si sabemos que x = 5, entonces podemos reemplazar la función con el valor 6 en una expresión que produce el mismo comportamiento cuando se usa plusOne. (X). Pero si hay una variable externa dentro de la expresión que se controla externamente, digamos en la función plusY (x) donde Y dentro de la función se controla externamente, el comportamiento resultante puede no ser el mismo; en este caso, esto no es referencialmente transparente expresión.

¿Qué es la transparencia referencial? - definición de techopedia