 李欣宜 扩展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) 我预期的语法(及语义) 扩展系统: 1. 首行用moshmosh? 标志模块 2. +extension名 (extension参数)开 启扩展 3. -extension名 (extension参数)关 闭扩展 4. 可以自定义扩展并 注册 5. 在这套系统下,有 很多简单的自定义 扩展可供练手 任何在不使用该系统时拥有的功能(PYC二进制文 件发布,C扩展等等),在使用该系统后得以保持,拥0 码力 | 39 页 | 3.69 MB | 1 年前3 李欣宜 扩展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) 我预期的语法(及语义) 扩展系统: 1. 首行用moshmosh? 标志模块 2. +extension名 (extension参数)开 启扩展 3. -extension名 (extension参数)关 闭扩展 4. 可以自定义扩展并 注册 5. 在这套系统下,有 很多简单的自定义 扩展可供练手 任何在不使用该系统时拥有的功能(PYC二进制文 件发布,C扩展等等),在使用该系统后得以保持,拥0 码力 | 39 页 | 3.69 MB | 1 年前3
 4 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarmjl for more details. Why based on bytecode? 鲁棒, NO HACK, 不依赖源码(inspect.getsource), 可以JIT由.pyc文件创建的模块 Why Julia as the first back end? Julia是一门multi-stage语言, 能够优化动态类型情形(e.g., 对一个符号做多次不同类型的赋值)。 JIT需要代码生成,0 码力 | 30 页 | 8.04 MB | 1 年前3 4 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarmjl for more details. Why based on bytecode? 鲁棒, NO HACK, 不依赖源码(inspect.getsource), 可以JIT由.pyc文件创建的模块 Why Julia as the first back end? Julia是一门multi-stage语言, 能够优化动态类型情形(e.g., 对一个符号做多次不同类型的赋值)。 JIT需要代码生成,0 码力 | 30 页 | 8.04 MB | 1 年前3
 4_杨柳_基于Python构建高稳定可扩展的自动化测试集群0 码力 | 62 页 | 25.29 MB | 1 年前3 4_杨柳_基于Python构建高稳定可扩展的自动化测试集群0 码力 | 62 页 | 25.29 MB | 1 年前3
 3 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二进制文件 任何在不使用该系统时拥有的功能(PYC二进制文件 发布,C扩展等等),在使用该系统后得以保持,拥有 工业级的可靠性和稳定性 6 如何工作? Python Import 忽略Cache Loader, 只对源代码Loader 重写get_data方法 调用父get_data方法, 拿到源代码 moshmosh.extension. perform_extension 源码变换 扩展的语法和语义 并非naïve的,不卫生的0 码力 | 43 页 | 10.71 MB | 1 年前3 3 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二进制文件 任何在不使用该系统时拥有的功能(PYC二进制文件 发布,C扩展等等),在使用该系统后得以保持,拥有 工业级的可靠性和稳定性 6 如何工作? Python Import 忽略Cache Loader, 只对源代码Loader 重写get_data方法 调用父get_data方法, 拿到源代码 moshmosh.extension. perform_extension 源码变换 扩展的语法和语义 并非naïve的,不卫生的0 码力 | 43 页 | 10.71 MB | 1 年前3
 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 内置函数 5 3 内置常量 27 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4 内置类型 29 4.1 逻辑值检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.13.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.13 2.1 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.2.3 正则表达式对象(正则对象)0 码力 | 2072 页 | 10.39 MB | 9 月前3 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 内置函数 5 3 内置常量 27 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4 内置类型 29 4.1 逻辑值检测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.13.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.13 2.1 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.2.3 正则表达式对象(正则对象)0 码力 | 2072 页 | 10.39 MB | 9 月前3
 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 内置函数 5 3 内置常量 25 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 内置类型 27 4.1 逻辑值检测 --- 对枚举的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9 数字和数学模块 261 9.1 numbers --- 数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . statistics --- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10 函数式编程模块 315 10.1 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 内置函数 5 3 内置常量 25 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 内置类型 27 4.1 逻辑值检测 --- 对枚举的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9 数字和数学模块 261 9.1 numbers --- 数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . statistics --- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10 函数式编程模块 315 10.1 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools0 码力 | 1927 页 | 9.69 MB | 9 月前3
 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 内置函数 5 3 内置常量 25 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 内置类型 27 4.1 逻辑值检测 --- 对枚举的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9 数字和数学模块 261 9.1 numbers --- 数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . statistics --- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10 函数式编程模块 315 10.1 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 内置函数 5 3 内置常量 25 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4 内置类型 27 4.1 逻辑值检测 --- 对枚举的支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9 数字和数学模块 261 9.1 numbers --- 数字的抽象基类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . statistics --- 数学统计函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 10 函数式编程模块 315 10.1 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools0 码力 | 1927 页 | 9.69 MB | 9 月前3
 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 内置函数 5 3 内置常量 29 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 内置类型 31 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.13.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 6.20 码力 | 2207 页 | 10.45 MB | 9 月前3 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 内置函数 5 3 内置常量 29 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 内置类型 31 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.13.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 6.20 码力 | 2207 页 | 10.45 MB | 9 月前3
 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 内置函数 7 3 内置常量 33 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4 内置类型 35 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14 2.1 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.2.3 正则表达式对象(正则对象)0 码力 | 2246 页 | 11.74 MB | 9 月前3 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 内置函数 7 3 内置常量 33 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4 内置类型 35 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14 2.1 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.2.3 正则表达式对象(正则对象)0 码力 | 2246 页 | 11.74 MB | 9 月前3
 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 内置函数 7 3 内置常量 33 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4 内置类型 35 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14 2.1 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 6.2.3 正则表达式对象(正则对象)0 码力 | 2242 页 | 11.73 MB | 9 月前3 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 内置函数 7 3 内置常量 33 3.1 由 site 模块添加的常量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4 内置类型 35 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.14 2.1 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 6.2.3 正则表达式对象(正则对象)0 码力 | 2242 页 | 11.73 MB | 9 月前3
共 149 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15














 
 