随笔分类 - 编译原理
摘要:目录无符号整数的文法浮点数的文法 在编写无符号整数(Unsigned Integer)和浮点数(Floating Point Number)的文法时,我们通常使用BNF(巴科斯-瑙尔范式)或EBNF(扩展巴科斯-瑙尔范式)等描述形式语言的工具。这些工具提供了一种简洁的方式来定义语法规则。 以下是无符
阅读全文
摘要:目录推导(Derivation)归约(Reduction) 在编译原理中,推导(Derivation)和归约(Reduction,有时也称为规约)是两个核心概念,用于描述如何根据形式文法的规则来生成或识别字符串。它们是基于形式语言理论中的上下文无关文法(Context-Free Grammars,
阅读全文
摘要:目录语法成分语言的基本符号 在编译原理中,语法成分(也称为语法单位或语法结构)和语言的基本符号是两个核心概念,它们在定义和解析一种语言的语法时起着至关重要的作用。 语法成分 语法成分是指在特定的语法规则下构成句子或程序结构的基本元素。在上下文无关文法中,这些成分通常是非终结符和终结符的组合。非终结符
阅读全文
摘要:目录CFG简介CFG的分析树 CFG简介 编译原理中的上下文无关文法(Context-Free Grammar,CFG)是一种用于描述语言结构的抽象机制。它是形式语言理论中的一个核心概念,在编译器设计中扮演着关键角色。 上下文无关文法由四部分组成: 终结符集合(Terminal Set):包含所有语
阅读全文
摘要:在编译原理中,元语言符号是用于描述和定义文法规则的特殊符号。这些符号的读法和用法对于理解和编写文法规则非常重要。以下是一些常用的元语言符号及其读法: 产生式符号(→):读作“定义为”或“产生”。它用于表示一个非终结符可以被替换成什么。例如,A → α 表示“非终结符 A 定义为 α”。 选择符号(|
阅读全文
摘要:目录语法语义标识符是语法概念,名字是语义概念总结 在编译原理中,语法(Syntax)和语义(Semantic)是两个关键的概念,它们在源代码到机器代码的转换过程中起着重要的作用。虽然两者都是编译器的重要组成部分,但它们在功能、处理方式和上下文依赖性方面有着明显的区别。 语法 语法,也称为句法,关注的
阅读全文
摘要:目录语法分析抽象语法树AST 语法分析 编译原理的语法分析是编译过程中的一个重要阶段,其主要任务是根据语言的语法规则对程序的语法结构进行分析和检查。 语法分析器(也称为解析器)是执行语法分析的程序,它接收词法分析器输出的记号流作为输入,并构造出表示程序语法结构的分析树(或语法树)。在这个过程中,语法
阅读全文
摘要:目录词法分析介绍词法分析步骤正则表达式DFA 和 NFADFA 示例NFA 示例 词法分析介绍 词法分析是编译原理中的一个关键阶段,它主要负责将输入的源代码字符串分解成一系列的标记(tokens),这些标记是源代码的基本构成元素。词法分析器(也称为扫描器或词法器)执行这个任务,它读取源代码字符流,并
阅读全文
摘要:目录各个阶段编译程序总框编译器的结构 各个阶段 编译程序工作的几个阶段包括: 词法分析(Lexical Analysis):也称为扫描(Scanning)或词法扫描(Lexical Scanning)。这个阶段的任务是从左到右一个字符一个字符地读入源程序,将其划分成一系列的记号(token)。每个记
阅读全文