python能做什么游戏ll-是Python的语法LL(1)吗?
grammar presented in the Python documentation(用于生成Python解析器)以扩展BNF的形式编写,其中包括“运算符”,例如可选性([a])和Kleene闭包((a b c)*).但是,LL(1)是仅适用于不具有此类运算符的简单无上下文语法的类别.因此,询问该特定语法是否为LL(1)是一个类别错误.
为了使问题有意义,必须将语法转换为简单的无上下文语法.当然,这是可能的,但是没有规范的转换,Python文档也没有解释所使用的精确转换.某些转换可能会产生LL(1)语法,而其他转换可能不会. (实际上,对Kleene星的幼稚翻译很容易导致模棱两可,根据定义,这对任何k都不是LL(k).)
实际上,Python解析设备将语法转换为可执行的解析器,而不是上下文无关的语法.出于Python的务实目的,仅需提前一个令牌即可构建预测分析器就足够了.由于预测解析器可以使用条件语句和循环之类的控制结构,因此无需完全转换为无上下文语法.因此,有可能使用EBNF生成-就像所记录的语法一样-并不是完全左分解的,甚至可以使用向LL(1)转换不平凡的EBNF生成:
simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE
在上面的生产中,(";’small_stmt)*的重复后面可能跟有一个’;’,这意味着简单的while循环将无法正确表示生产.我不知道Python解析器生成器如何处理此生成,但是可以在扩展重复之后通过左分解将其转换为CFG:
simple_stmt: small_stmt rest_A
rest_A : ';' ret_B
| NEWLINE
rest_B : small_stmt rest_A
| NEWLINE
同样,可以将整个EBNF转换为LL(1)语法.之所以没有这样做,是因为该练习对于解析或解释语法都没有用.这将很难阅读,并且EBNF可以直接转换为解析器.
这一点与Python是否为LL(1)的问题无关,因为如果该语言存在LL(1)语法,则该语言就是LL(1).一种语言可能始终存在无限的语法,包括对于任何k而言不是LL(k)的语法,甚至不是与上下文无关的语法,但这与该语言是否为LL(1)无关. ):如果甚至存在一个LL(1)语法,则语言为LL(1). (我知道这不是最初的问题,因此我将不再进一步探讨这个问题.)
python能做什么游戏ll-是Python的语法LL(1)吗?相关推荐
- python能做什么游戏好-用Python可以做哪些有意思的小游戏呢?
print(' *******************************************************************') print(' * *') print(' ...
- python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24 来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...
- python可以给你干什么-Python可以用来做什么 为你揭开python神秘面纱
Python可以用来做什么 为你揭开python神秘面纱 时间:2018-01-24 来源:解读Python 最近,编程界又一语言可谓是着实又火了一把,什么语言呢?python,python为 ...
- python能做游戏吗-没有Python不能做的游戏,这些游戏都可以做
简介:Python编程语言的强大,几乎是众所周知的!那么,下面我给大家介绍一下几个用Python实现的各种游戏吧.不仅能用来做web.爬虫.数据分析等,没想到还能用做这么多的游戏,实在令人惊讶不已.注 ...
- 编程游戏python我的世界_乐学Python编程-做个游戏很简单
1.进入Python 编程世界/ 2 1.1 启动Python 编程环境/ 5 1.2 Python 之禅/ 9 1.3 送你几朵玫瑰花--运行Python 程序/ 16 1.4 Python 的由来 ...
- python能制作游戏吗_没有Python不能做的游戏,这些游戏都可以做
简介:Python编程语言的强大,几乎是众所周知的!那么,下面我给大家介绍一下几个用Python实现的各种游戏吧.不仅能用来做web.爬虫.数据分析等,没想到还能用做这么多的游戏,实在令人惊讶不已.注 ...
- python能做什么游戏-你也可以用Python开发出一款火遍全球的游戏!
还记得这款火遍全球的像素小鸟游戏吗? 没有精细的动画,极简的游戏机制.却成为苹果商店下载量最多的免费 app,并为游戏制作人带来了数百万美元的收益. 当姜文说"站着把钱挣了"的时候 ...
- python一般做什么游戏好玩_只需要9步100行Python代码就可以实现一个简单又好玩的弹球游戏...
今天给大家分享一个有趣又好玩的弹球的游戏,一来可以把类的知识融会一下,二来加深对Python的兴趣.你会发现哎呀Python写小游戏还是蛮方便的,蛮有意思的~~ 需要本文源码:私信回复[源码]即可获取 ...
- 乐学python编程做个游戏很简单_乐学Python编程-做个游戏很简单
Python简单易学又功能强大,而且免费开源,在国内外的很多公司得到了广泛的应用.在科学计算.游戏.图像.人工智能.机器人.教育教学和航天飞机控制等很多领域,Python也是非常重要的编程工具. 本书 ...
- python能做什么游戏-12岁的少年教你用Python做小游戏
你有没有想过电脑游戏是怎样制作出来的?其实它没有你想象的那样复杂! 在这个教程里,你要学做一个叫<兔子和獾>的塔防游戏,兔子作为英雄,需要在城堡里抵御獾的进攻. 为了写这个游戏的代码,你将 ...
最新文章
- 中小型研发团队架构实践:微服务架构
- 十年积累,5.4万GitHub Star一朝清零:开源史上最大意外损失
- 产品经理学技术之数据结构
- C语言之文件读写探究(七):随机读写文件
- vue app准备学习工作
- Atitit 数据记录存储方式 索引组织表 堆组织表 储方式 InnoDB 引擎把数据放在主键索引上,其他索引上保存的是主键 id。这种方式,我们称之为索引组织表(Index Organizi
- 计算机集成技术的研究和应用,信息系统集成技术研究
- Maker工作室_激光雕刻机使用方法
- layDate时间控件
- 如何从Java官网下载 Java API 文档
- 红宝书新日本语能力考试N1~N5全套资料PDF分享 ​​
- 这一次,话筒给你:向自由软件之父 Richard M. Stallman 提问啦!
- 电路自学2-储能元件(电容+电感+储能元件的串并联)
- 2020年阴历二月二十九 投资理财~业余投资者如果不深入研究财报该怎么办?
- 更改文件夹目录、硬盘、U盘的图标
- docker的/var/run/docker.sock参数
- 2014网络红人彭伟个人资料及照片
- ffmpeg的安装以及transform360插件的安装
- 【新年返程离不开Python】最新12306抢票源程序Python版就此分享给大家啦!
- 机器人 大战 android,机器人未来大战
热门文章
- HDU 1058(打表)
- python---基础知识回顾(五)(python2.7和python3.5中的编码)
- mysql和SQLYog工具使用
- UVa 729 The Hamming Distance Problem【枚举排列】
- 、PHP只能访问mysql_php中 mysql函数不能调用,只有mysql_query()可以用
- python爬取图片-Python爬取网页中的图片(搜狗图片)详解
- python人工智能-Python之人工智能(一)
- python是软件吗-python运行环境是什么
- python装饰器作用-如何理解Python装饰器?
- python简单代码hello-PySide教程:一个简单的点击按钮示例