(一)低级语言(贴近计算机底层)和高级语言(接近人的语言)
说明 | 解释 | 描述 | 优缺点 | |
低级语言 | 机器语言 | 由机器指令组成,是最基本的计算机语言 | 计算机硬件只能识别由0、1组成的机器指令序列 | 特点:是特定计算机系统所固有的、面向机器的语言。 缺点:效率低、程序可读性很差、难以理解、难以修改和维护等 |
汇编语言 | 由汇编指令组成,接近机器语言,仍是面向机器的语言 | 用易记符号代替0、1序列来表示机器指令,如ADD表示加法、SUB表示减法等 | ||
高级语言 | 不依赖于硬件,必须翻译成低级语言(汇编、解释和编译) | Java | 与人们使用的自然语言比较接近,大大提高了程序设计效率 | |
C | ||||
C++ | ||||
C# | ||||
Python | ||||
PHP | ||||
JavaScript |
(二)编译程序和解释程序
ID | 分类 | 描述 | 说明 |
1 | 源程序 | 用某种高级语言或汇编语言编写的程序 | 不能直接在计算机上执行 (汇编语言)源程序需要汇编程序将其翻译成目标程序 (高级语言)源程序需要对应的解释程序或编译程序进行翻译 |
2 | 解释程序 (解释器) | 直接解释执行源程序,或者将源程序翻译成某种中间代码后再执行 | 根本区别: (1)编译方式下,编译器则将源程序翻译成独立保存的目标程序,源程序和编译程序都不再参与目标程序的执行过程; (2)解释方式下,不生成独立的目标程序,解释程序和源程序(或其某种等价表示)要参与程序的运行过程。 |
3 | 编译程序 (编译器) | 将源程序翻译成目标语言程序 |
(三)程序设计语言的定义
定义 | 描述 | 子定义 | 说明 | |
1 | 语法 | 由程序语言的基本符号组成程序中的各个语言结构(包括程序)的一组规则,可用形式语言进行描述 | 词法规则 | 由基本字符构成的符号(单词)书写规则 |
语法规则 | 由符号构成语法成分的规则 | |||
2 | 语义 | 程序语言中按语法规则构成的各个语法成分的含义。程序的执行结果说明了该程序的语义,它取决于构成程序的各个组成部分的语义。 | 静态语义 | 指编译时可以确定的语法成分的含义 |
动态语义 | 指运行时才能确定的含义 | |||
3 | 语用 | 表示构成语言的各个记号和使用者的关系,涉及符号的来源、使用和影响。 | ||
4 | 语境 | 指理解和实现程序设计语言的环境 | 编译环境 | |
运行环境 |
(四)程序设计语言分类
高级语言:程序语言不依赖于机器硬件
通用程序设计语言:程序语言能够应用于范围广泛的问题求解领域
(1)程序语言发展
ID | 语言 | 描述 | 说明 |
1 | Fortran | 又称公式翻译器(Formula Translation),是第一个被广泛用来进行科学和工程计算的高级语言。 | 最大特性是接近数学公式的自然描述,执行效率高,被应用于并行计算和高性能计算领域。 |
2 | ALGOL | (ALGOrithmic Language)诞生于晶体管计算机流行的年代。 | ALGOL 60是程序设计语言发展史上的里程碑,为软件自动化及软件可靠性发展奠定了基础。 |
3 | Pascal | 1970年发表,是一种过程式、结构化程序设计语言 | 是从ALGOL60衍生的,但功能更强且容易使用。曾在高校计算机软件教学中处于主导地位。 |
4 | C语言 | 20世纪70年代初发展起来的一种通用程序设计语言 | 兼顾了高级语言和汇编语言的特点,语句执行高效,允许程序员直接访问操作系统和底层硬件,主要应用于系统级应用和实时处理应用开发中。 |
4 | C++ | 在C语言的基础上于20世纪80年代发展起来的 | 与C兼容,但是比C多了封装和 抽象,增加的类机制使C++成为一种面向对象的程序设计语言。 |
5 | C# | 由微软公司开发的一种面向对象的、运行于.NET Framework的高级程序设计语言 | 相对于C++在许多方面进行了限制和增强 |
6 | Objective-C | 是根据C语言所衍生出来的语言,由Apple公司维护 | 继承了 C语言特性,是扩充C面向对象的编程语言。可以在GCC运作的系统中编写和编译。 |
7 | Java | 产生于20世纪90年代的一种通用程序设计语言 | 保留了 C++的基本语法、类和继承等概念,删掉了C++中一些不好的特征, |
8 | Ruby | 在1993年设计的一种解释性、面向对象、动态类型的脚本语言。 | 一切都是对象,比如基本数据类型;每个过程或函数都是方法;变量没有类型;任何东西都有值。 |
9 | PHP | (Hypertext Preprocessor)是一种在服务器端执行的、嵌入HTML文档的脚本语言 | 语言风格类似于C语言,由网站编程人员广泛运用。混合了 C、Java、Perl以及PHP自创的语法。 |
10 | Python | 是一种面向对象的解释型程序设计语言 | 用于编写独立程序、快速脚本和复杂应用的原型。支持对操作系统底层访问,可以将Python源程序翻译成字节码在Python虚拟机上运行。 |
11 | JavaScript | 是一种脚本语言 | 被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能。一般嵌入在HTML中来实现功能。 |
12 | Delphi | 是一种可视化开发工具 | 主要特性为基于窗体和面向对象的方法、高速的编译器、强大的数据库支持、与Windows编程紧密结合以及成熟的组件技术。 |
13 | Visual Basic.NET | 是基于微软.NET Framework的面向对象的编程语言 | 用.NET语言(包括VB.NET)开发的程序源代码被编译成为中间代码 MSIL,然后通过.NET Framework的通用语言运行时(CLR)来执行。 |
(2)程序语言分类
根据设计程序的方法将程序语言分为命令式和结构化的程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。
ID | 分类 | 说明 |
1 | 命令式程序设计语言 | 基于动作的语言,计算被看成是动作的序列。关注执行步骤,最早始于Fortran |
2 | 结构化程序设计语言 | 属于命令式语言类,一是用自顶向下逐步精化的方法编程;二是按模块组织的方法编程;三是程序只包含顺序、判定(分支)及循环构造,每种构造只允许单入口和单出口。典型如C、Pascal |
3 | 面向对象的程序设计语言 | C++、Java和Smalltalk是面向对象程序设计语言的代表 |
4 | 函数式程序设计语言 | 以λ-演算为基础的语言,基本概念来自于LISP(1958年为人工智能应用而设计的语言)。用函数和表达式建立程序。常见的函数式语言有Haskell、Scala、Scheme、APL等。 |
5 | 逻辑型程序设计语言 | 以形式逻辑为基础的语言,代表是Prolog(Programming in Logic),有很强的推理功能,适用于解决自动定理证明、专家系统和自然语言理解等问题。 |