编译器做了什么

编译器将高级语言转化为机器可执行代码,主要过程包括词法分析、语法分析、语义分析、中间代码生成、目标代码优化及链接器的工作。词法分析将源代码拆分成记号;语法分析构建语法树;语义分析确保语义正确;中间代码生成方便优化;目标代码生成考虑目标机器特性;链接器处理跨模块引用,生成可执行文件。
摘要由CSDN通过智能技术生成
# 《程序员的自我修养》读书笔记

高级语言使得程序员们能够更加关注程序逻辑的本身,而尽量少考虑计算机本身的限制,如字长、内存大小、通信方式、存储方式等。

编译过程一般可分为6步:扫描、语法分析、语义分析、源代码优化、目标代码优化。

如下所示:

Source Code --Scanner--> Tokens --Parser--> Syntax Tree --Semantic-Analyzer--> Commented Syntax Tree --Source-Code-Optimizer--> Intermediate Representation --Code-Generator--> Target Code --Code-Optimizer--> Final Target Code

# Tokens:记号
# Parser:语法分析器
# Syntax:语法
# Semantic:语义的
# Commented:注释的
# Optimizer:优化器
# Intermediate Representation:中间表示
# Generator:生成器

目录

词法分析

语法分析

语义分析

中间语言生成

目标代码生成与优化

链接器


词法分析

首先源代码程序被输入到扫描器(Scanner),扫描器的任务很简单,只是简单地进行词法分析,运用一种类似于有限状态机(Finite State Machine)的算法可以很轻松地将源代码的字符序列分割成一系列的记号(Token)

有限状态机&

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值