计算机速成课 第十一集 编程语言发展史

2021/12/19 12:49:28

本文主要是介绍计算机速成课 第十一集 编程语言发展史,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 语言转换的例子

  • 举例:有这样一条指令,它在内存地址是 0: 0010 1110
    • 前四位是操作码,简称 OPCODE
    • 前 4 位 0010 代表 LOAD_A 指令,即把值从内存复制到寄存器 A
    • 后 4 位 1110 是内存地址,1110 是十进制的 14
    • 所以,这 8 位表达的意思是:读取内存地址 14,放入寄存器 A
  • 它们只是使用了两种不同的语言,就好像是英语和摩尔斯码的区别,只是他们的编码方式不同
    • 摩尔斯码只有点和线,计算机能处理二进制,二进制是处理器的「母语」
    • 事实上,它们只能理解「二进制」,这叫「机器语言」或「机器码」

2. 操作码表

  • 在计算机早期阶段,必须使用机器码写程序
    • 具体来讲,先在纸上用英语写一个「高层次版」,这种对程序的高层次描述,叫「伪代码」
    • 纸上写好后,用「操作码表」把伪代码转换成二进制机器码,然后可以把程序喂入计算机并运行

3. 助记符

  • 出现原因:人们厌烦了上述的操作
  • 1940 - 1950 年代,程序员开发出一种新语言,更可读,更高层次,每个操作码分配一个简单的名字,叫「助记符」
  • 「助记符」后面紧跟数据,形成完整指令
  • 举例:与其用 0 和 1 写代码,程序员可以写 “LOAD_A 14”,这样更加容易理解

4. 汇编器

  • CPU 不知道 LOAD_A 14 是什么,它不能理解文字,只能理解二进制
  • 程序员想了一个技巧,写二进制程序来帮忙,它可以读懂文字指令,自动转成二进制指令,这种程序叫做「汇编器」(assembler)
    • 作用:读取「汇编语言」写的程序,然后转成「机器码」
    • “LOAD_A 14” 是一个汇编指令的例子
    • 随着时间的推移,汇编器有更多的功能,让编程更容易,其中一个功能是自动分析 JUMP 地址
      • 汇编器不用固定跳转地址,而是让你插入可跳转的标签
      • 当程序被传入汇编器,汇编器会自己搞定跳转地址
      • 程序员可以专心编程,不用管底层细节,隐藏不必要细节来做更复杂的工作
  • 汇编只是修饰了一下机器码,一般来说一条汇编指令对应一条机器指令。所以,汇编码和底层硬件的连接很紧密
  • 汇编器仍然强迫程序员思考,用什么寄存器和内存地址

5. 哈佛 1 号计算机

  • 在 1944 年建成,帮助盟军作战

6. 算数语言版本 0

  • 战后,Hopper 设计了一门高级语言,叫「算数语言版本 0」,简称「A-0」
  • 汇编与机器指令是一一对应的,但是一行高级编程语言,可能会转成几十条二进制指令
  • 为了做到这种复杂的转换,Hopper 在 1952 年创造了第一个编译器
    • 编译器专门把高级语言转换成低级语言,比如「汇编」或「机器码」
  • A-0 的代码没有遗留下来

7. 变量

  • 代表内存地址的抽象

8. FORTRAN

  • 名字来自「公式翻译」
  • 由 IBM 在 1957 年发布,主宰了早期计算机编程
  • FORTRAN 写的程序比等同的手写汇编代码短 20 倍,然后 FORTRAN 编译器会把代码转成机器码
  • 因为能让程序员写程序更快,所以成了一个更经济的选择。运行速度满一点点,编程速度大大加快
  • 最初 FORTRAN 代码只能跑在 IBM 计算机上

9. 数据系统语言委员会和 COBOL

  • 1950 年代,大多数编程语言和编译器只能运行在一种计算机上,如果升级电脑,可能要重写所有代码,
  • 1959 年,工业界、学术界、政府的计算机专家组件了一个联盟,「数据系统语言委员会」,Grace Hopper 担任顾问,开发一种通用编程语言,可以在不同机器上通用
  • 最后诞生了一门高级,易于使用,「普通面向商业语言」,简称 COBOL

10. 1959 年,计算机黄金时代开始

  • 1960 年代的语言
    • ALGOL
    • LISP
    • BASIC
  • 1970 年代
    • Pascal
    • C
    • Smalltalk
  • 1980 年代
    • C++
    • Objective-C
    • Perl
  • 1990 年代
    • Python
    • Ruby
    • Java
  • 新千年
    • Swift
    • C#
    • Go
  • 有些语言现在还存在
    • 浏览器可能是 C++ 或者 Objective-C
  • 新的语言在不断诞生
    • 使用更聪明的抽象,让某些方面更容易或更强大
    • 或利用新技术和新平台带来的优势,让更多人能快速做出美妙的事情

11. 圣杯

  • 很多人认为,计算机的圣杯是直接使用英文,直接对计算机说话,然后它会理解并执行
  • 这种智能系统目前只存在于科幻小说


这篇关于计算机速成课 第十一集 编程语言发展史的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程