编程基础

  • > 程序:

    一组能让计算机识别和执行的指令

  • > 电子计算机:

    能够执行程序的机器

  • > 现代计算机:

    艾伦。麦席森。图灵(Alan Mathision Turing,1912年6月23日--1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。图灵提出 的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础

    冯。诺依曼著名匈牙利裔美籍犹太人数学家、计算机科学家、物理学家和化学家,数字计算机之父。他提出了二进制作为数字计算机的数制基础,计算机应该按照顺序执行,计算机应该有五大部件。


  • > 计算机语言:

    人与计算机之间交互的语言

  • > 机器语言:

    一定位数组成二进制的0和1的序列,称为机器指令。机器指令的集合就是机器语言;
    与自然语言差异太大,难学,难懂,难写,难记,难查错

  • > 汇编语言:

    用一些助记符号替代机器指令,称为汇编语言。ADD A,B指的是将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中;
    汇编语言写好的程序需要汇编程序转换成机器指令;
    汇编语言只是稍微好记了些,可以认为就是机器指令对应的助记符。只是符号本身接近自然语言


语言分类

  • > 低级语言:

    面向机器的语言,包括机器语言、汇编语言
    不同的机器不能通用,不同的机器需要不同的机器指令或者汇编程序

  • >高级语言:

    接近自然语言和数学语言的计算机语言;
    高级语言首先要书写源程序,通过编译程序把源程序转换成机器指令的程序;
    1954年正式发布的Fortran语言是最早的高级语言,本意是公式翻译;
    人们只需要关心怎么书写源程序,针对不同的机器的编译的事交给编译器关心处理


高级语言的发展

  • > 非结构化语言:

    编号或标签、GOTO,子程序可以有多个入口和出口
    有分支、循环

  • > 结构化语言:

    任何基本结构只允许是唯一入口和唯一出口
    顺序、分支、循环、废弃GOTO

  • > 面向对象语言:

    更加接近人类认知世界的方式,万事万物抽象成对象,对象间关系抽象成类和继承;
    封装、继承、多态

  • > 函数式语言:

    古老的编程范式,应用在数学计算、并行处理的场景。引入到了很多现代化高级语言中;
    函数是“一等公民”,高队函数


程序Program

  • > 程序:

    算法+数据结构=程序
    数据一切程序的核心
    数据结结构是数据在计算机中的类型和组织方式
    算法是处理数据的方式,算法有优劣之分

  • > 写程序难点:

    理不清数据
    搞不清处理方法
    无法把数据设计转换成数据结构,无法把处理方法转换成算法
    无法用设计范式来进行程序设计
    世间程序皆有bug,但不会debug


Python的语言类型

  • > Python是动态语言、强类型语言
  • > 静态编译语言

    实现声明变量类型,类型不能再改变;
    编译时检查

  • > 动态编译语言

    不用事先声明类型,随时可以赋值为其他类型
    编程时不知道是什么类型,很难推断

  • > 强类型语言

    不同类型之间操作,必须先强制类型转换为同一类型

  • > 弱类型语言

    不同类型间可以操作,自动隐式转换