모든 프로그램을 기계적으로 구현할 수 있습니까?


13

Microsoft Word의 단일 목적 (Touring이 아닌 완전한) 기계적 구현을 ​​구축 할 수 있습니까? 반복자, 1 차 함수, 프로그래밍 기술의 전체 영역과 같은 것을 구현할 수 있습니까? 기어 및 기타 기계 부품이 데이터 구조 또는 프로그램 객체를 나타낼 수 있습니까? 특정 시점에서 이것은 일반적인 목적의 Turing- 등가 기계를 구축해야하거나 각 기능, 변수 등이 플라이휠 및 / 또는 기어, 래칫 형태의 고유 한 기계적 구조를 가질 수 있습니까? 요약하자면 표준 컴퓨터의 소프트웨어가 기계적인 청사진으로 컴파일 될 수 있는지 궁금합니다.


필자는 Microsoft Word를 실행하는 작업은 Turing Machine에서 실행할 필요조차 없다고 생각합니다. Word의 모든 절차는 주 이벤트 루프 외에 (아마도 버그가있는 경우 제외) 종료해야합니다.
Realz Slaw


1
이것이 가능할 것 같으면 컴파일러 역할을하는 비 완료 완전 머신을 생성하여 소스 코드에서 다른 머신에 대한 청사진을 생성 할 수 있어야합니다. 튜링이 완료되었거나 완료되지 않은 기계.
Nick Johnson

@Realz Slaw : I / O, VBA 매크로 또는 확장을 포함하면 안됩니다. 예를 들어, 무한 Word 문서를 제공하면 Word에서 불만을 제기 할 것입니다. 아마도 한계에 도달 할 수있는 기본 OS 일 것입니다.
reinierpost

@reinierpost이지만 각 루틴을 완료 할 필요는 없습니다. 그들은 아마도 종결되거나 그렇지 않을 것입니다. 즉, 당신이 그것을 무한한 문서를 제공했다면, 아마 종료되지 않을 것입니다. 내 요점은 우리가 만드는 대부분의 프로그램은 Turing 완전한 언어를 사용할 필요가 없다는 것입니다. 우리 는 무한한 데이터가 주어지면 종료를 증명할 수 있고 무한 데이터가 주어지면 종료하지 않을 수있는 프로그램으로 제한 할 수 있기 때문에 ; 이 작업을 수행 할 수 있으면 Halting Problem에 문제가 없습니다. TLDR; 루틴이 종료되었는지 여부를 입증 할 수 없으면 끔찍한 프로그래머입니다.
Realz Slaw

답변:


23

그렇습니다. 방법은 다음과 같습니다.

기본적으로 회로를 원하는 모든 프로그램을 컴파일 할 수 있습니다. 예를 들어, 프로그램을 회로로 컴파일하는 방법을 보여주는 Dan Geohica와 그의 협력자들이 Geometry of Synthesis에 관한 작업을 참조하십시오.

  1. 댄 R. 지카 합성의 기하학 : VLSI 디자인에 대한 체계적인 접근
  2. Dan R. Ghica, Alex Smith. 합성 II의 기하학 : 게임에서 지연에 둔감 한 회로까지
  3. Dan R. Ghica, Alex Smith. Synthesis III의 지오메트리 : 타입 추론을 통한 리소스 관리.
  4. Dan R. Ghica, Alex Smith, Satnam Singh. 합성의 형상 IV : 아핀 재귀를 정적 하드웨어로 컴파일.

그런 다음 회로는 엔지니어링에서 반복해서 다시 나타납니다. John Baez는 이번 주 Finds 288-296에서 개념의 비유에 대한 큰 표를 제공하고 많은 연결을 수행합니다. 따라서 Dan의 컴파일러가 생성하는 회로 다이어그램을 원한다면 기계식 또는 유압식 시스템으로 인스턴스화 할 수 있습니다!

╔══════════════════════════════════════════════════════════════╗
║                 displacement  flow      momentum     effort  ║
╠══════════════════════════════════════════════════════════════╣
║ Mechanics      position      velocity  momentum     force    ║
║ (translation)                                                ║
║                                                              ║
║ Mechanics      angle         angular   angular      torque   ║
║ (rotation)                   velocity  momentum              ║
║                                                              ║
║ Electronics    charge        current   flux         voltage  ║
║                                        linkage               ║
║                                                              ║
║ Hydraulics     volume        flow      pressure     pressure ║
║                                        momentum              ║
╚══════════════════════════════════════════════════════════════╝
  1. http://math.ucr.edu/home/baez/week288.html
  2. http://math.ucr.edu/home/baez/week289.html
  3. http://math.ucr.edu/home/baez/week290.html
  4. http://math.ucr.edu/home/baez/week291.html
  5. http://math.ucr.edu/home/baez/week294.html
  6. http://math.ucr.edu/home/baez/week296.html

12
결론 : 소프트웨어 특허는 의미가 없습니다.
András Salamon

1
질문하는 방법에 대한 환상적인 대답은 간신히 물어 보았습니다. 추가 된 차트에 감사드립니다!
Alex Nye

5

실제 사례로는 보스턴 과학 박물관 (원래 MIT 학생들이 만든 팀)의 Tinker Toys로 만든 Tic Tac Toe 컴퓨터가 있습니다. 물론 이것은 Microsoft Word보다 훨씬 간단합니다.

다음 은 Scientific American의 1989 년 기사입니다.

레고 로 만든 튜링 머신도 있습니다. (이것은 실제로 컴퓨터를 사용하여 전기를 사용하기 때문에 약간의 속임수이지만, 이것을 피하기 위해 디자인을 수정할 수 있다고 생각합니다.) 고철 등.


나는 기사와 레고 머신을 즐겼다.
Alex Nye

1

하드웨어에서 편집기를 작성하는 예를 구체적으로 설명하기 위해 운영 체제와 편집기를 모두 하드웨어로 구현 한 초기 실험용 컴퓨터가 구축되었습니다. 나중에 편집기가 소프트웨어로 대체되어 필요한 하드웨어가 크게 줄었습니다. 이것은 컴퓨터 아키텍처와 역사에 관한 책에서 설명되었습니다. 불행히도 이름을 잊어 버렸고 원래 소스를 추적 할 키워드를 찾지 못했습니다.

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