大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。
当前系列: 编程语言 修改讲义


从二进制到汇编

复习:计算机本质上只能理解二级制

那么,最早的编程语言就是二进制的010101010101111……这又被称之为机器码(计算机能够直接读懂的代码)

当时的代码就使用打孔纸带作为载体:

简直就是,太反人类了……

指令(比如加减)和数据(比如986)混在一堆。

大家想想,这样做不行,于是产生了汇编语言:

  • 数据:还是10/16进制
  • 指令:使用英文(助记符),比如:
    • 01100111 -> MOV
    • 00011010 -> ADD

从汇编到二进制,只需要一个简单的“翻译”,程序员本质上还是要一步一步的指令计算机,完成非常底层的CPU/内存操作。

PS:今天再学汇编,价值非常低;而且不如先学C,再反推汇编


C语言

1972年,在B语言的基础上诞生了C语言——这是一个划时代的语言,今天很多的主流编程语言,都基础了它的代码风格,被称之为:C系(家族)语言。

大致来说,它的风格体现在:

  • 相同/类似的核心关键字:if...else(分支)、for/while(循环)
  • 区分不同的数据类型:数值、字符串、bool值……
  • 引入了函数,使用圆括号()界定参数,花括号{}
  • 还有其他一些通用的运算符号:加减乘除(+-*/),取余(%),大于(>)小于(<)等于(==)不等于(!=)
#include <stdio.h>
 
int main(void)
{
    int number = 0;

    printf("enter a number:");
    scanf("%d", &number);

    if (number % 2 == 0) {
        printf("%d is even number\n", number);
    }
}

C语言就已经是高级语言了:

  • 人类可读:类似于自然语言(但比自然语言更精确),主要是按人脑的思维模式编写代码
  • 远离硬件,CPU 不可读:CPU能读的就是指令集……

所以,C语言编写的代码,就需要

编译

开发人员写出来的代码(如上所示),就被称之为:源代码(souce code),源代码通常保存为文本文件(复习)

因为计算机无法直接执行源代码,所以需要将源代码文件进行处理,将其变成二进制文件,这个过程,就被称之为编译

PS:编译(compile,区别于解释)的本质是“生成可独立执行(不一定是机器码)的编译后文件”,编译解释的区别详见后文)

所谓开源

只有当你有了源代码的时候,你才能方便的修改代码(否则就只能使用非常规的手段:反编译)。

  • 开源(open source):开放源代码,你能够看到文本格式的源代码,甚至予以修改……,比如:Linux
  • 闭源(close source):只给你编译后的可执行文件,不给你源代码,所以你只能用,不能改,比如windows/office/Photoshop/CAD^

详见:逸闻史话:开源,改变世界

额外的好处

不要以为编译是被动的、不得已的,实际上编译能带来了额外的好处:

  • 可移植(portable):一次编写,四处编译(不同的操作系统需要不同的编译器

  • 编译时检查(check):有错误,编译就通不过,会提示开发人员改正;而不必等到运行的时候(运行时,runtime)才暴露出问题。

学习笔记
源栈学历
大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。

作业

觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 编程语言 中继续学习:

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码