Hello 算法 1.1.0 Rust版‑tse、krahets、 night‑cruise、nuomi1 和 Reanon 完成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确 保了各语言代码的规范与统一。 在本书的创作过程中,我得到了许多人的帮助。 ‧ 感谢我在公司的导师李汐博士,在一次畅谈中你鼓励我“快行动起来”,坚定了我写这本书的决心; ‧ 感谢我的女朋友泡泡作为本书的首位读者,从算法小白的角度提出许多宝贵建议,使得本书更适合新 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 hello‑algo.com 6 图 0‑3 运行代码示例 运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版krahets、night‑cruise、nuomi1、Reanon 和 rongyi 完成(按照首字母顺序排列)。感谢他们付出的时间 与精力,正是他们确保了各语言代码的规范与统一。 在本书的创作过程中,我得到了许多人的帮助。 ‧ 感谢我在公司的导师李汐博士,在一次畅谈中你鼓励我“快行动起来”,坚定了我写这本书的决心; ‧ 感谢我的女朋友泡泡作为本书的首位读者,从算法小白的角度提出许多宝贵建议,使得本书更适合新 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 www.hello‑algo.com 6 图 0‑3 运行代码示例 运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版tse、krahets、night‑cruise、 nuomi1 和 Reanon 完成(按照首字母顺序排列)。感谢他们付出的时间与精力,正是他们确保了各语言代 码的规范与统一。 在本书的创作过程中,我得到了许多人的帮助。 ‧ 感谢我在公司的导师李汐博士,在一次畅谈中你鼓励我“快行动起来”,坚定了我写这本书的决心; ‧ 感谢我的女朋友泡泡作为本书的首位读者,从算法小白的角度提出许多宝贵建议,使得本书更适合新 感谢苏潼为本书设计了精美的封面和 logo ,并在我的强迫症的驱使下多次耐心修改; ‧ 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《 本书的配套代码托管在 GitHub 仓库。如图 0‑3 所示,源代码附有测试样例,可一键运行。 如果时间允许,建议你参照代码自行敲一遍。如果学习时间有限,请至少通读并运行所有代码。 与阅读代码相比,编写代码的过程往往能带来更多收获。动手学,才是真的学。 第 0 章 前言 hello‑algo.com 6 图 0‑3 运行代码示例 运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录0 码力 | 383 页 | 17.61 MB | 1 年前3
Rust 程序设计语言简体中文版--proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh 此命令下载一个脚本并开始安装 rustup 工具,这会安装最新稳定版 Rust。过程中可能会提 示你输入密码。如果安装成功,将会出现如下内容: Rust is installed now. Great! 另外,你还需要一个 链接器(linker),这是 Rust 用来将其编译的输出连接到一个文件中的 build-essential 包。 在 Windows 上安装 rustup 在 Windows 上,前往 https://www.rust-lang.org/install.html 并按照说明安装 Rust。在安 装过程的某个步骤,你会收到一个信息说明为什么需要安装 Visual Studio 2013 或其更新版本 的 MSVC 构建工具。 要获取构建工具,你需要安装 Visual Studio 2022。当被问及需要安装什么工作负载 字符串将被打印到屏幕上。 第四,该行以分号结尾(; ),这代表一个表达式的结束和下一个表达式的开始。大部分 Rust 代码行以分号结尾。 编译和运行是彼此独立的步骤 你刚刚运行了一个新创建的程序,那么让我们检查此过程中的每一个步骤。 在运行 Rust 程序之前,必须先使用 Rust 编译器编译它,即输入 rustc 命令并传入源文件名 称,如下: $ rustc main.rs 如果你有 C 或 C++0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0--proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh 此命令下载一个脚本并开始安装 rustup 工具,这会安装最新稳定版 Rust。过程中可能会提示 你输入密码。如果安装成功,将会出现如下内容: Rust is installed now. Great! 另外,你还需要一个 链接器(linker),它是 Rust 用来将其编译的输出链接成一个文件的程 简体中文版 在 Windows 上安装 rustup 在 Windows 上,前往 https://www.rust-lang.org/install.html 并按照说明安装 Rust。在安 装过程的某个步骤,你会被提示要安装 Visual Studio。它提供了一个链接器和编译程序所需 的原生库。如果你在此步骤需要更多帮助,请访问 https://rust-lang.github.io/rustup/ 符串将被打印到屏幕上。 第三,该行以分号结尾(;),这代表一个表达式的结束和下一个表达式可以开始。大部分 Rust 代码行以分号结尾。 编译和运行是彼此独立的步骤 你刚刚运行了一个新创建的程序,那么让我们检查此过程中的每一个步骤。 在运行 Rust 程序之前,必须先使用 Rust 编译器编译它,即输入 rustc 命令并传入源文件名 称,如下: $ rustc main.rs 如果你有 C 或 C++ 背景,就会发现这与0 码力 | 562 页 | 3.23 MB | 1 月前3
秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践Who am I ? 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. 应用链框架 2. 高性能 3. 互操作(Interoperability) EVM 兼容 5. Rust What is Axon What is Axon 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 1. Mempool(交易池) 2. Consensus (Overlord) 3. P2P (Tentacle) 4. Interoperation 便于协作开发 ■ 易于测试 优点 Mempool Traits 实现 实现 测试代码 目录 1. Axon 简介 2. 大型 Rust 项目应用 Adapter 模式 3. 使用过程宏的监控埋点开发实践 4. 区块链间互操作性的实现 • 直接调用 Prometheus API • AOP(面向切片) • LLVM IR • … 如何优雅地在代码中加入埋点 ■ Prometheus0 码力 | 32 页 | 3.63 MB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBI列表,提供ROM初始化 完成的时钟配置 编译时生成镜像头,通 常包含处理器配置、时 钟和闪存配置等部分 #[entry] 过程宏 • 过程宏是卫生宏,完成语法树间的转 换,此处用于将main函数转换为固 件需要的入口函数。 • 包含ABI转换、检查参数等步骤。 • 使用过程宏时,同时使用对应包中的 start初始化代码。start代码无需由 用户编写,而是包含在宏生成的输出 代码中。 RISC-V并未强制规定陷入栈的内容,它的上下文切换 过程可定制,若给予上下文切换更多的信息,它的性 能就可得到进一步提升 • 上下文调用时先保存部分寄存器,让高级语言判断是 否进入完整流程,或给定需要设置的寄存器数量 • 尽量减少上下文切换对空间局部性的破坏 • 向量化陷入:硬件取向量,分流mtime、msoft等中断 过程和异常过程,进一步细化通路,明确上下文保存 需求 • 不同等级的上下文保存到不同结构体中,地址存于突0 码力 | 21 页 | 3.12 MB | 1 年前3
Rust 语言学习笔记序 这份学习笔记是在学习 Rust 的过程中的记录,主要基于《Rust 程序设计语言- 简体中文版》和《RustPrimer》两份开源书籍。 上面两本书籍相对全面,但对部分初学者可能更为深奥一些,尤其是之前没有 接触过 C/C++ 和 Rust 语言的读者。在学习过程中我对二份开源书籍进行了适 合的整理,又加入了一些自己学习过程中新添加的内容,于是就有了这份学习 笔记。这份学习笔记的主要贡献在于涵盖了所有工程上基于 所有权系统允许我们通过“Borrowing”的方式达到这个目的。这个机制非常像 其他编程语言中的“读写锁”,即同一时刻,只能拥有一个“写锁”,或只能 拥有多个“读锁”,不允许“写锁”和“读锁”在同一时刻同时出现。当然这 也是数据读写过程中保障一致性的典型做法。只不过 Rust 是在编译中完成这个 (Borrowing)检查的,而不是在运行时,这也就是为什么其他语言程序在运行过 程中,容易出现死锁或者野指针的问题。 通过&符号完成 传--crate-type 参数。参数内容同上。 方法 3: 使用 cargo,指定 crate-type = ["foo"], foo 可选类型同 1。 6.3.2.3 反射的使用 由于在跨越 ffi 过程中,rust 类型信息会丢失,比如当用 rust 提供一个 OpaqueStruct 给别的语言时: use std::mem::transmute; #[derive(Debug)] struct0 码力 | 117 页 | 2.24 MB | 1 年前3
基于静态分析的Rust内存安全缺陷检测研究❑ 研究挑战:指针分析是NP-hard问题 ▪ 准确性:应采用路径敏感的指针分析算法,避免过多误报 ▪ 分析效率:应基于Rust MIR的特点对算法进行优化,使其可行 ❑ 整体思路:基于编译过程中的生成的MIR进行静态分析 ▪ 路径提取:控制流图=>生成树 ▪ 别名分析:分析指针之间的关联关系 ▪ 模式识别:根据预定义的缺陷模式检测指针漏洞 路径提取 别名分析 模式识别 “SafeDrop: 对SCC出口处的alias关系统一取上界 ❑ 特殊情况特殊处理 路径提取 别名分析 模式识别 控制流图 生成树 别名分析 ❑ 主要规则: 路径提取 别名分析 模式识别 过程间分析 近似处理multi-level pointers ❑ 示例: 域敏感和过程间分析 过程间分析 域敏感 更新 缺陷模式 路径提取 别名分析 模式识别 生成新的所有者 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论0 码力 | 28 页 | 1.55 MB | 1 年前3
Rust算法教程 The Algos (algorithms)获得输出数据即可,因此这就引出 了算法的基本定义: 计算机算法是以⼀步接⼀步的⽅式来详细描述计算机如何将输⼊转化为所要求的输出的过程,或者 说,算法是对计算机上执⾏的计算过程的具体描述。(以上内容摘抄⾃百度百科),简单点说计算 机算法就是将输⼊转化为所要求的输出过程。 既然只要调⽤别⼈的算法库即可完成任务,我们为什么要学习算法呢?原因很简单:⾯试需要。哈 哈,开个玩笑,当然⾯试很重要,但是提升 https://algo.course.rs/print.html 182/270 加密算法 数据加密的基本过程就是对原来为明⽂的⽂件或数据按某种算法进⾏处理,使其成为不可读的⼀段 代码为“密⽂”,使其只能在输⼊相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据 不被⾮法⼈窃取、阅读的⽬的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过 程。 随着信息化和数字化社会的发展,⼈们对信息安全 数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据 元素的集合。通常情况下,精⼼选择的数据结构可以带来更⾼的运⾏或者存储效率。数据结构往往 同⾼效的检索算法和索引技术有关 在计算机科学的发展过程中,数据结构也随之发展。程序设计中常⽤的数据结构包括如下⼏个。 1. 数组(Array) 数组是⼀种聚合数据类型,它是将具有相同类型的若⼲变量有序地组织在⼀起的 集合。数组可以说是最基本的数据结0 码力 | 270 页 | 8.46 MB | 1 年前3
共 17 条
- 1
- 2













