자유 변수 및 한계 변수

Free variables and bound variables

수학수리논리컴퓨터 공학을 포함형식언어와 관련된 다른 학문에서 자유변수는 치환이 일어날 수 있는 에서 위치를 지정하는 표기법(기호)이며, 이것 또는 어떤 용기 식의 매개 변수가 아닙니다.일부 오래된 책에서는 자유 변수와 결합 변수를 각각 실제 변수와 겉보기 변수라는 용어를 사용합니다.이 아이디어는 자리 표시자(나중에 일부 값으로 대체될 기호) 또는 지정되지 않은 기호를 나타내는 와일드카드 문자와 관련이 있습니다.

컴퓨터 프로그래밍에서 자유 변수란 함수에 사용되는 변수 중 로컬 변수해당 함수의 매개 변수도 아닌 변수를 말합니다.비로컬 변수라는 용어는 이 컨텍스트에서 동의어인 경우가 많습니다.

와는 대조적으로, 구속 변수는 담론이나 우주의 영역에서 특정 값이나 값의 범위에 구속된 변수이다.이는 논리 수량자, 변수 바인딩 연산자 또는 변수에 허용된 값의 명시적 문구를 사용하여 달성할 수 있습니다(예: " n 양의 정수임).다음 섹션에서 예를 제시하겠습니다.단, 이 경우 변수는 식 값이 True 값인지 계산의 수치 결과인지, 또는 보다 일반적으로 함수의 화상 세트의 요소인지에 따라 달라지는 독립 변수가 되지 않게 된다.많은 맥락에서 담론의 영역은 이해되지만, 바운드 변수에 대한 값의 명시적인 범위가 주어지지 않은 경우, 표현식을 적절하게 평가하기 위해 도메인을 지정할 필요가 있을 수 있습니다.예를 들어, 두 변수가 논리 수량자에 의해 결합되는 다음 식을 고려합니다.

이 식은 x x y 실수인 경우 false로 평가되며 도메인이 복소수인 경우 true로 평가됩니다.

"더미 변수(dummy variable)"라는 용어는 결합 변수(컴퓨터 과학보다 일반 수학에서 더 흔하게)에 사용되기도 하지만, 이는 통계, 가장 일반적으로 회귀 분석에서 사용되는 것과 같이 이름이 같지만 관련이 없는 더미 변수의 개념과 혼동해서는 안 된다.

자유변수와 한계변수대한 정확한 정의를 언급하기 전에, 다음과 같은 두 가지 개념을 정의보다 더 명확하게 하는 몇 가지 예가 있다.

표현 중에

n은 자유변수, k는 결합변수입니다.따라서 이 식 값은 n의 에 따라 달라지지만 k라고 하는 것은 의존할 수 없습니다.

표현 중에

y자유변수이고 x는 결합변수입니다.따라서 이 식 값은 y의 에 따라 달라지지만 x라고 하는 것은 없습니다.

표현 중에

x는 자유 변수이고 h는 바인딩 변수입니다.따라서 이 식의 값은 x의 에 따라 달라지지만 h라고 하는 것은 의존할 수 없습니다.

표현 중에

z는 자유 변수이고 x와 y는 논리 수량자와 연관된 결합 변수입니다. 따라서 이 식의 논리 값은 z의 에 따라 달라지지만 x 또는 y라고 하는 것은 의존할 수 없습니다.

더 넓게는, 대부분의 증명에서는, 바운딩 변수가 사용됩니다.예를 들어, 다음 증명은 짝수 정수의 모든 제곱이 것을 보여줍니다

n n 양의 짝수 정수라고 .다음으로 n nk가 있습니다. n}= 이므로 n.

k뿐만 아니라 n도 증명에서 전체적으로 결합 변수로 사용되었습니다.

변수 바인딩 연산자

이하와 같다

는 일반적인 변수 바인딩 연산자입니다.각각은 변수 x를 일부 집합 S에 대해 바인드합니다.

이들 중 많은 수가 바운드 변수의 함수에 작용하는 연산자입니다.보다 복잡한 상황에서는 이러한 표기가 어색하고 혼란스러울 수 있습니다.다음과 같이 바인딩을 명시적으로 하는 표기로 전환하면 편리합니다.

합계 또는

차별화를 위한 것입니다.

형식적인 설명

표현식 구문을 정리한 트리( y ( )B () \ x , ( \ y , ) \ B ( ) ) 。

변수 결합 메커니즘은 수학, 논리 및 컴퓨터 과학에서 서로 다른 맥락에서 발생합니다.그러나 모든 경우 표현식과 변수의 구문적 속성일 뿐입니다.이 섹션에서는 리프 노드가 변수, 상수, 함수 상수 또는 술어 상수이고 리프 노드가 논리 연산자인 트리를 사용하여 식을 식별함으로써 구문을 요약할 수 있습니다. 식은 트리를 순서대로 트래버설하여 판별할 수 있습니다.변수 바인딩 연산자는 거의 모든 공식 언어로 발생하는 논리 연산자입니다.바인딩 연산자 Q는 변수 v와 식 P의 2개의 인수를 취하고, 그 인수에 적용하면 새로운 식 Q(v, P)를 생성한다.바인딩 연산자의 의미는 언어의 의미론에 의해 제공되며 여기서는 관련이 없습니다.

변수 바인딩은 변수 v, 식에서 해당 변수의 위치 a 및 형식 Q(v, P)의 비리프 노드 n의 세 가지를 관련짓습니다.주의: 구문 트리의 리프 노드로 표현식의 위치를 정의합니다.변수 바인딩은 해당 위치가 노드n 아래에 있을 때 발생합니다.

람다 미적분에서는x용어의 결합 변수입니다.M = λx. T그리고 그 용어의 자유 변수T라고 말합니다.x속박되어 있다M자유로이T.한다면T하위 용어를 포함합니다.λx. U그리고나서x이번 학기에 반등하는 것이다.이 중첩된 내부 바인딩은x외부 바인딩을 "완화"한다고 합니다.의 발생xU새로운 발생이 자유롭습니다.x를 클릭합니다.[1]

프로그램의 최상위 수준에서 바인딩된 변수는 바인딩된 용어 내에서 기술적으로 자유로운 변수이지만 고정 주소로 컴파일될 수 있기 때문에 종종 특별히 취급됩니다.마찬가지로, 재귀 함수에 바인드된 식별자는 기술적으로는 자체 본문 내에서 자유 변수이지만 특별히 취급됩니다.

닫힌 항은 자유 변수가 없는 항입니다.

함수식

수학의 예를 들려면 함수를 정의하는 식을 고려하십시오.

여기서 t는 식입니다.t는 x, …, xn 일부1 또는 전부를 포함할 수 있으며 다른 변수를 포함할 수도 있습니다.이 경우 함수 정의는 변수1 x, …, xn 바인드한다고 합니다.

이와 같이 상기 종류의 함수 정의식은 람다 미적분의 람다 식과 유사한 변수 결합 연산자로 생각할 수 있다.다른 바인딩 연산자(합계 부호 등)는 함수에 적용되는 고차 함수라고 생각할 수 있습니다.예를 들어, 이 표현은

표기로 취급할 수 있다

" f \f}"는 2개의 파라미터, 즉1개의 파라미터 함수와 그 함수를 평가하기 위한 세트를 가진 연산자입니다.위의 다른 연산자도 마찬가지로 표현할 수 있습니다.예를 들어 유니버설 수량자 x P ( )\ \x \ S \ ( ) }는 (가능성이 있는) 집합 S에 적용되는 부울값 함수 P의 논리적인 조합에 대해 평가하는 연산자로 생각할 수 있습니다.

자연어

공식 의미론에서 분석될 때, 자연 언어는 자유롭고 제한적인 변수를 가지고 있는 것을 볼 수 있다.영어에서는 그, 그녀, 그들 인칭대명사가 자유변수로 작용할 수 있다.

리사는 그녀의 책을 찾았다.

위 문장에서 소유대명사 her는 자유변수이다.앞서 언급한 리사 또는 다른 여성을 지칭할 수 있습니다.다시 말해, 그녀의 책은 리사의 책일 도 있고 다른 여성의 책일 수도 있습니다(예: 제인의 책).그녀추천인이 누구든 상황적(, 실용적) 맥락에 따라 확립될 수 있다.참조의 ID는 coindexing 첨자를 사용하여 표시할 수 있습니다.여기서 i는 하나의 참조를 나타내고 j는 두 번째 참조를 나타냅니다(i와는 다름).따라서 리사가 그녀의 책을 찾은 문장은 다음과 같은 해석을 가지고 있다.

리사는i 그녀의 책을 찾았다i.(설명 #1: 그녀의 = of Lisa)
리사는i 그녀의 책을 찾았다j.(설명 #2: 리사가 아닌 여성의 =)

일부ij 언어들은 실제로 그녀에게 다른 형태를 가지고 있기 때문에, 이 구별은 순수하게 학문적인 관심사가 아니다: 예를 들어, 노르웨이어와 스웨덴어는 그녀죄악으로i, 비핵심적인 그녀j 헤네로 번역한다.

영어에서는 상호 참조를 지정할 수 있지만, 앞의 예에 대한 해석은 모두 유효하기 때문에 생략 가능합니다(문법에 어긋나는 해석은 아스타리스크로 표시됩니다.

리사는i 자신의 책을 찾았다i.(설명 #1: 그녀의 = of Lisa)
*리사는i 자신의 책을 찾았다j.(설명 #2: 리사가 아닌 여성의 =)

그러나 자기 자신, 자기 자신 등과 같은 반사 대명사서로와 같은대명사는 결합 변수로 작용한다.다음과 같은 문장에서:

제인은 다쳤다.

반사적 본인은 앞서 언급한 선행 사례(이 경우 제인)만을 언급할 수 있고, 결코 다른 여성 인물을 언급할 수 없다.이 예에서 변수 자체는 주어 위치에서 발생하는 명사 Jane과 결합됩니다.공인수화를 나타내면 제인과 자신이 공인수화된 첫 번째 해석은 허용되지만, 공인수화되지 않은 다른 해석은 문법에 어긋난다.

제인은i 다쳤다i.(설명 #1: 자기 자신 = 제인)
제인은i 다쳤어요j(설명 #2: 본인=제인이 아닌 여성)

상호 참조 바인딩은 이전 형식 설명 섹션에서 설명한 람다 식을 사용하여 나타낼 수 있습니다.반사성이 있는 문장은 다음과 같이 표현될 수 있다.

(xx.x 상처x)제인

여기서 제인은 주어 참조 인수이고, γx.x hurt x는 람다 표기법과 x는 문장의 의미 주어와 의미 목적어를 모두 바인드하는 것을 나타내는 술어 함수(람다 추상화)이다.이것은 JANE hurt JANE과 JANE이 동일 인물이라는 의미 해석을 반환합니다.

대명사는 또한 다른 방식으로 행동할 수 있다.아래 문장에서

애슐리가 그녀를 때렸다.

그녀가 지칭할 수 있는 대명사는 애슐리가 아닌 여성만을 지칭한다.이것은 애슐리가 자신을 때리는 것과 같은 반사적인 의미를 가질 수 없다는 것을 의미한다.문법적 해석과 비문법적 해석은 다음과 같습니다.

*에슐리가i 때렸어i (설명서 #1: 그녀 = 애슐리)
Ashley가i 그녀를j 때렸다. (설명 #2: 그녀 = Ashley가 아닌 여성)

첫 번째 해석은 불가능하다.문법에 의해 두 번째 해석만 허용된다.

따라서, 반사와 왕복은 구속 변수인 반면, 진정한 대명사는 일부 문법 구조에서는 자유 변수이지만 다른 문법 구조에서는 구속될 수 없는 변수라는 것을 알 수 있다.자연어에서 발견되는 결합 현상은 통사적 정부와 결합 이론에서 특히 중요했다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ 톰슨 1991, 33페이지
  • Thompson, Simon (1991). Type theory and functional programming. Wokingham, England: Addison-Wesley. ISBN 0201416670. OCLC 23287456.