- 参考文献
- 类型系统
- 并发
- 其它
- 关于 Rust 的论文
参考文献
bibliography.md
commit 090fcb88b1c7353e480ce3aff0028832e9bb696b
这是一个与 Rust 相关的材料的阅读列表。这包含了曾经影响过 Rust 先验研究,以及关于 Rust 的出版物。
(注:以下翻译属个人理解,勿作为参考!)
类型系统
- Cyclone语言中基于区域的内存管理(Region based memory management in Cyclone)
- Cyclone语言中的手动安全内存管理(Safe manual memory management in Cyclone)
- 类型类:使临时多态不再临时(Typeclasses: making ad-hoc polymorphism less ad hoc)
- 宏综述(Macros that work together)
- 特性:组合类型的行为(Traits: composable units of behavior)
- 消除别名(Alias burying) - 我们尝试了一些相似的内容并放弃了它
- 外部唯一性是足够的(External uniqueness is unique enough)
- 用于安全并行的唯一性和引用不可变性(Uniqueness and Reference Immutability for Safe Parallelism)
- 基于区域的内存管理(Region Based Memory Management)
并发
- Singularity:软件栈的重新思考(Singularity: rethinking the software stack)
- Singularity操作系统中支持快速和可靠的消息传递的语言(Language support for fast and reliable message passing in singularity OS)
- 通过work stealing来安排多线程计算(Scheduling multithreaded computations by work stealing)
- 多道程序多处理器的线程调度(Thread scheduling for multiprogramming multiprocessors)
- work stealing中的数据局部性(The data locality of work stealing)
- 动态环形work stealing双端队列(Dynamic circular work stealing deque) - Chase/Lev双端队列
- 异步-完成并行的work优先和help优先的调度策略(Work-first and help-first scheduling policies for async-finish task parallelism) - 比严格的work stealing更宽泛
- 一个Java的fork/join灾难(A Java fork/join calamity) - 对Java fork/join库的批判,特别是其在非严格计算时的work stealing实现
- 并发系统的调度技巧(Scheduling techniques for concurrent systems)
- 竞争启发调度(Contention aware scheduling)
- 时间共享多核系统的平衡work stealing(Balanced work stealing for time-sharing multicores)
- 三层蛋糕?(Three layer cake)
- 非阻塞半work stealing队列(Non-blocking steal-half work queues)
- Reagents:表现和编写细粒度的并发(Reagents: expressing and composing fine-grained concurrency)
- 用于共享内存多处理器的可扩展同步性的算法(Algorithms for scalable synchronization of shared-memory multiprocessors)
- Epoch-based reclamation.
其它
- 只能崩溃的软件(Crash-only software)
- 编写高性能内存分配器(Composing High-Performance Memory Allocators)
- 对手动内存分配的思考(Reconsidering Custom Memory Allocation)
关于 Rust 的论文
- Rust中的GPU编程(GPU programming in Rust)
- 并行闭包:一个基于老观点的新做法(Parallel closures: a new twist on an old idea) - 并不完全关于Rust,不过是Nicholas D. Matsakis写的
- Patina: A Formalization of the Rust Programming Language。一类型系统子集的早期形式,Eric Reed著。
- Experience Report: Developing the Servo Web Browser Engine using Rust。Lars Bergstrom著。
- Implementing a Generic Radix Trie in Rust。Michael Sproul的毕业论文。
- Reenix: Implementing a Unix-Like Operating System in Rust。Alex Light的毕业论文。
- Evaluation of performance and productivity metrics of potential programming languages in the HPC environment。Florian Wilkens的学士学位论文。比较C,Go和Rust。
- Nom, a byte oriented, streaming, zero copy, parser combinators library in Rust。Geoffroy Couprie著,关于VLC的研究。
- Graph-Based Higher-Order Intermediate Representation。一个用Impala(一个类似Rust的语言)实现的实验性的IR。
- Code Refinement of Stencil Codes。另一个使用Impala的论文。
- Parallelization in Rust with fork-join and
friends. Linus
Farnstrand’s master’s thesis. - Session Types for
Rust. Philip
Munksgaard’s master’s thesis. Research for Servo. - Ownership is Theft: Experiences Building an Embedded OS in Rust - Amit Levy, et. al.
- You can’t spell trust without Rust. Alexis Beingessner’s master’s thesis.