뒤집을 수없는 (r-Turing 계산 가능) 함수를위한 Lambda 미적분학


19

Axelsen과 Glück (2011)에서 정의한 "r-Turing completeness"개념에 관심이 있습니다. "쓰레기"데이터를 생성하지 않고 가역적 튜링 기계와 동일한 기능 세트를 계산할 수있는 경우 시스템은 r- 튜링 완료입니다 . 이것은 (a) 계산 가능하고 (b) 주입 가능한 모든 함수를 계산할 수있는 것과 같습니다.

계산 가능한 주입 함수의 공간을 계산적으로 탐색하고 싶습니다. 이 작업을 수행하기 위해 "가장 작은"가역 프로그래밍 언어를 찾고 있는데, 이는 람다 미적분이 튜링 계산에 대해 수행하는 r-Turing 계산 능력과 동등한 역할을 할 수있는 것입니다.

나는 사람들이 r-Turing 완전한 것으로 개발하고 입증 한 많은 가역적 언어가 있다는 것을 알고 있습니다. 그러나 이들은 실제 응용 프로그램을 염두에두고 개발되고 있으므로 저자는 최소한의 표현이 아닌 표현적인 기능을 제공하는 데 집중합니다.

그러한 최소한의 비가 역적 언어가 묘사되었는지 또는 그러한 방향으로 연구가 있는지 아는 사람이 있습니까? 저는이 주제에 관한 문헌을 처음 접했기 때문에 쉽게 놓칠 수있었습니다. 대안 적으로, 그러한 언어가 어떻게 만들어 지는지에 대한 통찰력이 있습니까?

아래는 내가 찾고있는 것을 요약 한 것입니다. 람다 미적분학 자체를 수정하여 만들 수 있는지 또는 완전히 다른 유형의 언어를 사용해야하는지 모르겠습니다.

  • r-Turing 완전한 언어-모든 계산 가능한 반전 기능을 계산하고, 반전 기능 만 계산할 수 있습니다
  • 구문과 의미론을 최대한 최소화하십시오. (예 : Lambda 미적분학에는 함수 정의와 응용 프로그램 만 있으며 그 밖의 다른 것은 없습니다.) 구문이나 의미론이 람다 미적분학의 구문이나 의미와 관련 될 필요는 없지만 가능할 수도 있습니다.
  • 프로그램 = 데이터. 즉, 프로그램은 다른 종류의 데이터가 아닌 식에 대해 작동합니다. 이를 통해 프로그램의 출력을 항상 프로그램으로 해석 할 수 있습니다. 이것은 아마도 명령형 언어보다는 기능적이어야 함을 의미합니다.
  • 프로그램을 역으로 변환하는 체계적인 방법이 있습니다. 실제로 역 계산을 수행하는 것보다 더 많은 계산이 필요하지 않습니다. (모든 비가역 언어에는이 속성이 있지만 일부는 없습니다.)

가역적 컴퓨팅에 대한 Axelsen과 Glück의 접근 방식은 Bennett으로 인해 잘 알려진 접근 방식과는 상당히 다르다는 점을 강조해야합니다. Bennett은 (일반적으로 비가 역적) 프로그램이 계산 기록에 대한 정보를 출력과 함께 반환하여 되돌릴 수 없게 만듭니다. r- 튜링 완성도는 추가 출력 없이 주입 기능을 계산할 수있게 하는 것입니다. 베넷의 의미에서 뒤집을 수있는 "가역 람다 미적분학"의 변형이라고하는 여러 가지가 있습니다. 이것들은 제가 찾고있는 것이 아닙니다.


r-Turing complete는 비교적 새로운 defn처럼 보이고 개념을 도입 한 사람들과 다른 저자의 Turing complete & 해석 / 분석과 동일하지 않다는 증거를 보는 것이 도움이 될 것입니다. 가능)
vzn

답변:


4

나는이 분야에 익숙하지는 않지만, 동형 사형의 언어로 제한한다는 아이디어에 기초하여 프로그래밍 언어 커뮤니티에서 관심을 가질만한 최근 연구가있다. 특히, 당신은 볼 수 있습니다

  • Roshan P. James, Zachary Sparks, Jacques Carette 및 Amr Sabry의 분수 유형

Amr Sabry의 웹 사이트 에서 찾을 수있는 다양한 관련 서적을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.