J 연산자

J operator

컴퓨터 과학에서 피터 랜딘의 J 연산자는 현재의 람다-콘텍스트의 연속성을 가지고 람다 표현을 포스트 컴파일하는 프로그래밍 구조다.결과적인 "기능"은 1등급이며, 후속 기능에 전달될 수 있으며, 적용하면 그 결과가 생성된 기능의 지속으로 되돌아간다.

역사

J 연산자는 라벨을 만들고 점프를 1등급 값으로 만들기 위해 만들어졌다.다음과 같은 추가 전환을 통해 SECD 기계와 함께 작동하도록 설계되었다.

전이 보낸 사람 에게
J J:f:S,E,ap:C,D 폐쇄(f,D):S, E, C, D
폐쇄 폐쇄(f, (S', E', C', D'):x:S, E, ap:C, D. f:x:S', E', ap:C', D'

J 오퍼레이터는 원래 "프로그램 폐쇄"라고 불리는 것을 만들었는데, 본체라고 불리는 기능과 덤프라고 불리는 SECD 상태로 구성되어 있다.프로그램 폐쇄는 연속형(closure(f,D)(x) = D(f(x))))의 덤프(dump)로 본체를 구성하는 것과 같다.

단순화된 설명

J 연산자는 호출함수의 지속으로 함수를 구성한다.즉, J 연산자는 함수를 반환하는데, 이 함수의 인수를 적용하면 J 연산자의 인수를 함수의 인수로 적용한 다음, J 연산자를 호출한 함수가 그 값을 반환하도록 강제한다.

J(λx.x)는 1등급 반품문과 동일하다.왜냐하면 xx.x는 신분함수여서 그것이 적용되면 주어진 값에 아무 것도 하지 않고 곧바로 되돌려 주기 때문이다.

λv.J(λx.x)는 처음에 λx.x의 J를 반환하지만, 그것은 다른 값을 다시 반환하도록 하기 위해 주변 표현에서 사용될 수 있다.

참고 항목

참조

By Landin
  • Landin, P. J. (January 1964). "The Mechanical Evaluation of Expressions". Comput. J. 6 (4): 308–320. doi:10.1093/comjnl/6.4.308.
  • Landin, P. J. (February 1965). "Correspondence between ALGOL 60 and Church's Lambda-notation: Part I". Comm. ACM. 8 (2): 89–101. doi:10.1145/363744.363749.
  • Landin, P. J. (March 1965). "A correspondence between ALGOL 60 and Church's Lambda-notations: Part II". Comm. ACM. 8 (3): 158–167. doi:10.1145/363791.363804.
  • 랜딘, P.J. "알골 60에 대한 공식적인 설명"1964년 9월, 바덴의 IFIP 워킹 컨프에서 발표되었다.
  • 랜딘, P.J. "Lmperates 없는 프로그램-예시," UNIVAC S.P. 연구 보고서 (1965년 3월)
  • 랜딘, P.J. "라벨 제거하기", UNIVAC S.P. 연구 보고서 (1965년 7월)
  • 랜딘, P.J. "프로그래밍 언어의 과제 분석", UNIVAC S.P. 연구 보고서 (1965년 9월)
  • 랜딘, P.J. "점프와 라벨의 일반화," math.bas.bg (1998년)
다른 사람들에 의해