发展历程

机器语言 → 汇编语言 → 高级语言

  • 机器语言:二进制指令,直接由硬件执行,效率高但可读性差
  • 汇编语言:使用助记符代替二进制,需经汇编器转换为机器码
  • 高级语言:接近自然语言和数学表示,需经编译器或解释器转换为机器码

语言分类

命令式 vs 声明式

  • 命令式:描述 ” 如何做 “,以语句序列改变程序状态 重点
    • 过程式:C、Pascal
    • 面向对象:Java、C++
  • 声明式:描述 ” 做什么 “,不显式指定控制流 重点
    • 函数式:Haskell、Lisp
    • 逻辑式:Prolog

静态类型 vs 动态类型

  • 静态类型:编译时确定变量类型,如 C、Java、Go 重点
  • 动态类型:运行时确定变量类型,如 Python、JavaScript

强类型 vs 弱类型

  • 强类型:类型严格,禁止隐式类型转换,如 Java、Python 重点
  • 弱类型:类型宽松,允许隐式类型转换,如 C、JavaScript

编译执行 vs 解释执行

  • 编译执行:先将源程序整体翻译为目标程序,再执行目标程序 重点
    • 优点:执行效率高
    • 缺点:跨平台性差,开发 - 测试周期长
  • 解释执行:逐行读入源程序并解释执行 重点
    • 优点:跨平台性强,交互性好
    • 缺点:执行效率低