一个曾影响过Rust的论文的不完整列表。
推荐进一步了解Rust背景和激发灵感阅读。
> **(注:以下翻译属个人理解,勿作为参考)**
## 类型系统
* [Cyclone语言中基于区域的内存管理(Region based memory management in Cyclone)](http://209.68.42.137/ucsd-pages/Courses/cse227.w03/handouts/cyclone-regions.pdf)
* [Cyclone语言中的手动安全内存管理(Safe manual memory management in Cyclone)](http://www.cs.umd.edu/projects/PL/cyclone/scp.pdf)
* [类型类:使临时多态不再临时(Typeclasses: making ad-hoc polymorphism less ad hoc)](http://www.ps.uni-sb.de/courses/typen-ws99/class.ps.gz)
* [宏综述(Macros that work together)](https://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf)
* [特性:组合类型的行为(Traits: composable units of behavior)](http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf)
* [消除别名(Alias burying)](http://www.cs.uwm.edu/faculty/boyland/papers/unique-preprint.ps) - 我们尝试了一些相似的内容并放弃了它
* [外部唯一性是足够的(External uniqueness is unique enough)](http://www.computingscience.nl/research/techreps/repo/CS-2002/2002-048.pdf)
* [用于安全并行的唯一性和引用不可变性(Uniqueness and Reference Immutability for Safe Parallelism)](https://research.microsoft.com/pubs/170528/msr-tr-2012-79.pdf)
* [基于区域的内存管理(Region Based Memory Management)](http://www.cs.ucla.edu/~palsberg/tba/papers/tofte-talpin-iandc97.pdf)
## 并发
* [Singularity:软件栈的重新思考(Singularity: rethinking the software stack)](https://research.microsoft.com/pubs/69431/osr2007_rethinkingsoftwarestack.pdf)
* [Singularity操作系统中支持快速和可靠的消息传递的语言(Language support for fast and reliable message passing in singularity OS)](https://research.microsoft.com/pubs/67482/singsharp.pdf)
* [通过work stealing来安排多线程计算(Scheduling multithreaded computations by work stealing)](http://supertech.csail.mit.edu/papers/steal.pdf)
* [多道程序多处理器的线程调度(Thread scheduling for multiprogramming multiprocessors)](http://www.eecis.udel.edu/~cavazos/cisc879-spring2008/papers/arora98thread.pdf)
* [work stealing中的数据局部性(The data locality of work stealing)](http://www.aladdin.cs.cmu.edu/papers/pdfs/y2000/locality_spaa00.pdf)
* [动态环形work stealing双端队列(Dynamic circular work stealing deque)](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&rep=rep1&type=pdf) - Chase/Lev双端队列
* [异步-完成并行的work优先和help优先的调度策略(Work-first and help-first scheduling policies for async-finish task parallelism)](http://www.cs.rice.edu/~yguo/pubs/PID824943.pdf) - 比严格的work stealing更宽泛
* [一个Java的fork/join灾难(A Java fork/join calamity)](http://www.coopsoft.com/ar/CalamityArticle.html) - 对Java fork/join库的批判,特别是其在非严格计算时的work stealing实现
* [并发系统的调度技巧(Scheduling techniques for concurrent systems)](http://www.ece.rutgers.edu/~parashar/Classes/ece572-papers/05/ps-ousterhout.pdf)
* [竞争启发调度(Contention aware scheduling)](http://www.blagodurov.net/files/a8-blagodurov.pdf)
* [时间共享多核系统的平衡work stealing(Balanced work stealing for time-sharing multicores)](http://www.cse.ohio-state.edu/hpcs/WWW/HTML/publications/papers/TR-12-1.pdf)
* [三层蛋糕?(Three layer cake)](http://www.upcrc.illinois.edu/workshops/paraplop10/papers/paraplop10_submission_8.pdf)
* [非阻塞半work stealing队列(Non-blocking steal-half work queues)](http://www.cs.bgu.ac.il/~hendlerd/papers/p280-hendler.pdf)
* [Reagents:表现和编写细粒度的并发(Reagents: expressing and composing fine-grained concurrency)](http://www.mpi-sws.org/~turon/reagents.pdf)
* [用于共享内存多处理器的可扩展同步性的算法(Algorithms for scalable synchronization of shared-memory multiprocessors)](https://www.cs.rochester.edu/u/scott/papers/1991_TOCS_synch.pdf)
## 其它
* [只能崩溃的软件(Crash-only software)](https://www.usenix.org/legacy/events/hotos03/tech/full_papers/candea/candea.pdf)
* [编写高性能内存分配器(Composing High-Performance Memory Allocators)](http://people.cs.umass.edu/~emery/pubs/berger-pldi2001.pdf)
* [对手动内存分配的思考(Reconsidering Custom Memory Allocation)](http://people.cs.umass.edu/~emery/pubs/berger-oopsla2002.pdf)
## 关于Rust的论文
* [Rust中的GPU编程(GPU programming in Rust)](http://www.cs.indiana.edu/~eholk/papers/hips2013.pdf)
* [并行闭包:一个基于老观点的新做法(Parallel closures: a new twist on an old idea)](https://www.usenix.org/conference/hotpar12/parallel-closures-new-twist-old-idea) - 并不完全关于Rust,不过是Nicholas D. Matsakis写的
- 前言
- 1.介绍
- 2.准备
- 2.1.安装Rust
- 2.2.Hello, world!
- 2.3.Hello, Cargo!
- 3.学习Rust
- 3.1.猜猜看
- 3.2.哲学家就餐问题
- 3.3.其它语言中的Rust
- 4.高效Rust
- 4.1.栈和堆
- 4.2.测试
- 4.3.条件编译
- 4.4.文档
- 4.5.迭代器
- 4.6.并发
- 4.7.错误处理
- 4.8.外部语言接口
- 4.9.Borrow 和 AsRef
- 4.10.发布途径
- 5.语法和语义
- 5.1.变量绑定
- 5.2.函数
- 5.3.原生类型
- 5.4.注释
- 5.5.If语句
- 5.6.for循环
- 5.7.while循环
- 5.8.所有权
- 5.9.引用和借用
- 5.10.生命周期
- 5.11.可变性
- 5.12.结构体
- 5.13.枚举
- 5.14.匹配
- 5.15.模式
- 5.16.方法语法
- 5.17.Vectors
- 5.18.字符串
- 5.19.泛型
- 5.20.Traits
- 5.21.Drop
- 5.22.if let
- 5.23.trait对象
- 5.24.闭包
- 5.25.通用函数调用语法
- 5.26.包装箱和模块
- 5.27.`const`和`static`
- 5.28.属性
- 5.29.`type`别名
- 5.30.类型转换
- 5.31.关联类型
- 5.32.不定长类型
- 5.33.运算符和重载
- 5.34.`Deref`强制多态
- 5.35.宏
- 5.36.裸指针
- 6.Rust开发版
- 6.1.编译器插件
- 6.2.内联汇编
- 6.3.不使用标准库
- 6.4.固有功能
- 6.5.语言项
- 6.6.链接参数
- 6.7.基准测试
- 6.8.装箱语法和模式
- 6.9.切片模式
- 6.10.关联常量
- 7.词汇表
- 8.学院派研究
- 勘误