ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-05-01 21:33:13  阅读:178  来源: 互联网

标签:解释 中缀 编译 解释程序 目标程序 程序语言 编译程序 执行 源程序


程序语言概述:

 

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

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

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

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

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

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

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

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

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

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

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

解释:边翻译边执行

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

 

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

编译和解释的区别:

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

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

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

 

编译和解释的比较:

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

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

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

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

 

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

程序语言的数据成分:

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

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

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

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

         特殊类型:空类型;

         用户定义类型:枚举型;

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

         指针类型:type*

         抽象数据类型:类类型

 

 

 

前四个:前端(高级)

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

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

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

 

 编译过程:

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

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

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

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

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

 

 

 

 编译过程:

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

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

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

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

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

 

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

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

 

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

 

 三种表达式的转换:

 

标签:解释,中缀,编译,解释程序,目标程序,程序语言,编译程序,执行,源程序
来源: https://www.cnblogs.com/bopai/p/16214113.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有