C语言 第〇章-绪论

C 语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

一、计算机语言

1.计算机语言的发展

机器语言 → 符号语言和汇编程序 → 高级语言和编译程序

2.机器语言

二进制语言,由高电平和低电平所反映的0和1组成,能够被机器直接识别与接受。

3.符号语言和汇编程序

符号语言:对机器语言进行简化,例如用ADD代表由0和1组成的一串代表加法的机器指令,从而更方便阅读与理解。

汇编程序:用于转换符号语言的程序,将简单的符号指令转换为机器指令。

符号语言和汇编程序的缺点:增加的程序的可读性和可改型,但本质上只是对机器语言的简化,没有解决 一机一语言,一机一程序 的问题。

4.高级语言和编译程序:

高级语言:与符号语言的区别在于,高级语言从编程人员的思维而不是从机器出发。用更接近人类思考方式的语言,独立于机器编程。因为不依赖于机器本身的指令,所以是一种通用型语言。相比符号语言,更加易读且更易于移植。

编译程序:与编译程序只进行 符号机器指令 之间的转换不同,编译程序需要针对不同的机器,将高级语言翻译为对应机器可以识别的机器指令。

通过高级语言和编译程序,使处理问题从 “解决一个机器的问题” 变成 “解决一个问题”。

二、高级语言的发展

1.面向过程的语言

普通版:

拿起衣服;

放进洗衣机;

拿起洗衣粉;

放进洗衣机;

拿起水管;

接上洗衣机;

伸出手指;

启动洗衣机;

函数版:

放入 ( 洗衣机 , 衣服 );

放入 ( 洗衣机 , 洗衣粉 );

放入 ( 洗衣机 , 水 );

启动 ( 洗衣机 );

数据不通,函数无法共用时:

放入 ( 洗衣机 , 衣服 );

丢入 ( 洗衣机 , 洗衣粉 );

接入 ( 洗衣机 , 水 );

启动 ( 洗衣机 );

  • 面向过程从解决问题的步骤出发,自上而下逐步分析解决每一步做什么。
  • 当调用函数时再为其选择对应数据,对象及其动作(数据及其运算)被人为分离。
  • 围绕每一个过程构建函数,通过将相似的过程合并实现代码复用。
  • 易于编写,性能更好,适用于简单任务。

2.面向对象的语言

洗衣机 . 加 ( 衣服 );

洗衣机 . 加 ( 洗衣服 );

洗衣机 . 加 ( 水 );

洗衣机 . 启动 ( );

  • 面向对象从对象出发,基于事物构造方法。
  • 对象自带方法,通过对象本身调用方法,对象及其动作(数据及其运算)被自然绑定。
  • 围绕每一个对象构建方法,让对象自带其方法。
  • 易于开发和维护,适用于大型项目。

参考