什么是编译原理

编译原理是研究如何将高级语言转换为机器语言的科学。它涉及词法分析、语法分析、语义分析等阶段。词法分析识别单词并转化为词法单元;语法分析构造语法树,解析句子结构;语义分析收集标识符属性信息,进行语义检查和中间代码生成。文章详细介绍了这些过程,并提及了符号表、常量表和语义错误检查等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译原理是介绍如何将高级程序设计语言转换成计算机硬件能识别的机器语言,以便计算机进行处理

 

编译器在语言处理系统中的位置

了解了编译与程序设计语言的关系,那么我们接下来再来看下编译器在语言处理系统中所处位置,如下图

编译系统的结构

那么机器是如何把高级语言翻译为汇编语言程序或机器语言程序的呢?

我们先来看下人工进行英文翻译的例子,这里引用的哈工大编译原理中的图示

图中的中间表示很重要主要起到了一个桥梁的作用,比如图中的中间表示可以使用各种语言表示。

根据上图可以看出要进行语义分析首先需要划分句子成分,那么我们是如何划分句子成分的呢?

实际上编译器在工作的时候也是经过了以上几个步骤,我们成为阶段(计算机的逻辑组织方式,在实现过程中多个阶段可能会被组合在一起实现),可以分为两大部分:分析源语言、生成目标代码,在编译器中他们分别对应编译器的前端和后端两个部分。编译器的结构如下图

了解了编译器的结构,让我们从编译器的前端开始讲起,看看词法分析、语法分析、语义分析等各个阶段都做了什么。

词法分析(扫描)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值