计算机编程通识

在这里插入图片描述

编程通识

通用计算机

图灵机

  • 冯诺依曼架构

  • 图灵完备

    • 与图灵机有相同处理问题的能力
  • 方便问题拆解

  • 函数定义在数据和指令基础概念之上

  • 数据+指令使得耦合程度低; 建模容易; 复刻, 不能定义不知道结果的操作; 特殊情况需要考虑, 维护成本高; 解决工程问题; 管理软件, 操作系统; 处理预想到的问题; 映射自由, 破序(破序能力需要受到约束)

  • 约束图灵机编程自由

    • 语言发展的意义

    • 结构化编程

      • 训练一种拆解问题解决问题的模式
    • 面向过程 --> 面向对象 --> 函数式编程

λ演算法

  • 函数式编程
  • 数据和指令建立在函数概念基础上
  • 关系和变化规律使得耦合程度高, 建模复杂; 复刻问题背后的逻辑和规律; 底层涉及到的理论基础门槛高, 修改困难; 解决理论问题; AI开发; 更好体现自然语言逻辑和语法

元胞自动机

  • 生命的游戏

  • 新范式

    • 元胞的初始值
    • 网格的结构
    • 元胞状态变化的规则
  • 群体涌现

  • 编程特点

    • 输入: 初始状态(二维网格)

    • 输出: 终局状态(二维网格)

    • 关系: 状态演化

      • 不受控制
      • 依赖网格结构和元胞之间的规则
      • 无法拆分成基础指令
  • 基本范式

    • 基本语法

      • 元胞初始值
      • 网格结构
      • 元胞状态的变化规则
    • 操作特点

      • 自然演化过程不可控
      • 输入输出已经包括数据和指令的信息
      • 无法对整体的数据和指令信息进行切分
      • 群体特征很难预测
  • 价值体现

    • 遗传算法

      • 规则没办法规约 – 没有办法统一描述

        • λ演算法(单一规则) 无法描述这个过程
        • 图灵机无法简单列举

软件工程发展方向

领域驱动设计

  • 中台
  • 微服务
  • 最稳定的是业务,而非数据库(技术手段)

敏捷开发

开源

软件工程的复杂性

功能和功能之间耦合

人和人之间耦合

过去和未来的耦合

解耦

  • 在不损失功能性的前提下,用性能交换更低的复杂度

  • 工具

    • 模块化

      • 技术驱动;功能与功能之间解耦
    • 分层化

      • 业务驱动;需求和实现之间解耦
    • 模式化

      • 历史和未来之间的解耦

机器语言

源头

  • 图灵机

语言类似的原因

  • 编程语言基于图灵机实现
  • 图灵机包括数据程序

数据

  • 数据本质是对不同的抽象

  • 分类

    • 代表差异程度能进行数学运算的数字
    • 范畴不同的ID,需要人为设定。

参考地址: 非计算机专业学编程难在哪?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值