前言:为什么编写此文
1. 根据费曼的学习方法
Pretend to teach your topic to a classroom. Make sure you're able to explain the topic in simple terms. 假装你在教室里向学生解释这个主题,用尽量简单的词汇去描述它,力求学生能听懂。(听众可以是人,也可以是你的毛绒玩具)。
再将学习的内容复习一遍可以加深理解。
2. 本课程是全英文授课,或许会涉及一些中文圈子没有涉及的新知识,本人卑微的起到将英文知识搬运到中文社区的作用,助力祖国发展!(强行赋予意义)。
第一讲:编程介绍
1. 计算机硬件
计算机的主要构成:
1. CPU:执行你的程序
2. 输入设备
3. 输出设备
4. 主存储器:存储数据,快,临时存储
5. 二级存储:慢而大,永久性存储
内存/存储器
原文为“Memory/Storage”。在IT应用行业中,这两个单词代表的都是“计算机内部存储空间”的意思,Memory通常翻译成“内存” …… storage(存储器)。(摘自百度知道)
- 高速缓存(High speed cache)
- 内置RAM(Internal RAM)
- 内置ROM(Internal ROM)
- 外置RAM(External RAM)
- Flash(如U盘)
- 硬盘
2. 冯·诺依曼结构
现代的计算机架构由冯·诺依曼(John Von Neumann)提出
控制单元(Control Unit)用于从内存中取出指令
执行单元(Arithmetic/Logic Unit)包含可以执行指令的电子电路,通过与门、或门进行二元算数运算
主要的CPU厂商:Intel、AMD、ARM
3. 计算机的理论基础
计算机的理论基础由艾伦·图灵(Alan Turing)建立,他是理论计算机科学之父、人工智能之父。他提出了可计算性理论(Computability theory)以及图灵测试(Turing Test)。
4. 计算机实际上是如何“理解”的?
今天使用的计算机实际上只能“理解”二进制数(0和1)。计算机用典=电压高低来表示0和1,而这种表示分为NRZL和NRZI两种。用二进制代码表示的命令称为“计算机语言”。
NRZL与NRZI
5.编程语言
机器语言(计算机语言)(二进制)
汇编语言
汇编语言(Assemnly Language)是一种低级编程语言(low-level programming language)。汇编语言与机器语言的指令(二进制代码的指令)一般有着一一对应的关系。每种汇编语言都分别对应着特定的计算机架构。汇编语言通过汇编器(assembler)被转化为可执行的二进制代码。
C语言
C语言由丹尼斯·里奇(Dennis Ritchie)于1969-1973年间在贝尔实验室创制。它是早期高级语言(high-level language)之一,是一种介于汇编语言与其他高级语言之间的语言,在底层内存操作上有强大的功能性,在所有高级语言中运行效率最高。C语言在底层应用中广泛使用,如编写操作系统、嵌入式编程、超级计算机等。
FORTRAN语言(公式变换语言)
(FORTRAN语言是世界上第一个被正式推广使用的高级语言,是Formula Translation的缩写,意为“公式翻译”)
C++
C++由本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)于1979年在贝尔实验室创制。C++继承了C语言的主要特性,但C++是一种面向对象的编程语言,有利于代码复用。高效、有强大的底层内存操作性,但仍然有赖于运行平台。