use*_*367 5 programming-languages
为什么编程语言的变量名中不允许使用特殊字符(下划线除外)?是否有任何与计算机体系结构或组织相关的原因。
大多数语言都有很长的历史,使用 ASCII 字符集。这些语言往往具有简单的标识符描述(例如,以 AZ 开头,后跟 AZ,0-9,可能是下划线;COBOL 允许“-”作为名称的一部分)。当你只有一个 029 按键或电传打字机时,你没有很多其他字符,而且大多数都被用作运算符语法或标点符号。
在较旧的机器上,这确实具有优势,您可以将标识符编码为基数 37(AZ,0-9,空)[32 位中的 6 个字符] 或基数 64(AZ,az,0-9,下划线和空) ) 数字 [36 位中的 6 个字符,早期机器中的常见字长) 用于小符号表。结果:许多旧语言对标识符大小有 6 个字符的限制(例如,FORTRAN)。
LISP 语言一直以来都更加宽容。名称可以是对 LISP 具有特殊意义的字符以外的任何字符,例如 ( ) [ ] ' ` #,并且通常有一些方法可以使用某种转义约定将这些字符插入到名称中。我们的 PARLANSE 语言就像 LISP;它使用“~”作为转义符,因此您可以将~(begin+~)end写 为单个标识符,其实际拼写为“ (begin+end) ”。
更现代的语言(Java、C#、Scala、......、呃,甚至 PARLANSE)在 Unicode 时代成长起来,并且倾向于在标识符中允许大多数 unicode(实际上,它们倾向于允许命名的 Unicode 子集作为身份标识)。由汉字构成的标识符在这些语言中是完全合法的。
这在西半球是一种品味问题:大多数标识符名称仍然倾向于仅使用字母和数字(有时,西欧字母)。我不知道日语和中文在具有支持 Unicode 的字符集时真正用于标识符名称;我所看到的亚洲代码倾向于遵循西方标识符约定,但注释倾向于使用更多的 Unicode 字符集。
| 归档时间: |
|
| 查看次数: |
4089 次 |
| 最近记录: |