星期

2020年03月24日

图文讲解-编程语言基础

2020-03-24 06:53:20 来源:互联网 阅读:-

本节是第一讲的最后一小节,主要为大家介绍语言处理程序,也就是各个编程语言的基本原理。首先看一下编程语言发展历程。

机器语言:计算机发明之初,人们为了去控制计算机完成自己的任务或者项目,只能去编写“0”、“ 1”这样的二进制数字串去控制电脑,其实就是控制计算机硬件的高低电平或通路开路,这种语言就是机器语言。机器语言,也就是第一代编程语言。

汇编语言:第二代计算机语言,用一些容易理解和记忆的字母,单词来代替一个特定的指令。例如:ADD表示加法、SUB表示减法等。仍然是面向机器的语言,目前应用驱动程序、嵌入式操作系统和实时运行程序。

高级语言:不依赖于计算机硬件,能够在不同机器上运行的程序。语言又接近于数学语言或人的自然语言。常见的有:Java、C、C++、PHP、Python等等。

语言处理程序基础

语言处理程序是一类系统软件的总称,其作用是将高级语言或汇编语言编写的程序翻译成机器语言程序,使程序在计算机上运行。主要分为汇编程序、编译程序、解释程序。

汇编程序:汇编程序的功能就是用汇编语言编写的源程序翻译成机器指令程序。汇编语言有3类语句:指令语句、伪指令语句、宏指令语句。需要两次扫描才能完成翻译过程。第一次扫描定义符号的值并创建符号表;第二次扫描产生目标程序。

编译程序:编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序。

以下是编译程序的流程:


1、词法分析:源程序逐行扫描,识别出“单词”符号,以二元组的方式输出,单词种别和单词自身的值。例如:var x,y,z;x=y+z*60; 转变成 var id1,id2,id3;id1=id2+id3*60;

2、语法分析:构造语法树,如有语法错误就指出。

语法树如下图所示:

3、语义分析:进行数据类型的分析和检查。

4、中间代码生成:一种简单且含义明确的记号系统,常用的一种四元式,(运算符,运算对象1,运算对象2,运算结果)。例如:x=y+z*60; ① (int,60,-,t1) ②(*,id3,t1,t2) ③(+,id2,t2,t3) ④(=,t3,-,id1)

5、代码优化:优化原则程序的等价变换原则。 ①(*,id3,60,t1) ②(+,id2,t1,id1)

6、目标代码生成:将中间代码变换成特定机器上的代码。

解释程序:解释程序是另一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,执行程序时,直接执行源程序或源程序的中间表示形式。特点:不产生源程序的目标程序。

解释程序流程如下图所示:


基本结构:第一部分是分析部分,包括通常的词法分析、语法分析、语义分析程序,经语义分析后把源程序翻译成中间代码。第二部分是解释部分,用来对第一部分产生的中间代码进行解释执行。

编译与解释的比较

(1)效率。编译比解释方式有更高的效率。

(2)灵活性。解释方式需要反复检查源程序,比编译方式更灵活。

(3)可移植性。解释器重新编译可运行在不同环境中,可移植性更强。

最新的编译系统:既提供编译也提供解释,两种方式相结合。例如:Java虚拟机的compiling-just-in-time技术,代码在第一次运行时编译,其后都不再进行编译。

以上内容部分摘自视频课程01编程知识基础-7语言处理程序。最后,希望大家远离病毒,疫情早日结束,湖北加油!中国加油!

推荐阅读:电脑有哪些品牌