1、编译与编译器
编译
把⼀⻔语⾔编写的程序(源程序)翻译成另外⼀⻔语⾔程序(⽬标代码)。
编译器
完成编译⼯作的程序。
2、编译流程
程序的编译是⼀个系统性的知识。⼀个编译器通常包含如下步骤:
2-1、词法分析
词法分析是编译的第⼀步,主要任务是读⼊源程序的输⼊字符,将其组成词素(Token :单词、符号等元素)并标记词素类型 (如字符串、数字、运算符、关键字等)和词素位置(⾏列),这个阶段也包含⼀些预处理任务,如过滤合并空格、注释…… 等。
2-2、语法分析
语法分析是根据某种给定的 形式⽂法 对词法分析阶段得到的 Token 进⾏分析并确定其语法结构的过程。 形式⽂法指的是字符串序列在某种语⾔中⽂法组织规则,如⾃然语⾔中的肯定句、疑问句,程序中的 条件、循环、赋值等。
巴科斯范式
⼀种⽤来描述(表示)某种语⾔⽂法的范式(符号集),⼴泛应⽤于各种程序设计语⾔。
- 产⽣式:⽂法格式,推导规则(⾮终结符的分解规则)。
- ⾮终结符:可再分解推导的内容。
- 终结符:不可再分解推导的内容。
AST
3.vue-template源码解析
编译原理相关的前端应⽤
- vue-template
- react-jsx markdown