Compiler construction 自动机在编译器构造中的作用

Compiler construction 自动机在编译器构造中的作用,compiler-construction,automata,finite-automata,Compiler Construction,Automata,Finite Automata,我对自动机在词法分析和其他阶段中的作用略知一二。但究竟是什么让我困惑,在哪里,怎样。我推测,由我们的高级语言代码组成的标记是由某种语言分类或识别的,如果我们甚至可以称之为RE定义的“语言”,那么它就是“语言”。那CFG呢?那么有限自动机呢。我们在自动机类、状态、语言和字符串中制作的图表。计算机能识别这些状态图吗 字母表是一组有限的、非空的符号。就我们而言,字母表上的字符串是该字母表中符号的有限序列。就我们而言,语言是字母表上的一组字符串 就我们的目的而言,语法是一组称为productions的规

我对自动机在词法分析和其他阶段中的作用略知一二。但究竟是什么让我困惑,在哪里,怎样。我推测,由我们的高级语言代码组成的标记是由某种语言分类或识别的,如果我们甚至可以称之为RE定义的“语言”,那么它就是“语言”。那CFG呢?那么有限自动机呢。我们在自动机类、状态、语言和字符串中制作的图表。计算机能识别这些状态图吗

字母表是一组有限的、非空的符号。就我们而言,字母表上的字符串是该字母表中符号的有限序列。就我们而言,语言是字母表上的一组字符串

就我们的目的而言,语法是一组称为productions的规则,它通过描述如何构造语言中的字符串来定义语言。常规语法、上下文无关语法和非限制语法都是例子

在我们看来,自动机是一组称为转换的规则,它通过描述如何识别语言中的字符串来定义语言。有限自动机、下推自动机和图灵机就是例子

正则表达式是表示正则语言的一种特殊符号。它们类似于正则文法和有限自动机,因为它们定义了正则语言

编译器的第一项工作是处理输入,以确定输入是否有效。为此,编译器将检查输入是否为所有有效输入(目标编程语言中的程序源代码列表)的语言(字符串集)中的有效字符串。该语言(字符串集)由语法(定义编程语言)定义,编译器实现一个自动机(通常,编译器可以使用任何高达TM级别的功能,但为了性能和简单性,通常将其自身限制为无上下文或最多上下文敏感的功能)。计算机“识别”状态机的意义在于,计算机的工作方式使其能够很好地完成图表所示的工作,就像图表所示的那样