2.1.5 Go语言编译器简介中国 上海 / 2020-11.21-22 Go语言编译器简介 ’ alt=‘OCR图片’/> 关于我 Contributors to golang/go · GitHub 给Go编译器提交过127个补丁,累计六万余行; 拥有Go官方git仓库提交权限; 全球贡献者排名长期处于前50名; 世界上90%的gopher都用过我写的代码; 编译器的重要性 只有1%的程序员懂汇编语言 汇编语言无法构建大型系统 汇编语言无法构建大型系统 操作系统内核也需要编译器才能运行起来 编译理论是图灵奖大户,仅次于计算复杂度理论 操作系统有后门,编译器的后门更致命 编译器的难题:任务爆炸 N种语言 * M种机器 = N*M 个任务 GOPHER CHINA 2020 中国 上海 / 2020-11.21-22 两个方案 $$ N \mathrm {种 语 言} + M \mathrm {种 机 器} = {个 任 务} $$ 其它语言 -> C -> 各个机器 各个语言 -> x86 -> 其它机器 GOPHER CHINA 2020 中国 上海 / 2020-11.21-22 通用(非专用)编译器的方案 AST = Abstract Syntax Tree抽象语法树 SSA = Single Static Assignment单静态赋值 IR = Intermediate Representation中间表示0 码力 | 36 页 | 1.63 MB | 1 月前3
KCL: Rust 在编译器领域的实践与探索## RUST CHINA CONF 2023 第三届中国Rust开发者大会 6.17-6.18 @Shanghai ## KCL: Rust 在编译器领域的实践与探索 张正 蚂蚁集团 ## 😍 01 KusionStack 与 KCL 02 用 Rust 重写 KCL 03 Rust 重写后的收益 04 更多的探索 ## 01 KusionStack 与 KCL ## KusionStack是什么 add1b5abffd9fb8525138fc88bca0/p9_2.jpg) ## 2 KCL 编译器架构升级 Python 代码翻译 Source Code Python code 栈式虚拟机 Source Code AST Bit code VM Rust 编译器 Source Code AST LLVM IR Native/WASM ## R ## 我们遇到了哪些问题? 强大的编译检查和错误处理方式,更少的 Bug 03 20 & 40 前端解析器性能提升 20倍 中端语义分析器性能提升40倍 ## 02 66% 端到端编译执行性能提升了66% ## 04 50% 语言编译器编译过程平均内存使用量变为原来 Python 版本的一半 ## Case1: 单文件编译 > https://github.com/KusionStack/kcl#showcase ## …0 码力 | 25 页 | 3.50 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化## AMD # 从汇编角度看编译器优化 by 彭于斌 (@archibate) 往期录播:https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码:https://github.com/parallel101/course 的压力。 • 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。 # 8 位,16 位,32 位,64 位版本 al0 码力 | 108 页 | 9.47 MB | 2 年前3
7-韦泽华-一键将C和Cpp代码转换为Python能调用的代码 ## 一 键将 C/C++ 代码转换为 Python 能调用的代码 韦泽华 0 码力 | 12 页 | 1.24 MB | 2 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺2023 第三届中国 Rust 开发者大会 6.17-6.18 @Shanghai Rust China Conf 2023 ## 基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺 涛思数据 ## CONTENTS 自我介绍 TDengine taosX Rust 使用 ## TDengine TDengine 应用开发组 •0 码力 | 29 页 | 2.26 MB | 2 年前3
Swift for TensorFlow - 莲叔0 码力 | 56 页 | 3.03 MB | 2 年前3
[试读]15天学会JavaScript - 第 2 章
ECMAScript语法基础 行代码分别通过 Number 对象的 `toString()` 方法将变量(i)和变量(j)转换为字符串类型,并通过运算符 “+” 执行字符串连接操作,然后将操作后的结果在浏览器控制台窗口中进行了输出。 页面效果如图 2.14 所示。可以看出 Number 类型十进制数值可以通过 `toString()` 方法转换为字符串类型。 的内容为 1.68e-7,正是浮点数 0.000000168 转换为科学记数法后的结果。而第 08 行代码在浏览器控制台窗口中输出的变量( $ v\_e\_neg\_5 $ )的内容,并没有转换为科学记数法。这是因为 ECMAScript 语法规定,默认会把具有 6 个或 6 个以上前导 0 的浮点数自动转换成科学记数法。 0 码力 | 168 页 | 475.29 KB | 2 年前3
WebAssembly 简介 - 陈思衡@Shanghai WebAssembly 介绍 ## WebAssembly 简介 WebAssembly(简称 Wasm)是一种新的编译目标,帮助在 web 中运行高性能应用。它是一种低级语言,设计为编译器目标,以在 web 浏览器中高效运行。 ## WebAssembly 简介 ## #高性能 WebAssembly 代码可以以接近原生的速度运行,且具有很小的二进制大小和快速加载速度。 ## # Mozilla、Google、Microsoft 等主要浏览器供应商共同设计。它现已在所有主流浏览器中实现,包括 Chrome、Firefox、Safari 和 Edge。 ## # 多语言支持 现在多种语言都有编译器支持 WebAssembly,如 C/C++、Rust、Go、Zig 等。 ## WebAssembly 简介 ## WebAssembly 机制 ## memory Wasm 的 memory wasm_timeout git:(main) × Async Wasm 解决方案 ## 利用语言本身Async机制 因为 Rust 的 async 机制是无栈协程,会将 async 部分在编译时隐式转换成一个 Future。 所以我们可以利用这一点来实现一个Async的Wasm。 ## Async 的 Wasm ## 利用本身Async机制 自行实现Async Runtime tokio(host)0 码力 | 24 页 | 773.46 KB | 2 年前3
共 951 条
- 1
- 2
- 3
- 4
- 5
- 6
- 96













