本节学习目标
- 了解计算机语言及其发展,了解高级语言的优点。
- 什么是程序?什么是程序设计方法?
- 开发环境简单介绍。
计算语言发展历史
- 计算机是无知觉无生命的机器,要使它能够按照人们的意图工作,就必须使计算机懂得人的意图,接受人向它发出的命令和信息,这就要解决一个"语言"的问题。
- 打个比方,一个中国人想要同一个美国人进行交流,首先需要学习英语,因为英语是美国人可以理解的语言,美国人不理解中国人的汉语。同样,计算机也不懂人类的语言,无论是汉语还是英语,计算机都不能接受,因此要求人们用特定的计算机可以理解的语言与计算机交流,这就是计算机编程语言。
- 这种语言同英语、汉语等等人类长期使用的自然语言有很大的不同,它有严格的定义,并且一般没有二义性,因为人们在使用自然语言交谈时,很容易根据语境确定具有二义性的对话的含义;但是计算机却做不到这一点,至少现在它还没有这么聪明。
程序设计方法
什么是程序?
- 程序规定了计算机执行的动作和执行的顺序,如同开会的议程,每周的课程安排表一样。一个程序应包括以下两方面的内容:
(1) 对数据的描述:在程序中要指定数据的类型和数据的组织形式,即数据结构。
(2) 对操作的描述:即操作步骤,也就是代码执行逻辑,包括了流程控制和算法。
- 数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤。
- 著名的计算机科学家 Nikiklaus Wirth 提出了一个公式:程序 = 数据结构 + 算法。我个人理解的这里叫算法不是很准确,程序还有一个最重要的东西是业务流程控制,算法只是对数据的计算和分析,这里要注意理解他包含的实际含义。
程序设计和程序编码
- 一些程序员,尤其是初学程序设计者,常常认为程序设计就是用某种程序设计语言编写代码,这其实是错误的认识。
- 上述工作应该被看成为编码(coding),它是在程序设计完成之后才开始的。
- 拿房屋设计的例子来讲,房屋设计这个过程不涉及砌转垒瓦的具体工作,这些工作是房屋施工阶段进行的。在完成了房屋设计,有了设计图纸之后,施工阶段才能开始。如果不作设计,直接施工,很难想象房屋能不能建造完成,或者建造的房屋合不合要求。同样,程序设计一定要在具体的程序编码之前完成。程序设计完成的好坏直接影响了后面的编码质量。
- 完整开发过程包括:需求分析、概要设计、详细设计、编码实现、测试阶段、维护阶段。对于程序员来讲最重要的就是前面 4 个阶段。
C语言的发展
- 20 世纪 60 年代,贝尔实验室的研究员 Ken Thompson(肯·汤普森)发明了 B 语言,并使用 B 编了个游戏 - Space Travel,他想玩自己这个游戏,所以他背着老板找到了台空闲的机器 - PDP-7,但是这台机器没有操作系统,于是 Thompson 着手为 PDP-7 开发操作系统,后来这个 OS 被命名为 - UNIX。
- C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室基于 B 语言设计开发了 C 语言。
- C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。
- 在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。
- UNIX 操作系统,C 编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。
- 当前最新的 C 语言标准为 C11,在它之前的 C 语言标准为 C99。
C语言的特点
- C 语言是为了编写 UNIX 操作系统而被发明的。
- C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的。
- C 语言标准是于 1988 年由美国国家标准协会(ANSI,全称 American National Standard Institute)制定的。
- 截至 1973 年,UNIX 操作系统完全使用 C 语言编写。
- 目前,C 语言是最广泛使用的系统程序设计语言。
- 大多数先进的软件都是使用 C 语言实现的。
- C 语言最初是用于系统开发工作,特别是组成操作系统的程序。由于 C 语言所产生的代码运行速度与汇编语言编写的代码运行速度几乎一样。
- 当今最流行的 Linux 操作系统和 RDBMS(Relational Database Management System:关系数据库管理系统) MySQL 都是使用 C 语言编写的。PostgreSQL 也是 C 语言。
C语言开发环境
如果您想要设置 C 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C 编译器。
文本编辑器:
- 这将用于输入您的程序。文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。
- 文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,Notepad 通常用于 Windows 操作系统上,vim/vi 可用于 Windows 和 Linux/UNIX 操作系统上。
- 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。C 程序的源文件通常使用扩展名 “.c”。
- 在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。
C 编译器:
- 写在源文件中的源代码是人类可读的源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。
- C 语言编译器用于把源代码编译成最终的可执行程序。这里假设您已经对编程语言编译器有基本的了解了。
- 最常用的免费可用的编译器是 GNU 的 C/C++ 编译器,如果您使用的是 HP 或 Solaris,则可以使用各自操作系统上的编译器。
- 以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。
Linux 上的安装
如果您使用的是 Linux 或 UNIX,请在命令行使用下面的命令来检查您的系统上是否安装了 GCC。如果安装,Ubuntu 使用: $ sudo apt install gcc 进行安装
$ gcc -v
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
Windows 上的安装
初学者推荐 VS(Visual Studio)。
具体怎么安装,看第二课视频课程有详细讲解。
课后作业
下去了解一下 C 语言的历史和发展历程。