编译原理期末复习---第一章 编译程序

常见的计算机语言

计算机语言是用于与计算机进行交互和编程的符号系统。它定义了一组规则和语法,用于编写计算机程序以解决特定问题或执行特定任务。计算机语言可以分为以下几个主要类别:

  1. 机器语言(Machine Language):机器语言是计算机能够直接执行的二进制代码表示形式。它由0和1组成的指令序列表示不同的操作和数据。机器语言是最底层的计算机语言,与特定的硬件体系结构紧密相关。

2. 汇编语言(Assembly Language):汇编语言使用助记符(Mnemonic)来代替机器语言的二进制指令。每个助记符对应一个特定的机器语言指令。汇编语言需要通过汇编器将其转换为机器语言才能被计算机执行。

  1. 高级语言(High-level Language):高级语言更接近人类自然语言,并提供了更丰富的抽象和功能,使程序员能够更方便地编写和管理复杂的程序。常见的高级语言包括C、C++、Java、Python、JavaScript等。高级语言需要通过编译器或解释器将其转换为机器语言才能被计算机执行。

在这里插入图片描述

什么是编译程序

1、什么是编译:利用编译程序从源语言编写的源程序产生目标程序的
过程,例如把高级语言变成汇编语言或机器语言的过程

2、什么是编译程序:把一种语言书写的程序等价的翻译成另一种语言的程序

在这里插入图片描述
3、解释程序:解释程序是一种将源代码逐条转换为机器指令并立即执行的程序与编译不同,解释程序在运行时边逐行翻译和边立即执行源代码,而不是提前将整个源代码编译成机器语言。

编译过程

在这里插入图片描述
编译是将高级程序语言(如C、C++、Java等)编写的源代码转换为计算机可以执行的机器语言的过程。下面是典型的编译过程的步骤:

  1. 词法分析(Lexical Analysis):将源代码拆分为多个词法单元,例如关键字、标识符、常量和运算符等,并生成一个词法单元流。

  2. 语法分析(Syntax Analysis):根据语法规则,对词法单元流进行分析,并构建出语法分析树(Syntax Tree)或抽象语法树(Abstract Syntax Tree)。

  3. 语义分析(Semantic Analysis):对语法分析树进行静态语义检查,确保语句的合理性和正确性,例如类型检查、作用域检查和语义规则的验证。

  4. 中间代码生成(Intermediate Code Generation):将语法分析树转换为中间代码(Intermediate Code),通常是一种独立于具体计算机平台的低级程序表示形式,如三地址码、虚拟机指令或类似的表示形式。

  5. 优化(Optimization):对生成的中间代码进行优化,以改善程序的效率和性能。这包括消除冗余计算、优化算法、减少内存访问等技术,以提高程序的执行速度和资源利用率。

  6. 目标代码生成(Code Generation):将优化后的中间代码转换为特定计算机平台上的目标代码,即可执行的机器语言指令。这个过程涉及寄存器分配、指令选择和地址解析等步骤。

  7. 目标代码优化(Code Optimization):针对目标代码进行优化,以进一步改善程序的性能和资源利用率。这包括在保持程序逻辑不变的情况下,对目标代码进行重排、去除冗余指令、使用更高效的指令序列等技术。

最终,编译过程将源代码转化为可执行的机器语言文件,使计算机能够直接执行该程序。这种生成的机器语言文件可以在特定计算机架构上运行,并且不需要再次经过编译过程,提高了程序的执行效率。

编译程序结构框图

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值