3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查 post_rewrite_src (self, io) moshmosh/extension.py 简单的解释? 这是一个新语言 • 借用了Python的parser • 提供了一个用户容易扩展的编译器 • 编译到Python • 可以编译成Python字节码文件发布(完全兼容) • 融于Python的生态 Moshmosh:我的Python 不可能这么甜美清新 世界上最快的Python The Restrain Python JIT 为什么编译器从字节码开始着手? 栈机(stack machine)语义的优化问题? Julia后端和Cython后端的差别? 栈机到基于寄存器(register based)的 语义,控制流分析,SSA 和 Φ 节点和 栈机语义消除。 Cython JIT 基础架构。 为什么编译器从字节码开始着手? 因为运行时一旦开始你是拿不到源代码的。 导致For循环编译后并不快。 而基本上编译器0优化的Cython端, 你模拟栈后, 还远不如Python解释器快, 所以必须写分析去掉栈机语义。 那用Julia后端就可以不写了? 来谈后端的问题。 Julia Cython 常见性能提升 100x 1-10x 小函数JIT 比Python慢1000倍 比Python快50% 启动时间 10s以上, “JAOT” 没有,调编译器快 循环折叠 有 有0 码力 | 43 页 | 10.71 MB | 1 年前3
Python 2.7.18 正则表达式 HOWTO 我们首先要了解最简单的正则表达式。由于正则表达式用于对字符串进行操作,因此我们将从最常见的任务 开始:匹配字符。 有关正则表达式(确定性和非确定性有限自动机)的计算机科学的详细解释,你可以参考几乎所有有关编写 编译器的教科书。 2.1 匹配字符 大多数字母和字符只会匹配自己。例如,正则表达式 test 将完全匹配字符串 test 。(你可以启用一个不区 分大小写的模式,让这个正则匹配 Test 或 TEST,稍后会详细介绍。) 'insuperable').span() (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re.search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以确定匹配的第一 个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描字符串,寻找起始字 符,只在找到 'C'0 码力 | 18 页 | 369.95 KB | 11 月前3
Python 2.7.18 正则表达式 HOWTO 我们首先要了解最简单的正则表达式。由于正则表达式用于对字符串进行操作,因此我们将从最常见的任务 开始:匹配字符。 有关正则表达式(确定性和非确定性有限自动机)的计算机科学的详细解释,你可以参考几乎所有有关编写 编译器的教科书。 2.1 匹配字符 大多数字母和字符只会匹配自己。例如,正则表达式 test 将完全匹配字符串 test 。(你可以启用一个不区 分大小写的模式,让这个正则匹配 Test 或 TEST,稍后会详细介绍。) 'insuperable').span() (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re.search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以确定匹配的第一 个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描字符串,寻找起始字 符,只在找到 'C'0 码力 | 18 页 | 369.95 KB | 11 月前3
Python 2.7.18 正则表达式 HOWTO 我们首先要了解最简单的正则表达式。由于正则表达式用于对字符串进行操作,因此我们将从最常见的任务 开始:匹配字符。 有关正则表达式(确定性和非确定性有限自动机)的计算机科学的详细解释,你可以参考几乎所有有关编写 编译器的教科书。 2.1 匹配字符 大多数字母和字符只会匹配自己。例如,正则表达式 test 将完全匹配字符串 test 。(你可以启用一个不区 分大小写的模式,让这个正则匹配 Test 或 TEST,稍后会详细介绍。) 'insuperable').span() (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re.search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以确定匹配的第一 个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描字符串,寻找起始字 符,只在找到 'C'0 码力 | 18 页 | 369.95 KB | 11 月前3
Python 3.10.15 正则表达式 HOWTO 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始: 匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于 编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 。(你可以启用不 区分大小写模式,让这个正则也匹配 Test 或 TEST 'insuperable').span()) (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re.search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以确定匹配的第一 个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描字符串,寻找起始字 符,只在找到 'C'0 码力 | 18 页 | 391.85 KB | 11 月前3
Python 3.8.20 正则表达式 HOWTO 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 。(你可以启 用不区分大小写模式,让这个正则也匹配 Test 或 TEST 'insuperable').span()) (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re. search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以 确定匹配的第一个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描 字符串,寻找起始字符,只在找到 'C'0 码力 | 17 页 | 393.47 KB | 11 月前3
Python 3.8.20 正则表达式 HOWTO 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 。(你可以启 用不区分大小写模式,让这个正则也匹配 Test 或 TEST 'insuperable').span()) (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re. search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以 确定匹配的第一个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描 字符串,寻找起始字符,只在找到 'C'0 码力 | 17 页 | 393.47 KB | 11 月前3
Python 3.10.15 正则表达式 HOWTO 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 。(你可以启 用不区分大小写模式,让这个正则也匹配 Test 或 TEST 'insuperable').span()) (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re. search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以 确定匹配的第一个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描 字符串,寻找起始字符,只在找到 'C'0 码力 | 17 页 | 393.01 KB | 11 月前3
Python 3.8.20 正则表达式 HOWTO 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开始: 匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关于 编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 。(你可以启用不 区分大小写模式,让这个正则也匹配 Test 或 TEST 'insuperable').span()) (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re.search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以确定匹配的第一 个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描字符串,寻找起始字 符,只在找到 'C'0 码力 | 18 页 | 392.29 KB | 11 月前3
Python 3.12 正则表达式 HOWTO 让我们从最简单的正则表达式开始吧。由于正则表达式是用来操作字符串的,我们将从最常见的任务开 始:匹配字符。 关于正则表达式背后的计算机科学的详细解释(确定性和非确定性有限自动机),你可以参考几乎所有关 于编写编译器的教科书。 2.1 匹配字符 大多数字母和符号都会简单地匹配自身。例如,正则表达式 test 将会精确地匹配到 test 。(你可以启 用不区分大小写模式,让这个正则也匹配 Test 或 TEST 'insuperable').span()) (2, 7) 有时你会被诱惑继续使用 re.match() ,只需在你的正则前面添加 .* 。抵制这种诱惑并使用 re. search() 代替。正则表达式编译器对正则进行一些分析,以加快寻找匹配的过程。其中一个分析可以确 定匹配的第一个特征必须是什么;例如,以 Crow 开头的模式必须与 'C' 匹配。分析让引擎快速扫描字 符串,寻找起始字符,只在找到 'C'0 码力 | 17 页 | 404.43 KB | 11 月前3
共 52 条
- 1
- 2
- 3
- 4
- 5
- 6













