# 《程序员的自我修养》读书笔记
高级语言使得程序员们能够更加关注程序逻辑的本身,而尽量少考虑计算机本身的限制,如字长、内存大小、通信方式、存储方式等。
编译过程一般可分为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)。
有限状态机&