程序语言基础知识:编译程序和解释程序、程序语言的数据成分和控制成分(教材)、编译程序的过程、中缀、前缀与后缀表达式

2022/5/1 22:16:12

本文主要是介绍程序语言基础知识:编译程序和解释程序、程序语言的数据成分和控制成分(教材)、编译程序的过程、中缀、前缀与后缀表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

程序语言概述:

 

 1、低级语言:机器语言和汇编语言。是一种面向机器的语言。特点:难以理解,程序可读性差,程序设计效率低。

2、高级语言:面向各类应用的程序语言。如java,c,c++等;特点:与人类语言相近,便于理解,提高了程序设计的效率。

3、高级语言转换的方式:汇编、解释、编译。然后才可以被计算机硬件所理解。

      汇编语言编写:需要汇编程序翻译成目标程序,然后执行目标程序;

      高级语言编写:两种方式:一种是解释程序或编译程序进行翻译,然后再运行。

4、编译程序与解释程序:教材

      (1)、解释程序(解释器):直接解释或者将源程序翻译成某种中间代码再执行。   按源程序中语句顺序逐条翻译并立即执行相关的功能;

      (2)、编译程序(编译器):将源程序翻译成目标程序(目标代码),然后再在计算机上运行目标程序。

                   两个阶段:编译阶段和运行阶段

                   编译阶段:把源程序翻成目标程序。

                   运行阶段:执行目标程序。

解释:边翻译边执行

编译:先全部翻译,再执行

 

 ———————————————————————————————————————————————————————————————————

编译和解释的区别:

编译:一次编译,多次执行

              源程序(翻译成)→目标程序       执行的时候就执行目标程序就可以了。。。。跟源程序和翻译程序都没有关系

解释:解释程序和源程序都要参加到程序的运行过程中,运行程序的控制权在解释程序。

 

编译和解释的比较:

编译比解释方式可能取得更高的效率:因为编译是一次编译,可以多次执行;(事先将源程序翻译,执行的时候执行已经翻译好的目标程序就可以了)

                                                              而解释方式是边解释边执行,效率更低。

解释方式比翻译方式更加灵活:

解释方式的可移植性更加好:

 

 ————————————————————————————————————————————————————————————————————

程序语言的数据成分:

1)、常量和变量:按是否可以修改来来判定;

2)、全局变量和局部变量:按数据的作用域范围,可以分为全局变量和局部变量。

         全局变量:系统分配的储存空间在程序运行的过程中一般是不改变的,而为局部变量分配的储存单元是可以动态改变的。

3)、数据类型:基本类型:整形、字符型等;p46——52(摘抄一句话或点)

         特殊类型:空类型;

         用户定义类型:枚举型;

         构造类型:数组、结构、联合

         指针类型:type*

         抽象数据类型:类类型

 

 

 

前四个:前端(高级)

后两个:后端(机器相关)

不同机器生成,就修改后端

有符号表的管理和出错处理

 

 编译过程:

1、词法分析:从左到右逐词分析;(单词、标识符、常数、运算符、标点符号)

2、词法分析:分析单词串是否构成短语和句子,就是说检测是否合法;如果源程序没有语法错误,语法分析后就能够正常的构造其语法树;

3、词义分析:任务:分析各语法结构的含义,检查是否存在静态语义错误;

                        主要工作:进行类型分析和检查;

4、中间代码的生成:见最下图。

 

 

 

 编译过程:

5、代码优化:由于源程序翻译后是机械的、按固定模式进行的,所以,生成的代码往往会在时间和空间方面的效率较差。所以当需要生成高效的目标程序时,就必须进行优化。

      优化过程可以在中间代码生成阶段进行,也可以在目标代码生成阶段进行。

6、目标代码的生成:目标代码的生成是编译工作的最后的一个阶段;

      任务:把中间的代码变成特定机器上的绝对指令代码、可重定位的指令代码和汇编代码;

这个阶段的工作与具体的机器密切相关。

 

 7、符号表管理:就是看是否正确,能够在编译过程中对符号表进行快速有效的查找、插入、修改和删除等操作。

8、出错处理:分为静态错误和动态错误;

 

 中缀、前缀与后缀表达式:

 

 三种表达式的转换:

 



这篇关于程序语言基础知识:编译程序和解释程序、程序语言的数据成分和控制成分(教材)、编译程序的过程、中缀、前缀与后缀表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程