【编译、链接、装载三】编译器——语法分析、词法分析、语义分析、编译器后端

内容总结

  • 词法分析是把程序分割成一个个 Token 的过程。
  • 语法分析是把程序的结构识别出来,并形成一棵便于由计算机处理的抽象语法树。
  • 语义分析是消除语义模糊,给这棵树生成一些属性信息.
  • 编译器后端是把这棵树生成汇编代码。

一、词法分析(Lexical Analysis)

通常,编译器的第一项工作叫做词法分析。就像阅读文章一样,文章是由一个个的中文单词组成的。程序处理也一样,只不过这里不叫单词,而是叫做“词法记号”,英文叫 Token。
在这里插入图片描述

举个例子,看看下面这段代码,如果我们要读懂它,首先要怎么做呢?
在这里插入图片描述

  • 我们会识别出 if、else、int 这样的关键字,main、printf、age 这样的标识符,+、-、= 这样的操作符号,还有花括号、圆括号、分号这样的符号,以及数字字面量、字符串字面量等。这些都是 Token。

  • 那么,如何写一个程序来识别 Token 呢?可以看到,英文内容中通常用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑同学的笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值