C 语言 First 和 Follow 程序17 Mar 2025 | 6 分钟阅读 First 和 Follow 集合 用于 语法分析 过程。在本文中,我们将结合 C 语言学习 First 和 Follow 集合,并编写一个 C 语言程序来计算 First 和 Follow 集合。 由于 First 和 Follow 集合 用于 编译器设计 和解析技术,建议先了解 语法分析、LL(1) 解析 的基础知识,以及计算给定文法的 First 和 Follow 集合 的规则。 让我们来理解 First 集合 和 Follow 集合: First 集合文法中 非终结符 的 First 集合 是指由该 非终结符 生成的字符串的 第一个符号 是的 终结符 集合。换句话说,它是从该 非终结符 推导出的字符串开头可能出现的所有标记的集合。 Follow 集合文法中 非终结符 的 Follow 集合 是指在文法的任何有效句子中,可能紧跟在由该 非终结符 推导出的 字符串 后面的终结符集合。换句话说,它是任何有效句子中可能出现在 非终结符 之后的标记的集合。 示例让我们考虑以下作为输入的 上下文无关文法 输入 计算给定文法的 First 和 Follow 集合的 C 程序 代码 输出 ![]() 说明 上述 C 程序 将打印出给定文法的计算得到的 First 和 Follow 集合。让我们来理解 First 和 Follow 集合 是如何计算的。 步骤 1:计算 First 集合 First(E): 它包含产生式 E -> AB 的 第一个终结符,即 A 的 First 集合 中的 'i'。 First(A): 它包含产生式 A ->"ilove" 的 第一个终结符,即 'i'。 First(B): 它包含产生式 B ->"jtptutorials" 的 第一个终结符,即 'j'。 步骤 2:计算 Follow 集合 Follow(E): 由于 'E' 是 开始符号,Follow(E) 将包含 '$' 符号,它代表 输入 的 结束,因为开始符号后面可以跟着输入的结束。 Follow(A): 它包含在任何产生式中可能跟在 'A' 后面的 终结符。在此文法中,'A' 后面跟着 'B',所以我们将 First(B) 包含在 Follow(A) 中。 Follow(B): 它包含在任何产生式中可能跟在 'B' 后面的 终结符。由于没有其他产生式 跟随 'B',我们将查看 Follow(E),因为 'E' 可以产生 'B'。 结论我们已经理解了如何编写 C 程序来计算给定上下文无关文法的 First 和 Follow 集合。 下一主题C 语言的插值查找 |
用户定义函数与库函数在 C 中的区别 本主题将讨论 C 编程语言中用户定义函数与库函数之间的区别。在讨论该主题之前,让我们先了解 C 语言中的函数。函数是一组独立的...
阅读 4 分钟
10.在此程序中,我们需要找出数组中存在的最小元素。这可以通过维护一个变量min来实现,该变量最初将保存第一个元素的值。通过将min的值与数组中的元素进行比较来循环遍历数组...
阅读 2 分钟
控制语句是 C 等编程语言的重要组成部分,因为它们允许程序员控制程序的执行流程。在 C 语言中,有三种类型的控制语句:选择语句、迭代语句和跳转语句。C 语言中的控制语句是编程结构...
阅读 4 分钟
尝试通过编程创建不同的东西总是很有趣的。使用编程语言创建模式将是你在制作更具创意项目之前迈出的第一步。在本文中,我们将讨论如何使用C编程语言创建一些有趣的模式。在本文中,...
阅读9分钟
在本节中,我们将学习 C 语言编程中的 getchar() 函数。getchar() 函数是一个非标准函数,其含义已在 stdin.h 头文件中定义,用于从用户那里接受单个输入。换句话说,它是 C...
阅读 3 分钟
动态数组是编程中强大的数据结构,允许在运行时创建和操作不同大小的数组。在 C 语言中,动态数组是使用指针和内存分配函数实现的,这使得它们成为优化内存使用和创建高效程序的宝贵工具。
阅读 6 分钟
在计算机科学中,队列是一种线性数据结构,其中元素根据“先进先出”(FIFO)原则从一端插入,从另一端移除。这种数据结构可以用于控制操作顺序或存储数据。C...
5 分钟阅读
C 语言中的关系运算符 在 C 编程中,关系运算符主要用于比较两个表达式或整数集。一个操作数是否比另一个操作数大、等于或小于,与连接的有效性无关。布尔响应,即...
11 分钟阅读
简介:C 编程语言中的 strtol 函数将字符串转换为长整数。strtol 函数跳过字符串开头的所有空白字符,将之后的字符转换为数字,然后在遇到第一个字符时终止...
阅读 4 分钟
辛普森法是由托马斯·辛普森提出的一种数值积分方法,因此得名辛普森法。虽然辛普森法有一些规则,但最基本的是辛普森的两个规则:辛普森第一法则:它被称为辛普森 1/3...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India