当前课程知识点:C语言程序设计 >  第2章 C语言程序设计基础 >  2.1 程序设计语言的发展及其特点和应用 >  程序设计语言的发展及其特点和应用

返回《C语言程序设计》慕课在线视频课程列表

程序设计语言的发展及其特点和应用在线视频

下一节: C语言程序的基本结构及编制C语言程序的基本步骤

返回《C语言程序设计》慕课在线视频列表

程序设计语言的发展及其特点和应用课程教案、知识点、字幕

同学们大家好

今天我们来了解一下什么是程序设计语言

程序设计语言是一种可以编制软件的

机器可识别

可执行的表示法(或符号)系统

理解程序设计语言

就必须把握两点

1

程序设计语言是人机通信媒体(介)

是软件系统的载体

首先

它是一种机器可识别的

方便人使用的人工语言

其次

它是一种形式语言

是无二义性

必须可执行

2

程序设计语言

是计算机科学与计算机工程的交汇点

计算机科学是在符号学

集合论

离散数学

和组合数学基础上发展起来的

以符号语言表达的软件还要满足正确性

可靠性

安全性

可扩充

可移植

方便性等

程序设计语言的发展

经历了从机器语言

汇编语言到高级语言的历程

机器语言

是用0

1二进制和编码方式提供的指令系统所编写程序的语言

而指令系统是CPU用0

1二进制和编码提供的可以解释并执行的命令的集合

所有的程序都必须先转换为机器语言程序

才能被计算机执行

机器语言程序的特点是运行效率最高

那么

问题就来了

为什么不建议使用机器语言编写程序

这是因为

计算机能够直接识别并执行的是机器语言

机器指令是CPU可以直接分析并执行的指令

一般由0和1的二进制编码表示

机器代码则是使用机器语言编写的机器指令序列

由于机器指令与CPU密切相关

因此只有极少数经过严格训练的专业技术人员

用机器语言编写程序

普通程序员一般难以胜任

而且用机器语言编写的程序与计算机硬件密切相关

不易学习

不易理解和掌握

开发效率很低

出错率高

难以维护

也不能直观地反映用计算机解决问题的基本思路

2

汇编语言

使用英文字母

符号串等助记符号编写程序的程序设计语言

每一个助记符号都替代了

能完成某个特定功能的机器指令序列

助记符在一定程度上提高了编程效率

但需要专门开发的特殊程序-汇编程序

来对汇编语言程序进行处理

汇编语言本身也与硬件结构密切相关

3

高级程序设计语言

用接近数学语言或用类似人类的自然语言的语句编写程序

高级程序设计语言不依赖计算机硬件

能够相对容易地被普通程序员掌握和使用

具有较强的表达力

程序设计语言

尤其是高级程序设计语言的研究和开发

处于计算机科学技术发展的中心

先后产生了模块化程序设计

递归程序设计

结构化程序设计

面向对象程序设计等革命性的软件设计思想和方法

自1966年-2017年的52届图灵奖

有15届由于与程序设计语言有关的工作而获奖

使用高级程序设计编程是大势所趋

我们将要学习的C程序设计语言

就是一种经典的高级程序设计语言

下面

我们共同来回顾一下

C语言的发展及其特点和应用

C语言的原型是ALGOL60语言

之所以命名为C

是因为C语言源自Ken Thompson发明的B语言

而B语言则源自1963年

剑桥大学从ALGOL60发展而来的CPL语言

1967年

剑桥大学的Martin Richards对CPL语言进行了简化

于是产生了BCPL语言

1970年

美国贝尔实验室的 Ken Thompson

以BCPL语言为基础

设计出很简单且很接近硬件的B语言

他取BCPL的首字母

并且他用B语言写了第一个UNIX操作系统

1972年

同在美国贝尔实验室的Dennis.M.Ritchie

在B语言的基础上最终设计出了一种新的语言

他取了BCPL的第二个字母

作为这种语言的名字

这就是C语言

1977年

Dennis M.Ritchie

发表了不依赖于具体机器系统的C语言编译文本

《可移植的C语言编译程序》

1989年

美国国家标准研究所ANSI

发布了第一个完整的C语言标准

C89

也习惯称其为

ANSI C

国际标准组织ISO

在2011年又发布了新标准

C11

C语言具有高效

灵活

功能丰富

表达力强和较高的可移植性等特点

在程序员中备受青睐

成为最近25年使用最为广泛的编程语言

目前

C语言编译器普遍存在于各种不同的操作系统中

例如Microsoft Windows

Mac OS X

Linux

Unix等

C语言的设计影响了众多后来的程序设计语言

例如C++

Objective-C

Java

C#等

C语言广泛应用于系统软件

大型应用软件

计算机硬件和智能设备

网络以及图形

图像及动画处理等领域的开发

讲到这里

可能有些同学有这样的疑问

现在功能强大的高级程序设计语言层出不穷

例如Python语言

作为初学者

为什么要从C语言开始呢

实际上

C语言具有以下独到之处

1

C足够简洁紧凑

它更接近运行系统的编译器

甚至是解释器

这意味着你将不只是学习如何编程

相反

你将学到如何在计算机上执行该程序

你也将了解编程的基本要素

如内存映射

2

C为编程思维

编程技术

编程风格的养成奠定了坚实的基础

3

支持模块化程序设计

递归程序设计和结构化程序设计

编程效率较高

4

允许直接访问物理地址

可以直接对硬件进行操作

5

程序生成的目标代码质量高

程序执行效率高

同学们

这节我们介绍了程序设计语言

特别是C程序设计语言的发展

特点和应用

那么

一个C程序到底长什么样儿呢?

我们下一节继续讲解

谢谢大家

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

-8.6 函数的嵌套和递归调用

--函数的嵌套和递归调用

--函数的嵌套和递归调用

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

程序设计语言的发展及其特点和应用笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。