zoukankan      html  css  js  c++  java
  • 图灵机的理解

    在很多地方都看到说现在的计算机都是在图灵机的基础上发展来的,图灵机定义了现代计算机的核心部分,即输入输出设备,cpu,内部存储器。也看多几次关于的图灵机的解释,但是一直理解的不深刻,导致看的时候好像明白了点,但是再遇到时又支队名字有印象,而记不起的图灵机的本质,它究竟是什么。现在写下自己对它的理解,还有百科上对它的解释很详细,也一并记一下。图灵机是为了用机器模拟人的运算过程而实现的,当图灵机从纸带(tape)上读取一个空格的信息,它就会根据控制器当前的状态和控制规则(控制规则由控制器中的program提供),改变控制器的当前状态,应该也可以改变纸带当前空格上的值,然后纸带移动一格。简单看好像以前在离散数学课上学习的状态机,用一个圆圈加数字表示当前状态,根据输入和当前状态转变为下一状态。

    图灵机

        所谓的图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。

    图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作:
    在纸上写上或擦除某个符号;
    把注意力从纸的一个位置移动到另一个位置;
    而在每个阶段,人要决定下一步的动作,依赖于 (a) 此人当前所关注的纸上某个位置的符号和(b) 此人当前思维的状态。
    为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成:
    1.一条无限长的纸带 TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号 表示空白。纸带上的格子从左到右依此被编号为 0,1,2,... ,纸带的右端可以无限伸展。
    2.一个读写头 HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。
    3.一套控制规则 TABLE。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。
    4.一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。参见停机问题
    注意这个机器的每一部分都是有限的,但它有一个潜在的无限长的纸带,因此这种机器只是一个理想的设备。图灵认为这样的一台机器就能模拟人类所能进行的任何计算过程。
    在某些模型中,纸带移动,而未用到的纸带真正是“空白”的。要进行的指令(q4)展示在扫描到方格之上(由 Kleene (1952) p.375 绘制)。
    在某些模型中,读写头沿着固定的纸带移动。要进行的指令(q1)展示在读写头内。在这种模型中“空白”的纸带是全部为 0 的。有阴影的方格,包括读写头扫描到的空白,标记了 1,1,B 的那些方格,和读写头符号,构成了系统状态。(由 Minsky (1967) p.121 绘制)。

     

    存储控制程序 

        虽然计算机技术发展很快,但存储程序原理至今仍然是计算机内在的基本工作原理。自计算机诞生的那一天起,这一原理就决定了人们使用计算机的主要方式——编写程序和运行程序。科学家们一直致力于提高程序设计的自动化水平,改进用户的操作界面,提供各种开发工具、环境与平台,其目的都是为了让人们更加方便地使用计算机,可以少编程甚至不编程来使用计算机,因为计算机编程毕竟是一项复杂的脑力劳动。但不管用户的开发与使用界面如何演变,存储程序控制原理没有变,它仍然是我们理解计算机系统功能与特征的基础。
        说到计算机的发展,就不能不提到美籍匈牙利科学家冯·诺依曼。从20世纪初,物理学和电子学科学家们就在争论制造可以进行数值计算的机器应该采用什么样的结构。人们被十进制这个人类习惯的计数方法所困扰。所以,那时以研制模拟计算机的呼声更为响亮和有力。
        20世纪30年代中期,冯·诺依曼大胆的提出,抛弃十进制,采用二进制作为数字计算机的数制基础。同时,他还说预先编制计算程序,然后由计算机来按照人们事前制定的计算顺序来执行数值计算工作。冯·诺依曼和同事们设计出了一个完整的现代计算机雏形,并确定了存储程序计算机的五大组成部分和基本工作方法。冯·诺依曼的这一设计思想被誉为计算机发展史上的里程碑,标志着计算机时代的真正开始。冯·诺依曼成功将其理论运用在计算机的设计之中,根据这一原理制造的计算机被称为冯·诺依曼结构计算机,世界上第一台冯·诺依曼式计算机是1949年研制的EDVAC,由于他对现代计算机技术的突出贡献,因此冯·诺依曼又被称为“计算机之父”,存储程序控制原理又称冯·诺依曼原理。
    CUI:冯·诺依曼体系机构
    其理论要点如下:
    1、计算机硬件设备由存储器、运算器、控制器、输入设备和输出设备5部分组成。
    2、存储程序思想——把计算过程描述为由许多命令按一定顺序组成的程序,然后把程序和数据一起输入计算机,计算机对已存入的程序和数据处理后,输出结果。
    冯·诺依曼理论的要点是:数字计算机的数制采用二进制;计算机应该按照程序顺序执行。
    根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:
    把需要的程序和数据送至计算机中。
    必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。
    能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。
    能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。
    能够按照要求将处理结果输出给用户。
    为了完成上述的功能,计算机必须具备五大基本组成部件,包括:
    一 输入数据和程序的输入设备
    二  记忆程序和数据的存储器
    三 完成数据加工处理的运算器
    四 控制程序执行的控制器
    五 输出处理结果的输出设备。

  • 相关阅读:
    Object-C支持多继承吗?可以实现多个接口吗?Category是什么?
    Action类为何要继承ActionSupport
    JAVA中的File类
    Oracle中奇怪的【不等于号】
    Oracle中INSTR、SUBSTR和NVL的用法
    【ERROR】Oracle11g两个监听同名进程的故障
    【ERROR】EXP-00091
    【ERROR】while loading shared libraries: /u01/app/oracle/product/11.2.0/lib/libclntsh.so.11.1: cannot
    【js】appendChild
    【js】正则表达式(II)
  • 原文地址:https://www.cnblogs.com/worldtraveler/p/3282077.html
Copyright © 2011-2022 走看看