当前课程知识点:C语言程序设计 > 第2章 C语言程序设计基础 > 2.1 程序设计语言的发展及其特点和应用 > 程序设计语言的发展及其特点和应用
同学们大家好
今天我们来了解一下什么是程序设计语言
程序设计语言是一种可以编制软件的
机器可识别
可执行的表示法(或符号)系统
理解程序设计语言
就必须把握两点
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程序到底长什么样儿呢?
我们下一节继续讲解
谢谢大家
-计算思维与计算机
--计算思维与计算机
--计算思维与计算机
--计算思维和计算机
-2.1 程序设计语言的发展及其特点和应用
--程序设计语言的特点及发展
- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤
--C语言程序的结构和编制步骤
-3.1 C语言的数据类型
--C语言的数据类型
--C语言的数据类型
-3.2 常量
--常量
--常量
-3.3 什么是变量
--什么是变量
--什么是变量
-3.4 如何进行算术运算
--如何进行算术运算
--如何进行算术运算
-3.5 赋值运算符和逗号运算符
--赋值运算符和逗号运算符
-3.6 数据类型转换
--数据类型转换
--数据类型转换
-4.1 格式化输出printf
--格式化输出
-4.2 格式化输入scanf及字符数据的非格式化输入输出
--格式化输入
-5.1 关系运算符和关系表达式
--关系运算符和关系表达式
-5.2 逻辑运算符和逻辑表达式
--逻辑运算符和逻辑表达式
-5.3 条件运算符和条件表达式
--条件运算符和条件表达式
-5.4 if语句
--if语句
--if语句
-5.5 switch语句
--switch语句
--switch语句
-6.1 while语句
--while语句
--while语句
--do-while语句
-6.2 for语句
--for语句
--for语句
-6.3 循环的嵌套
--循环的嵌套
--循环的嵌套
-6.4 break语句和continue语句
--break和continue语句
-7.1 一维数组的定义和引用
--一维数组的定义和引用
-7.2 一维数组的赋值
--一维数组的赋值
--一维数组的赋值
-7.3 二维数组的定义和引用
--二维数组的定义和引用
-7.4 二维数组的赋值
--二维数组的赋值
--二维数组的赋值
-7.5 字符串的本质
--字符串的本质
--字符串的本质
-7.6 字符串操作的常用函数
--字符串常用函数
-7.7 字符串数组
--字符串数组
--字符串数组
-8.1 函数概述
--函数概述
--函数概述
-8.2 有参函数
--有参函数
--有参函数
-8.3 函数参数的传递方式
--函数参数的传递方式
-8.4 变量的作用域和生存期
--变量的作用域和生存期
-8.5 变量的存储类型
--变量的存储类型
--变量的存储类型
-8.6 函数的嵌套和递归调用
--函数的嵌套和递归调用
-8.7 函数的作用域与封装
--函数的作用域与封装
-9.1 指针变量的概念(上)
--指针变量的概念(上)
-9.2 指针变量的概念(下)
--指针变量的概念(下)
-9.3 指向一维数组的指针变量
--指向一维数组的指针变量
-9.4 指向二维数组的指针变量(上)
--指向二维数组的指针变量(上)
-9.5 指向二维数组的指针变量(下)
--指向二维数组的指针变量(下)
-9.6 动态内存分配
--动态内存分配
--动态内存分配
-10.1 编译预处理
--编译预处理
-11.1 用户自己建立数据类型
--用户自己建立数据类型
-11.2 定义结构体类型变量
--定义结构体类型变量
-11.3 结构体变量的引用与初始化
-11.4 结构体数组
--结构体数组
--结构体数组
-11.5 指向结构体类型数据的指针
--指向结构体类型数据的指针
-12.1 文件的基本概念和文件指针
--文件的基本概念和文件指针
-12,2 文件的打开和关闭
--文件的打开和关闭
--文件的打开和关闭
-12.3 文本文件读写
--文本文件读写
--文本文件读写
-12.4 二进制文件读写
--二进制文件读写
--二进制文件读写