"Programminglanguage X的字母"是指真正的字符还是单词?

eri*_*ork 2 programming-languages

在Dragonbook的练习3.3.1中,学生应该

查阅语言参考手册以确定(i)形成输入字母表的字符集(不包括那些可能仅出现在以下每种语言的字符串或注释中的字符:[...].

这是没有真正意义,我真的很喜欢形容所有字符a,b,/一种语言,哪怕是对编译器的练习.编程语言的字母表不是一组可能的单词,比如{id, int, float, string, if, for, ... }

如果你认为它在这个词的基本概念中真正成为"人物",那么??/在C中是一个还是三个(或两者)?

Jay*_*Jay 5

语言的字母表是字符集而不是单词.

编程语言的字母表不是一组可能的单词,比如{id,int,float,string,if,for,...}?

不,字母表是用于形成单词的字符集.指定语言时,必须提供字母表,否则无法区分有效令牌和无效令牌.

更新

您将术语"单词"与"令牌"混淆.一个词不是语言或程序的某些部分.一个单词是字母表中有限的字符串.它与"int"或"while"等语言构造无关.例如,每个C程序都是一个单词,因为它是字母表中有限的字符串.所有这些程序(单词)的集合形成C编程语言.像"void"或"int"这样的标记完全是另一回事.

回顾一下,首先要定义要使用的一些字符集.这称为字母表.这些字符的有限字符串形成单词.语言是所有可能单词的一部分.要定义语言,您可以定义属于该语言的单词.例如,使用正则表达式或无上下文语法.

维基百科有一个很好的正式语言页面.
http://en.wikipedia.org/wiki/Formal_language