标识符不能以数字为开头, 是为了简化词法解析器设计和实现,规避词法解析中以数字开头的变量与数字解析冲突的问题。

如果两种类型的词,如果起始符号不同,那么可以很容易把二者区分开;如果起始符号相同,那么以下符号:

234

到底是变量还是数字常量?这种情况下,需要根据上下文判断。这就离“上下文无关法”越来越远了,解析难度也更高。比如:

int 234=234;

我们只有根据 int 才知道第一个234是标识符,只有根据 int 和 = 才知道后面的234是数字常量。不仅实现起来复杂,而且代码可读性更差。

综上,不如直接规定:编程语言中的标识符不允许以数字开头,标识符的名字有无数种取法,规定不以数字开头,几乎没有什么影响。


更多关于编译原理的文章,欢迎查看【编译原理】专栏!

【编译原理】为什么编程语言中,标识符不能以数字开头?相关推荐

  1. python为什么从0开始_为什么大多数编程语言中,索引都是从0开始

    为什么大多数编程语言中,索引都是从0开始 世界上绝大多数语言,但凡涉及到了索引这个概念,索引都是从0开始的,对于初学者,难免觉得别扭,毕竟生活中,但凡涉及到和顺序有关的概念,都是从1开始的,那么为什么 ...

  2. 在众多编程语言中,你可知哪种语言的安全性更高,安全漏洞最少?

    编程语言之争,一直以来是开发者社区的热议问题,因为开发者喜欢证明自己所使用的编程语言占据主导地位,尤其是安全性,只不过讨论的过程往往都伴随着双方的愤怒,最后不了了之.那么,你可知在众多热门编程语言中, ...

  3. python 计算机程序设计-计算机编程语言中,为何Python独得恩宠?

    原标题:计算机编程语言中,为何Python独得恩宠? 截止到2019年6月,根据Indeed网站的统计分析,美国Python开发人员的平均年薪为117,822美元. 相比Java从业者的年薪 $102 ...

  4. c语言中整数和实数能比较大小吗,c语言中,输入一个数字,怎么判断那个数字是整数还是实数,代码如下,输入实数后出现了死循环...

    c语言中,输入一个数字,怎么判断那个数字是整数还是实数,代码如下,输入实数后出现了死循环 int main(void) { SEQLIST a; int b;//用于保存输入选择的数字 a.len=0 ...

  5. 为什么C标识符不能以数字开头

    C语言的标识符不能与已有函数名(系统或者自定义).关键字重复的前提下,可以由数字,字母(区分大小写)和下划线构成,如Wanvote_123,但是有一条:不能以数字开头. 实际上,除了C,大部分编程语言 ...

  6. c语言 编译开关用法,C语言中define的使用方法

    C语言中define的使用方法 学习了这么多年C语言,说实话对宏自以为了如指掌了,没想到看内核代码的时候还是那么吃力,设备驱动代码中有很多这样或者那样的宏定义,各种define都有哪些学习方法呢?以下 ...

  7. 历史上的今天:编程语言中null引用的十亿美元错误

    这是Jerry 2021年的第 10 篇文章,也是汪子熙公众号总共第 281 篇原创文章. 今天是2021年1月17日,星期日,腊月初五. Jerry之前收到CSDN社区赠送的新年礼物,一本台历:&l ...

  8. 编程语言中,循环变量通常都用 i?你知道为什么吗?

    01 前天,我在朋友圈发了一个问题: 为什么编程中,循环变量通常都是用 i ? 没想到,回复的人这么多!要连翻好几页. 这个问题,有 2/3 的人回答正确,有少部分人知道,但是不太确定. 习惯性用 i ...

  9. 编程语言中,还有一种语言,那就是用中文来编程

    编程语言有很多种,不管是JavaScript,java.还是php.还是c语言.又或者是c++等等,这些语言基本都是差不多的有相似之处,只不过就是变了一种表达形式罢了.并且在语句和语法上都存在很多相似 ...

最新文章

  1. 计算机网络·域名等级及域名服务器的命名
  2. 多线程计算0-100 0-200 的和
  3. POJ 1584 A Round Peg in a Ground Hole 判断凸多边形,点到线段距离,点在多边形内
  4. Vue利用Vue.extend()实现自定义弹出框
  5. oracle model 分组,【已解决】关于Oracle分组函数高级用法(按照N条分组并生成唯一号)...
  6. js打印线程id_浅谈python中的多线程和多进程(二)
  7. 转角遇上Volcano,看HPC如何应用在气象行业
  8. IE浏览器不能上网的处理办法
  9. 从app加载页面说开去
  10. 阿里月薪50k招AI工程师,看到要求我傻眼了!
  11. 经典神经网络 -- ResNet : 设计原理与pytorch实现
  12. 使用spring的JdbcTemplate进行查询的三种回调方式的比较
  13. 三相PWM整流器滞环电流控制仿真
  14. 《惢客创业日记》2019.01.23(周三) 太苦涩的人生也会让人麻木
  15. 华为云服务器销售话术技巧,云服务器销售话术
  16. python百度地图和租房信息_python爬虫租房信息在地图上显示的方法
  17. session制作购物车
  18. Python实现鸡兔同笼问题
  19. RG Magic Bullet 15(中英对照)
  20. 计算机视觉教程1-2:单应性矩阵估计

热门文章

  1. java指令和javac指令总结
  2. 主题:的中间层框架 第一节
  3. [hackinglab][CTF][脚本关][2020] hackinglab 脚本关 writeup
  4. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第51篇]什么是基于ID的加密的安全模型,描述一个IBE方案
  5. python群发短信脚本_python实现zabbix发送短信脚本
  6. python默认参数举例_Python中的默认参数实例分析
  7. numpy数组按某一维度相加_Python数据分析之NumPy(高级篇)
  8. java正则表达 w_正则表达式[\s\S] 与[\w\W]这样的用法,比较.
  9. Codeforces Global Round 15 (A-D)没有C
  10. jbb是什么梗_子水是什么意思,子水命理