news 2026/6/15 15:50:48

上下文无关文法(CFG)—软考文法题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
上下文无关文法(CFG)—软考文法题

你有没有想过,咱们写的代码(比如a+b-c),为啥计算机能看懂?其实背后是一套 “规则说明书” 在起作用 —— 这就是上下文无关文法(CFG),而 “推导” 就是计算机按照说明书把 “抽象符号” 变成 “具体代码” 的过程。

一、“推导” 就是 “按规则变魔术”

先把 CFG 里的符号翻译成生活里的东西:

  • 非终结符(比如 E、T、F,或者你说的 Vₙ):是 “半成品模块”,可以继续拆分、变形;
  • 终结符(比如 a、b、+、-,或者你说的 Vₜ):是 “成品零件”,不能再拆分;
  • →(可推导):就是 “变魔术的规则”—— 左边的半成品,能按规则变成右边的组合。

举个例子:规则写 “E→E-T”,意思就是 “半成品 E,能变成‘E + 一个半成品 T’”,就像 “蛋糕→蛋糕 + 奶油”—— 蛋糕是半成品,能加上奶油变成新的蛋糕。

二、“推导” 的实际操作:从抽象到具体

咱们用a+-b-c这个表达式,看 “推导” 是怎么把抽象符号变成具体代码的:

  1. 起点:从 “开始符号” 出发所有推导都从 “开始符号”(比如 S 或 P)开始,这里我们从 E(代表 “表达式”)出发。
  2. 第一次变形:拆分 E按规则 “E→E-T”,把 E 拆成 “E + 减号 + T”—— 相当于把 “蛋糕” 变成 “蛋糕 + 一块巧克力”。
  3. 第二次变形:拆分里面的 E把拆分出的 E 再按规则 “E→E+T” 变形,变成 “E + 加号 + T”—— 相当于把 “蛋糕” 再拆成 “蛋糕 + 一勺奶油”。
  4. 把半成品变成成品继续把小的 E、T 按规则换成 “成品零件”:
    • E 可以换成 T,T 可以换成 F,F 可以换成 a(这是 “F→id” 的规则,id 就是 a、b 这类单字母);
    • T 也能换成 F,F 可以按 “F→-F” 变成 “-b”(负号 + 字母);
    • 最后把所有半成品都换成成品,就得到了 “a + (-b) - c”,也就是咱们看到的a+-b-c
三、为啥要 “推导”?计算机就靠它 “读” 懂代码

计算机看不懂咱们写的a+-b-c,但能看懂 CFG 的规则 —— 推导就是 “翻译” 的过程:把人类写的表达式,按规则拆成计算机能识别的 “符号组合”,确认这个表达式是 “合法” 的。

比如你写a*b+c,计算机就会按规则一步步推导,看能不能从 E 变成这个式子;要是你写a**b(两个乘号连写),按规则推不出来,计算机就会报错 “语法错误”—— 这就是推导的实际作用。

简单说,“推导” 就是计算机拿着规则说明书,把抽象的符号模块,一步步拼成你写的代码的过程,只要能拼出来,这个代码就是合法的

阿雪技术观

让我们积极投身于技术共享的浪潮中,不仅仅是作为受益者,更要成为贡献者。无论是分享自己的代码、撰写技术博客,还是参与开源项目的维护和改进,每一个小小的举动都可能成为推动技术进步的巨大力量

Embrace open source and sharing, witness the miracle of technological progress, and enjoy the happy times of humanity! Let's actively join the wave of technology sharing. Not only as beneficiaries, but also as contributors. Whether sharing our own code, writing technical blogs, or participating in the maintenance and improvement of open source projects, every small action may become a huge force driving technological progrss.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 15:00:33

DataHub终极部署指南:3步攻克企业数据治理难题

DataHub终极部署指南:3步攻克企业数据治理难题 【免费下载链接】datahub 项目地址: https://gitcode.com/gh_mirrors/datahub/datahub 企业数据治理面临的核心痛点是什么?是数据孤岛让业务决策迟缓,是元数据混乱导致数据价值无法释放…

作者头像 李华
网站建设 2026/6/6 23:44:17

BrewerMap:让MATLAB数据可视化色彩瞬间专业化的终极方案

BrewerMap:让MATLAB数据可视化色彩瞬间专业化的终极方案 【免费下载链接】BrewerMap [MATLAB] The complete palette of ColorBrewer colormaps. Simple selection by scheme name and map length. 项目地址: https://gitcode.com/gh_mirrors/br/BrewerMap 还…

作者头像 李华
网站建设 2026/6/10 21:24:04

PDF-Extract-Kit-1.0安全加固指南:企业级部署的安全考量

PDF-Extract-Kit-1.0安全加固指南:企业级部署的安全考量 在企业级文档处理场景中,PDF-Extract-Kit-1.0作为一款集成了布局分析、表格识别、公式提取与推理能力的综合性工具集,正被广泛应用于金融、科研、法律等高敏感信息处理领域。其基于深…

作者头像 李华
网站建设 2026/6/14 16:26:19

如何用Live Avatar解决虚拟客服口型不同步问题?

如何用Live Avatar解决虚拟客服口型不同步问题? 随着AI数字人技术的快速发展,虚拟客服已成为企业提升服务效率的重要手段。然而,在实际应用中,一个长期困扰开发者的问题是:语音与口型动作不同步。这种不协调不仅影响用…

作者头像 李华
网站建设 2026/6/15 11:16:43

ComfyUI跨平台兼容终极指南:让AI创作无处不在

ComfyUI跨平台兼容终极指南:让AI创作无处不在 【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI 你是否曾经因为硬件限制而无法享受AI绘画的乐趣?ComfyUI作…

作者头像 李华