小编Sal*_*foh的帖子

C 编程语言中的产生式是什么?

在 Kernighan 和 Ritchie 所著的《C 编程语言》第二版的附录 A 中,提到了“产生式”这个词:

本手册描述了 1988 年 10 月 31 日提交给 ANSI 的草案所指定的 C 语言,以供批准为“美国信息系统标准 - 编程语言 C,X3.159-1989”。本手册是对拟议草案的解释。标准,而不是标准本身,尽管我们已尽力使其成为该语言的可靠指南。在很大程度上,本文档遵循该标准的总体轮廓,而该标准又遵循本书第一版的轮廓,尽管组织在细节上有所不同。除了重命名一些产生式以及没有形式化词汇标记或预处理器的定义之外,此处给出的语言本身的语法与标准的语法等效。

但我似乎无法弄清楚它的实际含义。我的猜测是它指的是语法部分中键的值:

翻译单元:外部声明 翻译单元外部声明

A 13 节中的以下内容应该暗示了作者的意思,但我自己似乎无法弄清楚,因为我错过了一些基本术语:

该语法具有未定义的终结符整数常量、字符常量、浮点常量、标识符、字符串和枚举常量;打字机风格的单词和符号是 按字面给出的终端。该语法可以机械地转换为自动解析器生成器可接受的输入。除了添加用于指示产生式中的替代项的任何语法标记之外,还需要扩展“其中一个”结构,并且(取决于解析器生成器的规则)使用opt 符号复制每个产生式,一旦使用符号和曾经没有。通过进一步的更改,即删除产生式 typedef-name: 标识符并使​​ typedef-name 成为终结符,该语法可以被 YACC 解析器生成器接受。它只有一个冲突,是由 if-else 歧义产生的。

我也不知道那些大胆的词/句子是什么意思。有人能给我一个见解吗?

c parsing

1
推荐指数
1
解决办法
329
查看次数

标签 统计

c ×1

parsing ×1