发展历程 什么是参照透明性? -技术百科的定义

什么是参照透明性? -技术百科的定义

目录:

Anonim

定义-参照透明是什么意思?

引用透明性是程序或编程语言(特别是诸如Haskell和R等功能性编程语言)特定部分的属性。如果程序中的表达式可以用其值替换,并且其行为是,则称该表达式为参照透明性。与更改之前相同。 这意味着无论使用的输入是引用还是引用指向的实际值,程序的行为都不会改变。

技术百科解释了参照透明

参照透明性起源于分析哲学,后者是哲学的一个分支,尽管它已被计算机科学家采用,但它是基于数学和逻辑方法研究自然语言构造,论点和陈述的,与编程无关。

概念很简单,表达式所指的东西“指称”可以用来代替“引荐”,而无需更改表达式的含义。 例如,“星球大战”传说中的“卢克的父亲是一个邪恶的人”,“卢克的父亲”这样的陈述引用了“达斯·维德”。 因此,该声明具有参照透明性,因为可以随时用“ Darth Vader”替换“ Luke的父亲”,并且该声明的含义不会改变。 但是,在“观众直到'帝国反击战'才知道卢克的父亲实际上是达斯·维达”这一说法中,这并不是一种参照性的透明表达,因为如果将“卢克的父亲”替换为“达斯·维达”,则该表达会变成“听众直到“帝国反击”才知道达斯·维达实际上是达斯·维达,”这句话有着完全不同的含义。

关于编程,概念乍看之下是相同的,但是许多哲学家不同意该概念在编程语言中很好地实现或延续。 但是,在一般编程中,这仅意味着可以将表达式替换为其结果值,而不会影响程序的行为。 例如,函数plusOne(x)会将x的值简单地加一个,因此,如果我们知道x = 5,那么我们可以安全地用表达式中的值6替换函数,使用plusOne时会产生相同的行为。 (X)。 但是,如果表达式中有一个外部变量是外部控制的,例如在plusY(x)函数中,其中函数内部的Y是外部控制的,则结果可能会有所不同-在这种情况下,这不是引用透明的表达。

什么是参照透明性? -技术百科的定义