
主讲: 谢赞福 教授
计算机程序设计语言概述
计算机中的程序是指按特定的算法用某种计算机语言描述完成指定任务的处理过程。
程序语言可按不同视角进行分类。
按对机器依赖性、 接近自然语言的程度、 语言的发展过程进行分类,可分为:机器语言、汇编语言 、高级语言。
(1)机器语言
CPU能理解且能直接执行的指令集合,用0、1组合表示指令 。
用机器语言编写的程序形式(例):
10110000
00001101
00101100
00000101
11110100
特点:依赖于具体计算机、难记忆、易出错、阅读理解困难、编程者需了解特定计算机的硬件及指令系统。
(2)汇编语言
汇编语言是一种符号化的机器语言,用助记符号代替指令操作码、操作数。
用汇编语言编写的程序形式(例):
MOV AL,13D
SUB AL,5D
HLT
思考:汇编语言与机器语言的异同?
(3)高级语言
高级语言接近于自然语言和数学语言,在一定程度上与具体计算机无关的符号化语言。
用高级语言编写的程序形式(以C语言为例):
#include <stdio.h>
int main(void)
{
printf(“%d\n”,13-5);
return 0;
}
高级语言特点:
易学易用、代码易理解、易调试、修改和移植,并与机器无关。
不支持对硬件的直接操作、代码需要翻译指令序列后才能执行。
高级语言的翻译方式:
1)解释方式(Interpreter 解释程序)

2)编译方式(Compiler 编译程序或称编译器)

流行的程序设计语言:python语言、java语言、C语言、c++语言、C#语言、Perl语言、pascal语言、lisp语言、prolog语言、PHP语言、j机器语言、IBM PC汇编语言、MASM汇编语言、Visual Basic语言、FoxPro语言、delphi语言、易语言、fortran语言等。

关于程序设计语言,就程序本质而言:刻画计算(数值计算与非数值计算,与处理同义)过程的处理对象(数据)与处理规则(算法)。
程序设计语言是用于书写计算机程序的语言。程序设计语言的基础是一组记号和一组规则,根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。
瑞士计算机科学家Niklaus Wirth认为:
程序=算法+数据结构
算法是解决问题的步骤和方法,是指令的有限序列
数据结构则是数据的组织形式,涉及操作对象以及它们之间的关系和操作
例:计算1+2+…+100的和,算法和数据结构设计:

算法是程序的灵魂,在程序设计中有核心地位
实际应用中用户首先关心的是自己的数据能够被处理,其次才关心如何处理,用什么工具处理数据,所以从应用角度出发,程序设计的重心已转移到数据上了。
程序设计的本质1:
结构化程序设计---自顶向下(top-down),逐步细化(stepwise refinement),由抽象到具体的功能分解过程,使用三种控制结构即顺序、选择和循环控制构造程序。
程序设计的本质2:
面向对象程序设计---是目前计算机开发中使用的主流方法,它是一种对现实世界理解并抽象的方法,将对象作为程序的基本单元,并将程序和数据封装在内,以提高软件的重用性、灵活性和扩展性。

程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。
程序设计步骤:
分析问题
对于接受的任务要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。
设计算法
即设计出解题的方法和具体步骤。
编写程序
将算法翻译成计算机程序设计语言,对源程序进行编辑、编译和连接。
运行程序,分析结果
运行可执行程序,得到运行结果。能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。不合理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。
编写程序文档
许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书。内容应包括:程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等。
(拓展)程序设计语言分类的基础知识:
程序设计语言按照用户的要求有过程式语言和非过程式语言之分。过程式语言的主要特征是,用户可以指明一列可顺序执行的运算,以表示相应的计算过程,如FORTRAN、COBOL、PASCAL等。
按照应用范围,有通用语言与专用语言之分。如FORTRAN、COLBAL、PASCAL、C语言等都是通用语言。目标单一的语言称为专用语言,如APT等。
按照使用方式,有交互式语言和非交互式语言之分。具有反映人机交互作用的语言成分的语言成为交互式语言,如BASIC等。不反映人机交互作用的语言称为非交互式语言,如FORTRAN、COBOL、ALGOL69、PASCAL、C语言等都是非交互式语言。
按照成分性质,有顺序语言、并发语言和分布语言之分。只含顺序成分的语言称为顺序语言,如FORTRAN、C语言等。含有并发成分的语言称为并发语言,如PASCAL、Modula和Ada等。
程序设计语言是软件的重要方面,其发展趋势是模块化、简明化、形式化、并行化和可视化。
程序设计语言还分为面向对象和面向过程,面向对象的例如:C++/C#/Delphi……面向过程的例如:Free Pascal/C语言……

