Alan Turing의 생일을 축하하기 위해 Google 은 기계를 보여주는 기념일 로고 를 게시했습니다 . 기념일 로고는 어떤 기계입니까? 튜링 컴플리트 언어를 표현할 수 있습니까?
고전적인 튜링 기계와는 명백한 차이점이 있습니다. 유한 테이프, 상태 연결 방법의 제약, ...
(오른쪽 상단의 디스플레이는 예상 출력을 보여줍니다.)
가운데의 테이프는 빈, 0 또는 1을 넣을 수있는 사각형으로 나뉩니다. 머리는 사각형 중 하나 위에 위치하고 읽기 및 쓰기에 사용됩니다.
테이프 아래에는 기계를 시작하기 위해 클릭 할 수있는 녹색 화살표가 있습니다. 그 옆에는 두 줄의 원이 있으며 그중 일부는 연결되어 있습니다. 나는 그들을 "상태"라고 부를 것이다.
기기가 시작되면 녹색 버튼 오른쪽의 첫 번째 상태가 켜지고 그 다음에 오른쪽이 켜집니다. 각 상태에는 다음 명령 중 하나가 포함됩니다.
- 공백 = 아무것도하지 마십시오 (다음 상태로 이동)
- 1 = 헤드의 현재 위치에서 테이프에 1 쓰기
- 0 = 헤드의 현재 위치에서 테이프에 0을 씁니다.
- 화살표를 왼쪽으로 = 머리를 한 단계 왼쪽으로 이동
- 오른쪽 화살표 = 머리를 한 단계 오른쪽으로 이동
- 조건 : 헤드 아래의 값이 사각형에 표시된 값과 같은 경우 두 번째 상태 행으로 이동합니다. 그렇지 않은 경우 오른쪽의 다음 상태로 이동
- 왼쪽 점프 : (고정) 이전 상태로 돌아가지만 맨 위 행에서만 [원래는 그 것을 잊었습니다. @Marzio!]
두 번의 점프 (하나는 다른 점프)를 "겹치게"할 수있는 방법이 없습니다. 기계가 상태를 벗어나고 오른쪽에 다음 상태가 없으면 기계가 정지합니다.
(기계가 멈 추면 테이프의 내용이 디스플레이의 내용과 비교되지만 기계의 의도 된 기능의 일부라고 생각하지 않습니다.)