李欣宜 扩展Python的语法和语义
Python的语法扩展系统 Moshmosh Thautwarm&李欣宜 The awareness of low-level implementation details brings the appreciation of an abstraction and the intuitive explanation for it. — Oleg Kiselyov 表达式和语句区分,表达式内部不能包含语句 4. 没有语法宏,代码操作不够自动 5. 没有variant类型(只能靠一大堆抽象类和继承去workaround) 6. 对数据类型的方法不能扩展, 或者进行扩展是初级的,没有基于 类型的多态 那么告辞? 搭嘎!阔托瓦鲁! 摆 脱 编 程 语 言 给 你 的 限 制 Python有一堆好东西: 1. Python有良好的启动速度(看向Julia) 3. PyPI: 分布广泛的极速镜像,自由方便的注册 系统,用法千奇百怪 4. 规范的解释器和虚拟机实现 5. 字节码层面支持运行时报错定位 6. 可用package领域覆盖面大 7. 标准库功能强大,有大量封装程度很高的API 8. 简单、一致、直观的语法设计 作为一门拥有上述特性的脚本语言,即便存在着诸多不足, 但当我想做点什么有趣的东西,写作乐软件,写文字冒险游 戏,搞AI刷手游,甚至连接硬件和外部世界交互,也理所当0 码力 | 39 页 | 3.69 MB | 1 年前34 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarm
0 码力 | 30 页 | 8.04 MB | 1 年前34_杨柳_基于Python构建高稳定可扩展的自动化测试集群
0 码力 | 62 页 | 25.29 MB | 1 年前33 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查
解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 来源,不一定是不能解决的。 扩展语言,开阔思维 我预期的语法(及语义) 扩展系统: 1. 首行用moshmosh? 标志模块 2. +extension名 (extension参数)开 启扩展 3. -extension名 (extension参数)关 闭扩展 4. 可以自定义扩展并 注册 5. 在这套系统下,有 很多简单的自定义 扩展可供练手 任何在不使用该系统时拥有的功能(PYC二进制文件 文件 发布,C扩展等等),在使用该系统后得以保持,拥有 工业级的可靠性和稳定性 6 如何工作? Python Import 忽略Cache Loader, 只对源代码Loader 重写get_data方法 调用父get_data方法, 拿到源代码 moshmosh.extension. perform_extension 源码变换 扩展的语法和语义 并非naïve的,不卫生的0 码力 | 43 页 | 10.71 MB | 1 年前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 8.15.1 异常 . . . . . . . . . . . . . random --- 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 9.6.1 簿记功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 9.6.2 用于字节数据的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 11.8 fnmatch --- Unix 文件名模式匹配0 码力 | 2072 页 | 10.39 MB | 9 月前3Python 标准库参考指南 3.10.15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 8.15.1 异常 . . . . . . . . . . . --- 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.6.1 簿记功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.6.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 11.8 fnmatch --- Unix 文件名模式匹配0 码力 | 2207 页 | 10.45 MB | 9 月前3Python 标准库参考指南 3.8.20
生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 11.8 fnmatch --- Unix 文件名模式匹配 字符的工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 16.13 curses.panel --- curses 的 panel 栈扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 16.14 platform --- 获取底层平台的标识数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 21.6 urllib.request --- 用于打开 URL 的可扩展库 . . . . . . . . . . . . . . . . . . . . . . . . 1117 21.7 urllib.response --- urllib 使用的 Response0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
生成临时文件和目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 11.8 fnmatch --- Unix 文件名模式匹配 字符的工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . 661 16.13 curses.panel --- curses 的 panel 栈扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 16.14 platform --- 获取底层平台的标识数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117 21.6 urllib.request --- 用于打开 URL 的可扩展库 . . . . . . . . . . . . . . . . . . . . . . . . 1117 21.7 urllib.response --- urllib 使用的 Response0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.9.20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 8.15 graphlib --- 操作类似图的结构的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 8.15.1 异常 . . . . . . . . . . . . . random --- 生成伪随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 9.6.1 簿记功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 9.6.2 用于字节数据的函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 11.8 fnmatch --- Unix 文件名模式匹配0 码力 | 2015 页 | 10.12 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 11.7 glob --- Unix 风格路径名模式扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 11.8 fnmatch --- Unix 文件名模式匹配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709 16.13 curses.panel --- curses 的 panel 栈扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712 16.14 platform --- 获取底层平台的标识数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196 21.6 urllib.request --- 用于打开 URL 的可扩展库 . . . . . . . . . . . . . . . . . . . . . . . . . . 1196 21.7 urllib.response --- urllib 使用的 Response0 码力 | 2052 页 | 9.74 MB | 9 月前3
共 153 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16