计算机基础知识
编程基础
程序
一组能让计算机识别和执行的指令
现代计算机
冯诺依曼体系:
CPU :运算器和控制器组成
CPU中还有寄存器和多级缓存Cache(缓存寄存器内容)
CPU支持指令集X86,64等
CPU粘性或绑定主要考虑到的因素之一是缓存(一级缓存二级缓存高,性能也高,
三级缓存一般是多核CPU共享)
运算器:完成各种算数运算、逻辑运算、数据传输等数据加工处理(处理寄存器中的数据)
控制器:控制程序的执行
存储器:用于记忆程序和数据,如内存
输入设备:将数据或者程序输入到计算机中,例如键盘、鼠标
输出设备:将数据或程序的处理结果展示给用户,例如显示器、打印机等
磁盘---内存 --CPU ; CPU--内存--磁盘
磁盘:持久化存储的工具
计算机语言
机器语言:
一定位数组成二进制的0和1的序列,称之为机器指令。
机器指令的集合就是机器语言
汇编语言:
用一些助记符号代替机器指令称之为汇编语言,通过汇编器,
汇编成机器指令
高级语言:
接近自然语言和书写语言的计算机语言,通过编译器程序
把源程序转换成机器指令的程序
最早的高级语言:1954年正式发布的Fortran语言,
本意是数学公式翻译。
1, C,C++等语言的代码需要本地编译
(本地CPU系统相关,兼容指令集,无法跨平台)
2, Java,Python,C#的源代码需要被解释器编译成中间代码
(Bytecode 字节码),在虚拟机上运行(一次编译跨平台执行)
高级语言的发展
非结构下语言:
有编号或标签,GOTO,子程序可以有多高入口和出口
有分支,循环
结构化语言:
任何基本结构只运行是唯一入口和唯一出口
顺序,分支,循环,废弃GOTO
面向对象语言:
更加接近人类认知世界的方式,万事万物抽象成对象,
对象间关系抽象成类和继承
**三要素:封装,继承,多态**
函数式语言:
古老的编程范式,应用在数学计算、并行处理的场景。
引入到很多现代高级语言中。
函数是‘一等公民’,高阶函数
程序
程序 = 算法 + 数据结构
数据是一切程序的核心
数据结构是数据在计算机中的类型和组织方式
算法是处理数据的方式,算法有优劣之分
Python 解释器
官方CPython:
C语言开发,最广泛的Python解释器
IPython:
一个交互式、功能增强的CPython
PyPy:传说比CPython快很多
Python语言写的Python解释器,JIT技术,动态编译Python代码
Jython
Python的源代码编译成Java字节码,跑在JVM上
IronPython
与Jython类似,运行在.Net平台上的解释器,
Python代码编译成.Net的字节码