【编译Chap4】求first集、follow集例题
方法求 FIRST 集的规则反复扫描所有产生式以A → X 1 X 2 ⋯ X n A\to X_1X_2\cdots X_nA→X1​X2​⋯Xn​为例依次处理X i X_iXi​i从1 to n把F I R S T ( X i ) − { ε } \mathrm{FIRST}(X_i)-\{\varepsilon\}FIRST(Xi​)−{ε}加入F I R S T ( A ) \mathrm{FIRST}(A)FIRST(A)如果ε ∉ F I R S T ( X i ) \varepsilon\notin \mathrm{FIRST}(X_i)ε∈/FIRST(Xi​)停止处理该产生式如果ε ∈ F I R S T ( X i ) \varepsilon\in\mathrm{FIRST}(X_i)ε∈FIRST(Xi​)继续处理下一个X i 1 X_{i1}Xi1​如果所有X i X_iXi​都能推出ε \varepsilonε则把ε \varepsilonε加入F I R S T ( A ) \mathrm{FIRST}(A)FIRST(A)。求 FOLLOW 集的规则开始符号把$输入结束符放入开始符号的 FOLLOW 集。反复扫描所有产生式以A → α B β A \to \alpha B \betaA→αBβ为例把F I R S T ( β ) − { ε } \mathrm{FIRST}(\beta) - \{\varepsilon\}FIRST(β)−{ε}加入F O L L O W ( B ) \mathrm{FOLLOW}(B)FOLLOW(B)。可空情况如果β \betaβ能推导出ε \varepsilonε即ε ∈ F I R S T ( β ) \varepsilon \in \mathrm{FIRST}(\beta)ε∈FIRST(β)或者B BB在产生式最右边则把F O L L O W ( A ) \mathrm{FOLLOW}(A)FOLLOW(A)加入F O L L O W ( B ) \mathrm{FOLLOW}(B)FOLLOW(B)。Appendix如果有左递归先消除左递归消除直接左递归的方法最简单的情况A → A α ∣ β A \to A\alpha \mid \betaA→Aα∣β改写为A → β A ′ A ′ → α A ′ ∣ ε \begin{aligned} A \to \beta A \\ A \to \alpha A \mid \varepsilon \end{aligned}AA′​→βA′→αA′∣ε​一般形式A → A α 1 ∣ A α 2 ∣ ⋯ ∣ A α m ∣ β 1 ∣ β 2 ∣ ⋯ ∣ β n A \to A\alpha_1 \mid A\alpha_2 \mid \cdots \mid A\alpha_m \mid \beta_1 \mid \beta_2 \mid \cdots \mid \beta_nA→Aα1​∣Aα2​∣⋯∣Aαm​∣β1​∣β2​∣⋯∣βn​改写为A → β 1 A ′ ∣ β 2 A ′ ∣ ⋯ ∣ β n A ′ A ′ → α 1 A ′ ∣ α 2 A ′ ∣ ⋯ ∣ α m A ′ ∣ ε \begin{aligned} A \to \beta_1 A \mid \beta_2 A \mid \cdots \mid \beta_n A \\ A \to \alpha_1 A \mid \alpha_2 A \mid \cdots \mid \alpha_m A \mid \varepsilon \end{aligned}AA′​→β1​A′∣β2​A′∣⋯∣βn​A′→α1​A′∣α2​A′∣⋯∣αm​A′∣ε​AppendixLL1表的构造遍历所有产生式以A → α为例对每个终结符 a ∈ FIRST(α)把 A → α 加至 M[A, a]中其中 α 为含有首字符 a 的候选式或唯一的候选式若ε ∈ FIRST(A)则对任何 b ∈ FOLLOW(A) 把 A → ε 加至 M[A, b]中六道例题第一题答案第二题答案firstAabcdgBbεCacdDdεEcgfollow不要忘记$求first非常容易错知乎有很好的方法论若X-a…则将终结符加入FIRST(X)中;注意非终结符的情况若X-e ,则将终结符e加入FIRST(X)中(e表示空集)若 X-BC…D,则将FirstB所有元素除了空集加入FirstX然后检测FirstB若FirstB中不存在空集, 即e,则停止若存在则向B的后面查看将FirstC中所有元素除了空集加入FirstX然后再检测FirstC中是否有e…直 到最后若D之前的所有非终结符的First集中都含有e,则检测到D时将FirstD也加入FirstX若FirstD中含有e,则将 e加入FirstX。总之看到epsilon要继续往后找直到没有epsilon或能确定X可置空为止。再一个简单例子下面的不能因为A的first集是epsilonS的第一个符号是A所以S的first集中就是epsilon这是不对的first集中有epsilon代表该符号可置空而在下面这个例题中S推不出空。所以此时应该向后找A的后面是aa的first是本身a到这里就可以停止了。第三题first:S: a,b,εAa,bBa,bfollow:第四题2010期末A卷第二题第五题lws 模拟试卷一 第二题第六题ref:https://blog.csdn.net/Baron_wu/article/details/84994254https://blog.csdn.net/RENSRM/article/details/111595754https://zhuanlan.zhihu.com/p/268555826

相关新闻

Hadoop电信客服分析链路:从混杂日志到交互式业务看板

Hadoop电信客服分析链路:从混杂日志到交互式业务看板

简介:本资源是一个面向大数据初学者与电信行业数据工程师的Hadoop全栈实战项目,聚焦客服数据采集、存储、分析与可视化闭环。项目基于真实业务场景,整合Zookeeper集群协调、HBase实时存储、Flume日志采集、Kafka流式分发及HDFSMapReduce批处理…

2026/10/19 1:15:16 阅读更多 →
循环架构大揭秘:Dory1.0-4B 的 normalized-GPT 与混合注意力如何炼成 256K 长上下文

循环架构大揭秘:Dory1.0-4B 的 normalized-GPT 与混合注意力如何炼成 256K 长上下文

人工智能大模型推理模型模型量化 【免费下载链接】NVIDIA-Nemotron-Labs-Dory1.0-4B-MXFP8 项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/NVIDIA-Nemotron-Labs-Dory1.0-4B-MXFP8 点击查看 免费下载 NVIDIA-Nemotron-Labs-Dory1.0-4B-MXFP8 是 NVIDIA 推出…

2026/10/19 1:15:16 阅读更多 →
基于溯源图与图神经网络的APT攻击链检测方法

基于溯源图与图神经网络的APT攻击链检测方法

简介:一份基于溯源图的APT攻击检测方法优化Python实现源码,适合信息安全、计算机科学、数据科学等专业学生用于毕业设计、课程设计或期末大作业。项目代码已经过功能验证,可稳定运行,并提供清晰的目录结构与注释,便于二…

2026/10/19 1:15:16 阅读更多 →

最新新闻

FuzzFeed: An Automatic Approach to Weakest Precondition Generation using LLMs and Fuzzing

FuzzFeed: An Automatic Approach to Weakest Precondition Generation using LLMs and Fuzzing

文章主要内容和创新点 主要内容 本文提出了一种名为FuzzFeed的自动生成最弱前置条件(Weakest Precondition, WP)的方法,该方法结合大语言模型(LLMs)和模糊测试(fuzzing)技术,通过模糊测试引导(Fuzzing Guidance, FG)机制优化LLM生成的候选WP,最终提高WP的正确性和…

2026/10/19 1:58:27 阅读更多 →
从网易云和 QQ 音乐批量补齐 LRC 歌词:163MusicLyrics 上手教程

从网易云和 QQ 音乐批量补齐 LRC 歌词:163MusicLyrics 上手教程

从网易云和 QQ 音乐批量补齐 LRC 歌词:163MusicLyrics 上手教程 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 刚整理完一大批曲库,播放器里却有…

2026/10/19 1:58:27 阅读更多 →
如何为Eclim编写自定义插件:完整分步教程让Vim支持你的语言

如何为Eclim编写自定义插件:完整分步教程让Vim支持你的语言

【免费下载链接】eclim Expose eclipse features inside of vim. 项目地址: https://gitcode.com/gh_mirrors/ec/eclim 点击查看 免费下载 Eclim 是一款把 Eclipse 强大功能"搬进" Vim 的开源工具,而它的多语言支持完全靠插件实现——每一门语…

2026/10/19 1:58:27 阅读更多 →
Meta SecAlign: A Secure Foundation LLM Against Prompt Injection Attacks

Meta SecAlign: A Secure Foundation LLM Against Prompt Injection Attacks

文章主要内容总结 该论文介绍了Meta SecAlign,这是首个开源、开放权重的大型语言模型(LLM),其内置模型级防御机制,旨在抵御提示注入(Prompt Injection, PI)攻击,同时保持商业级模型的性能。 研究背景:提示注入攻击是LLM集成应用的主要安全威胁,现有模型级防御虽有效…

2026/10/19 1:58:27 阅读更多 →
【Python3基础】05-容器数据类型

【Python3基础】05-容器数据类型

[TOC] 🛫 系列文章导航 【Python3基础】01-Python 环境与开发工具【Python3基础】02-输入输出与程序运行【Python3基础】03-基本数据类型与表达式【Python3基础】04-字符串与格式化【Python3基础】05-容器数据类型【Python3基础】06-条件判断与循环【Python3基础】…

2026/10/19 1:58:27 阅读更多 →
Folia Sync-Server 完整部署指南:10 分钟让 AI 主题多端同步

Folia Sync-Server 完整部署指南:10 分钟让 AI 主题多端同步

Folia Sync-Server 完整部署指南:10 分钟让 AI 主题多端同步 【免费下载链接】folia-major 专注于绚丽的歌词动画效果的本地音乐/navidrome/第三方多平台在线音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/fo/folia-major Folia 是一款本地优先…

2026/10/19 1:57:24 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →