百科问答小站 logo
百科问答小站 font logo



能否仅依靠机械(不包括电路)实现可编程图灵完备的通用计算机? 第1页

  

user avatar   tuskai 网友的相关建议: 
      

不知道你说的不包括电路是不是指狭义上用电驱动的逻辑电路

如果是的话,只要能做到有规律的状态变化(可触发)+储存不变的状态,很多东西都可以做出逻辑门,搭建逻辑电路, 拼出通用计算机

比如日本园林里那种装水的竹筒(惊鸟器,此处应有图),装一部分水时竹筒平衡,装满水时水会流出去,竹筒一端敲在石头上,这就可以表示1和0,设计下杠杆和容器的长度和位置就能做出或与非。水流导致变化,竹筒储存状态,流出去的水如果能没有损耗的(或者在精度允许的范围内)流到下一个容器里,信息就可以传递。

Minecraft出红石电路前,也有人用沙子做逻辑电路

但是精度/速度/成本摆在那里,做出来的东西如果没有笔算和心算合算,就没什么意义


为了防止有人说我不懂强答,贴两个我用excel基础公式拼出的游戏(机),里边有输入输出,有计算储存,虽然只能运行指定的游戏,但理论上能改成通用计算机(excel先天限制)


user avatar   yizhi-in-computer 网友的相关建议: 
      

不但能,而且早在80年前就有人造出来了。下面有请来自德国的Z1——世界上第一台二进制可编程计算机,纯机械的哦。它由德国的土工程师康拉德·祖思(Konrad Zuse)于1938年建成,没有团队,没有参考(战时各国不可能互通这方面的有无),凭一己之力在父母家的客厅里造了出来。

可惜的是,这台机器从未投入实际使用,连同图纸毁于1944年1月30日的一场空袭。还好,1987~1989年,在西门子公司的资助下,祖思又亲自重建了Z1,现藏于德国技术博物馆。

组成结构

它由成千上万的金属片和金属杆组成,靠电动马达驱动运转,从侧面看长下图这样。可以看到下层一列列整齐的金属杆支撑着上层一叠叠整齐的金属片,像极了建筑工地上正在打地基的楼房胚子。

从顶上看长这样:

它通过穿孔带(指令)和机械面板(数据)实现输入输出,虽然没有任何电子部件,冯·诺依曼结构的五大模块却样样齐全。要知道Z1于1938年建成,而冯·诺依曼结构在1945年才提出。

穿孔带是废弃的35mm电影胶卷,带上每行有8个孔位,即指令编码长8位,前2位表示存储器读写指令,后6位表示存储地址,或者仅用前3位表示四则运算和数据输入输出指令。因此,共支持读存储器、写入存储器、加法运算、减法运算、乘法运算、除法运算、数据输入和数据输出8种指令。

由于使用6位表示存储地址,因此Z1的存储器一共可以存放 (即64)条数据,用计算机的专业术语讲,就是存储容量为64字(此处说的是Z1复制品,原Z1的存储容量为16字)。

厉害的是,它居然是二进制的,同时代包括此前两百年间的机械计算机无一不是十进制的(通常用齿轮的10个齿表示0~9),甚至大名鼎鼎的电子计算机ENIAC都是十进制。Z1的浮点数表示法如今已是IEEE标准。

那么如何靠机械实现二进制运算呢?

靠的是金属片和金属杆在水平面内4个方向(前后左右)的移动。下面给出了一组基础零件的作用关系,为便于说明,附加了直角坐标系,所有平移可描述为沿x轴或y轴正负方向的移动。金属杆穿过金属片A、B、C上的孔洞,将4者的平移关联起来,其中A和B在马达的动力下主动平移,进而带动C和金属杆的平移。

A可沿y轴正负方向平移,正向平移之后的状态表示0(如图(a)所示),负向平移之后的状态表示1(如图(b)所示)。A在自身移动的同时会带动金属杆也沿着y轴平移,B上的孔洞是L形的,金属杆在A的带动下,在B上y轴方向的孔洞段内移动。

  1. 图(a)中,A处于位置0,金属杆位于B孔洞的折角处,此时B沿x轴负方向移动,将无法带动金属杆,C不发生位移;
  2. 图(b)中,A处于位置1,金属杆位于B孔洞的顶端,此时B沿x轴负方向移动,将带动金属杆也沿x轴负方向移动,随之,C在金属杆的带动着也沿x轴方向移动。

通过这一过程,A将便将自己的二进制状态传递给了C。基于这一基本结构,祖思成功地实现了机械式的逻辑门。

通用性

Z1是可编程的,具有一定的通用性,但图灵等效还说不上,毕竟图灵的论文是1936年才发表的,祖思也正好是这一年开始设计Z1(倒也挺巧)。图灵等效不是说说就算的,要靠严格的数学证明。Z1和它的后继者——1941年的Z3(机电式计算机)有着相同的体系结构,而Z3在1997年被柏林自由大学的Raúl Rojas教授证明是图灵等效的(详见论文《How to Make Zuse's Z3 a Universal Computer》),可见Z1已经很接近图灵等效了。具体差在哪,可以看看Raúl Rojas的论文《Konrad Zuse's Legacy:The Architecture of the Z1 and Z3》。

至少,在目标明确的情况下,机械计算机完全可以做成图灵等效的。

扩展阅读

说到Raúl Rojas教授,可谓是研究当代祖思机的头号专家,他专门建了一个Z1及其后续型号的线上资料库,上面有Z1复制品的3D全景照片,可以用鼠标拖拽缩放,变换角度细细观察,本文一些插图就截于此。

想深入研究的可以去看看他的论文,其中关于Z1最重要的一篇《The Z1:Architecture and Algorithms of Konrad Zuse’s First Computer》在征得他同意的情况下被我翻译成了中文,现在贴到知乎:

如果觉得论文太硬可以看看我系统介绍祖思机的文章,也是本篇回答内容的主要来源:




  

相关话题

  中文表达比英文简洁,中文编程能否做到比英文编程更高效? 
  你见过最烂的代码长什么样子? 
  如何优雅地同时使用 Linux 和 Windows 两个系统? 
  学计算机对女生友好吗? 
  为什么char *a="xxxxx", *b="xxx"; strcpy(a, b);的用法不行? 
  《奥日与黑暗森林》这样的游戏主要需要哪些技术,几个人的小团队能实现吗? 
  “C++”读作「C 加加」,为什么“C#”不能读作「C 井」呢? 
  有什么在线的编程游戏? 
  人脑的图形处理能力相当于什么显卡? 
  学C#后还有必要学C语言吗? 

前一个讨论
Excel 有多强大?你用 Excel 做的最酷的事情是什么?
下一个讨论
请问在女票枯燥的考研备考过程中,怎么给女票一些不一样的惊喜或者仪式感来缓解压力?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利