一個曾影響過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.學院派研究
- 勘誤