Julia 中文文档
Julia 中文文档 Julia 中文社区 May 17, 2021 Contents Contents i I 主页 1 II Julia 1.5 中文文档 3 1 鸣谢 7 2 简介 9 III 手册 11 3 入门 13 3.1 资源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 25 调用 C 和 Fortran 代码 253 25.1 创建和 C 兼容的 Julia 函数指针 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 25.2 Mapping C Types to Julia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 25.3 Mapping C Functions to Julia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 ccall / @cfunction argument0 码力 | 1238 页 | 4.59 MB | 1 年前34 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarm
Instructions for Julia back end Also a lot of advanced tricks in the Julia back end *抽象指令 (没有实际指令) Julia“生成函数” Python 字节码 JuVM虚拟栈机 (具体指令集) 抽象机器 (只规定语义) JuVM栈机指令 Python JIT 函数包装 Julia AST/CodeInfo Instructions for Julia Back End Instructions for Julia Back End JuVM: An implementation of our AM Machine Runner: 从AM到VM Julia Code Generation Julia Type Level Encoding 和Python不一样, Julia在运行时不能随意地eval。 Julia在运行时不能随意地eval。 生成的Julia代码需要经过一些tricky的处理, 也就是将AST编码为Julia类型, 然后 使用Julia独特的基于类型的Staging代码生成… A long story here out of Python world, see GeneralizedGenerated.jl or the paper of Zygote.jl for more details. Why based0 码力 | 30 页 | 8.04 MB | 1 年前33 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查
Linux users) Just In Time The Restrain Python JIT 为什么编译器从字节码开始着手? 栈机(stack machine)语义的优化问题? Julia后端和Cython后端的差别? 栈机到基于寄存器(register based)的 语义,控制流分析,SSA 和 Φ 节点和 栈机语义消除。 Cython JIT 基础架构。 为什么编译器从字节码开始着手 那可不可以不翻译? 可以。 然后你要在编译时模拟栈的Push Pop。 Julia后端就是这样做的。 导致For循环编译后并不快。 而基本上编译器0优化的Cython端, 你模拟栈后, 还远不如Python解释器快, 所以必须写分析去掉栈机语义。 那用Julia后端就可以不写了? 来谈后端的问题。 Julia Cython 常见性能提升 100x 1-10x 小函数JIT 比Python慢1000倍 比Python快50% 启动时间 10s以上, “JAOT” 没有,调编译器快 循环折叠 有 有 Debug现场? 每次打log等待30s 瞬秒(ms级) JIT 后端问题 同时, 由于Julia端目前固有的问题,不支持动态链接编译的 Python(例如Anaconda Python), hmmmmm 我投Cython亿票, debug福音。跨语言含JAOT的debug是屑。 Cython问题0 码力 | 43 页 | 10.71 MB | 1 年前3Go vs. GoPlus(Go+)
出现的那个年代 数据科学语言发展史 (TOP50) • SQL (1973) • SAS (1976) • MATLAB (1984) • Python (1991) • R (2000) • Julia (2009) • Go+ (2020) 数据科学的发展古老而漫长 但开始进入加速期 语言发展史的启发 • 脚本语言是特定历史阶段下的产物,长远看静态语言更有生命力 • 数据科学是计算机的最初需求,历史悠久但进步缓慢0 码力 | 54 页 | 1.82 MB | 1 年前306. 李欣宜 扩展Python的语法和语义
或者进行扩展是初级的,没有基于 类型的多态 那么告辞? 搭嘎!阔托瓦鲁! 摆 脱 编 程 语 言 给 你 的 限 制 Python有一堆好东西: 1. Python有良好的启动速度(看向Julia) 2. Python的package系统高度可自定义(importlib, import mechanism) 3. PyPI: 分布广泛的极速镜像,自由方便的注册 系统,用法千奇百怪 40 码力 | 39 页 | 3.69 MB | 1 年前32020 中国开源年度报告
2020增幅 1 易语⾔ 151.02% 2 Rust 143.04% 3 Dart 131.64% 4 Verilog 121.27% 5 R 89.50% 6 C++ 88.47% 7 Julia 81.95% Rust 和 Dart 连续 2 年保持⾼速增⻓。 2020 年是操作系统、物联⽹在国内开源⽣态中备受瞩⽬的⼀年,使得 Verilog 增势强 劲。 易语⾔虽登0 码力 | 46 页 | 4.09 MB | 1 年前3Golang 101(Go语言101 中文版) v1.21.a
Khazaie、 Ziqi Zhao、 Artur Kirillov、 Arinto Murdopo、 Andreas Pannewitz、 Jason-Huang、 Joel Rebello、 Julia Wong、 Wenbin Zhang、 Farid Gh、 Valentin Deleplace、 nofrish、 Peter Matseykanets、 KimMachineGun、 Yoshinori 值的字符串表示,当然也包括字符串类型的值。 使用strings标准库包中的Join函数。 bytes标准库包提供的Buffer类型可以用来构建一个字节切片,然后我们 可以将此字节切片转换为一个字符串。 从Go 1.10开始,strings标准库包中的Builder类型可以用来拼接字符 串。 和bytes.Buffer类型类似,此类型内部也维护着一个字节切片,但 是它在将此字节切片转换为字符串时避免了底层字节的深复制。 = (" " + s1[:50])[1:] 3| } 此第二种防止临时性内存泄露的方法有可能在将来会失效,并且它对于其它编 译器来说很可能是无效的。 第三种防止临时性内存泄露的方法是使用在Go 1.10种引入的strings.Builder 类型来防止一次不必要的复制。 1| import "strings" 2| 3| func f(s1 string) { 4| var b strings0 码力 | 821 页 | 956.82 KB | 1 年前3Golang 101(Go语言101 中文版) v1.21.a
Khazaie、 Ziqi Zhao、 Artur Kirillov、 Arinto Murdopo、 Andreas Pannewitz、 Jason-Huang、 Joel Rebello、 Julia Wong、 Wenbin Zhang、 Farid Gh、 Valentin Deleplace、 nofrish 、 Peter Matseykanets 、 KimMachineGun 、 的字符串表示,当然也包括字符串类型的值。 使用strings标准库包中的Join函数。 bytes标准库包提供的Buffer类型可以用来构建一个字节切片,然后我们可 以将此字节切片转换为一个字符串。 从Go 1.10开始,strings标准库包中的Builder类型可以用来拼接字符串。 和bytes.Buffer类型类似,此类型内部也维护着一个字节切片,但是它在 将此字节切片转换为字符串时避免了底层字节的深复制。 s0 = (" " + s1[:50])[1:] } 此第二种防止临时性内存泄露的方法有可能在将来会失效,并且它对于其它编 译器来说很可能是无效的。 第三种防止临时性内存泄露的方法是使用在Go 1.10种引入的strings.Builder类 型来防止一次不必要的复制。 import "strings" func f(s1 string) { var b strings.Builder0 码力 | 608 页 | 1.08 MB | 1 年前3Golang 101(Go语言101 中文版) v1.21.a
Khazaie、 Ziqi Zhao、 Artur Kirillov、 Arinto Murdopo、 Andreas Pannewitz、 Jason-Huang、 Joel Rebello、 Julia Wong、 Wenbin Zhang、 Farid Gh、 Valentin Deleplace、 nofrish、 Peter Matseykanets、 KimMachineGun、 Yoshinori 的值的字符串表示,当然也包括字符串类型的值。 使用strings标准库包中的Join函数。 bytes标准库包提供的Buffer类型可以用来构建一个字节切片,然后我们可 以将此字节切片转换为一个字符串。 从Go 1.10开始,strings标准库包中的Builder类型可以用来拼接字符串。 和bytes.Buffer类型类似,此类型内部也维护着一个字节切片,但是它在将 此字节切片转换为字符串时避免了底层字节的深复制。 (" " + s1[:50])[1:] 3| } 此第二种防止临时性内存泄露的方法有可能在将来会失效,并且它对于其它编译器 来说很可能是无效的。 第三种防止临时性内存泄露的方法是使用在Go 1.10种引入的strings.Builder类 型来防止一次不必要的复制。 1| import "strings" 2| 3| func f(s1 string) { 4| var b0 码力 | 591 页 | 21.40 MB | 1 年前3百度超级链 XuperChain 3.12-a中文文档
也可以在标签页里写代码,自动高亮 Linux Mac OSX Windows Linux Line 1 Mac OSX Line 1 Windows Line 1 C C++ Python Java Julia Fortran int main(const int argc, const char **argv) { return 0; } int main(const int argc, const0 码力 | 336 页 | 12.62 MB | 1 年前3
共 176 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18