编译器-编译器
bIanyiehengxudeblanyi Chengxu编译器的编译器“compilebupseudo-mpiler”生成编译器的编译器。 它接受由适当的表示系统描述的某个语言类中任何语言A的词法规则、语法规则、语义规则和/或代码生成规则,并根据该描述形成用目标语言B编写的代码的全部或部分语言A的编译器。编译器的编译器也称为部分翻译序列的生成序列。 一般来说go源码编译详解,编译器分为词法解析器、语法解析器、语义解析器和代码生成程序等几个组件。 这些组件可以使用通用编译器的编译器的不同部分来构建,或者可以使用不同的专用构建程序来构建。 这种特殊的生成程序包括用于词法分析程序的生成程序、用于句型分析程序的生成程序以及代码生成程序生成程序。 词法分析序列的生成粗序列接受正则语法或其他类似语法描述的短语go源码编译详解,构造有限状态自动机,并生成词法分析程序。 句型解析器的生成程序接收以上下文无关语法描述的源语言的句型并生成句型解析器。 各种句型分析程序的生成程序因实现语言、语法分析算法的原理以及源程序处理句型错误的能力而异。 例如,使用LR的句子分析程序的生成程序YACC和使用递归增长方法的句子分析程序的生成程序Lbien。 语义分析程序、中间代码生成程序和目标代码生成程序的设计和实现与形式化语义描述密切相关。 将语义描述形式化是相当困难的。 目前,大多数生成程序中的语义描述仍然采用非形式化。 它们的基本思想是将源语言上下文无关语法的句子符号或结构与翻译子例程(语义动作或语义子例程)进行匹配。 目前有很多性能良好的编译程序,例如词法分析程序的生成器程序LEX,句子分析程序的生成器程序yACC和LLgen,都明显提高了编译程序的开发效率。