계산 가능한 bijective 기능 만 구현할 수있는 프로그래밍 언어?


10

f 가 계산 가능한 형용사 함수 인 경우에만 함수 구현 (또는 표현) 할 수있는 프로그래밍 언어 (또는 논리)가 있습니까?f:NNf


누군가는 종료 프로그램 만 허용하는 언어를 만드는 것이 불가능하다는 것을 나에게 증명했습니다. 당신이 질문하는 것은 매우 유사하기 때문에, 아니오라고 생각합니다.
FUZxxl

1
그런 프로그래밍 언어가있을 것 같지 않습니다. 강제로 적용하려고 시도 할 수는 있지만 최소한 복잡하고 고통스럽지 않으면 서 정렬과 같은 간단한 작업을 수행 할 수는 없습니다.
Luke Mathieson

@FUZxxl 이것은 많은 종료 프로그램을 캡처하지 않습니다. 실제로 f (x) = 1 함수조차도이 언어로 표현할 수 없습니다. 또한 모든 함수가 총 함수이기 때문에 이러한 종류의 함수가 총 함수 프로그래밍으로 캡처되는 느낌이 있습니다.
Chao Xu

@ FUZxxl, 나는 그것이 옳다고 생각하지 않지만 그러한 언어는 제한적이어야합니다. 예를 들어, 유한 결정 론적 오토마타에 해당하는 언어는 종료되도록 보장되지만 계산할 수있는 범위는 극히 제한됩니다.
jmite

@FUZxxl, 그러한 진술의 세부 사항이 중요합니다. 모든 프로그램이 종료되는 프로그래밍 언어를 쉽게 디자인 할 수 있습니다. 계산 가능한 모든 기능을 표현할 수있는 언어를 디자인하는 것은 다른 문제입니다.
Vijay D

답변:


9

그런 언어는 없습니다.

그러나 Boomerang을 살펴보십시오 . 문자열 사이의 형용사를 쓰는 언어입니다. 지도의 클래스가 얼마나 넓은지를 알 수는 없지만 조금 검색하면 찾을 수 있다고 확신합니다.

NN

f0,f1,f2,

g:NNg(2k)g(2k+1)fk(2k)

  • fk(2k)=2kg(2k)=2k+1g(2k+1)=2k
  • fk(2k)2kg(2k)=2kg(2k+1)=2k+1

kNgfkg(2k)fk(2k)g


2k2k+1g(k)=fk(k)+1

fk(k)+1

g

초기 진술이 잘못되었습니다. 문헌에는 그러한 언어가 많이 있습니다.
Nathaniel

반면에 당신의 증거는 합법적입니다. 어쩌면 나는 어떻게 든 혼란스러워합니다. 나는 여기에서 무슨 일이 일어나고 있는지 알아 내기 위해 Axelsen과 Glück의 논문 (내 대답 참조)을주의 깊게 읽어야합니다.
Nathaniel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.