首页 > 技术文章 > 计算机思维导论-冯诺依曼计算机程序及执行

jly1 2019-12-15 23:36 原文

高级程序及其执行

如何实现一个基本的计算系统?
已知的基本事实:
加减乘除运算都可以转换为加减法运算来实现
加减法运算又可以转化为逻辑运算来实现
为了让外界操纵这些基本动作与或非, 我们就需要一些指令, 通过这些指令就可以调用这些基本动作, 指令: 控制基本动作的命令, 当我们有了指令, 就可以通过组合, 就可以实现一些复制的动作, 这些组合就可以看做是程序.
拆解程序中的复制动作--> 基本动作 , 这就是程序执行机构
执行机构, 自动解释程序中的各种组合, 并按照次序调用指令, 实现基本动作, 并予以执行
所以:
基本动作---> 程序 ----> 程序执行机构就构成了一个基本的计算机系统
在将低层次的抽象为更高层次的计算机结构
我们执行了 2+3 ---->程序编译系统 ----> 低层次的计算机系统(异或) ---> 机器指令0-1 ---> 执行
运算组合式通过嵌套来实现复杂的计算过程
*(+ 2 4) (-6 3)
组合越来越复杂的时候, 可以通过抽象, 将复杂的式子命名为一个名字, 这样在计算中就可以使用名字来进行计算对象来替换名字
define height 2
height * 2
define pi 3.14
define redius 10

  • pi redius
    define circumference (* pi radius)
    我们也可以命名新运算符和构造新的运算符以及执行以过程替代新运算符
    define (suqare x) (*x x)

    如何计算:两种计算过程, 一种是先计算, 在带入, 还有一种是先先带入, 在计算
  • 带有运算条件的组合
    condi(> x 0 -x)

    任何语言都是基于这种思想来构造的, 所不同的只是他们的语法和格式
  • 递归的概念:
    为什么需要递归?
    不断的重复执行相同的动作, 这就可以使用递归来表达

    自相似事物的无限重复构造---递归
    数学中的递推式

    数学归纳法--> 证明与自然数

    递归是一种表达相似性对象和动作无限构造的方法
    递归基础, 定义, 构造和计算的起点, 直接给出
    递归步骤:由前n项定义n+1项, 由低阶k<n, 构造高阶f(n+1)
  • 原始递归函数
    接受自然数x, 产生自然数的一个映射, 为f(x)

    给定原始递归函数f(x1, x2,,,xk) 和 k个递归函数g1,.....gk, 则f 和 g1, ...gk的复合函数是H


    理解: 对于每一个函数, 我们可以作为参数, 传递到H函数中, 这样就可以构成一个系统, 对于系统里的每一个构建都是一个函数, 这样就可以实现一个复杂的系统

    递归的思想:
    一个是从前往后计算 --迭代/递推 这种是地递归的搜索一种路径, 实现从前往后的计算, 这个路径是可以从前往后可以找到的, 但是有些递归是不存在从前往后的计算, 也就是前面的递归不需要依赖后面的结果,但是可以用递归的思想来做, 比如这个阿科玛函数, 计算只能是递归的计算, 由后往前计算
    迭代:可以自递归基础开始, 从前往后依次计算 或者直接计算
    递归: 递归可以从前往后计算, 也可以从后往前进行计算, 所以递归是一种很重要的程序构造手段, 递归包含了迭代
    可以通过相关的训练, 可以了解相关的思想
  • 运用低估和迭代:
    运行递归进行无限的自相似的定义, 对规则进行定义
    首先, 给出递归的基础表达式
    再给出递归的步骤
    如F,G是一个算术表达式,

推荐阅读