# 參考文獻
> [bibliography.md](https://github.com/rust-lang/rust/blob/stable/src/doc/book/bibliography.md)
commit b986698bc41f487ed791a7c7d9f6c6a78d6d86a3
這是一個與 Rust 相關的材料的閱讀列表。這包含了曾經影響過 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)
- [Epoch-based reclamation](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-579.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寫的
- [Patina: A Formalization of the Rust Programming Language](#)。一類型系統子集的早期形式,Eric Reed著。
- [Experience Report: Developing the Servo Web Browser Engine using Rust](http://arxiv.org/abs/1505.07383)。Lars Bergstrom著。
- [Implementing a Generic Radix Trie in Rust](https://michaelsproul.github.io/rust_radix_paper/rust-radix-sproul.pdf)。Michael Sproul的畢業論文。
- [Reenix: Implementing a Unix-Like Operating System in Rust](http://scialex.github.io/reenix.pdf)。Alex Light的畢業論文。
- [Evaluation of performance and productivity metrics of potential programming languages in the HPC environment](http://doc.rust-lang.org/stable/book/academic-research.html)。Florian Wilkens的學士學位論文。比較C,Go和Rust。
- [Nom, a byte oriented, streaming, zero copy, parser combinators library in Rust](http://spw15.langsec.org/papers/couprie-nom.pdf)。Geoffroy Couprie著,關于VLC的研究。
- [Graph-Based Higher-Order Intermediate Representation](http://compilers.cs.uni-saarland.de/papers/lkh15_cgo.pdf)。一個用Impala(一個類似Rust的語言)實現的實驗性的IR。
- [Code Refinement of Stencil Codes](http://compilers.cs.uni-saarland.de/papers/ppl14_web.pdf)。另一個使用Impala的論文。
- [Parallelization in Rust with fork-join andfriends](http://publications.lib.chalmers.se/records/fulltext/219016/219016.pdf). LinusFarnstrand's master's thesis.
- [Session Types forRust](http://munksgaard.me/papers/laumann-munksgaard-larsen.pdf). PhilipMunksgaard's master's thesis. Research for Servo.
- [Ownership is Theft: Experiences Building an Embedded OS in Rust - Amit Levy, et. al.](http://amitlevy.com/papers/tock-plos2015.pdf)
- 前言
- 貢獻者
- 1.介紹
- 2.準備
- 3.學習 Rust
- 3.1.猜猜看
- 3.2.哲學家就餐問題
- 3.3.其它語言中的 Rust
- 4.語法和語義
- 4.1.變量綁定
- 4.2.函數
- 4.3.原生類型
- 4.4.注釋
- 4.5.If語句
- 4.6.循環
- 4.7.所有權
- 4.8.引用和借用
- 4.9.生命周期
- 4.10.可變性
- 4.11.結構體
- 4.12.枚舉
- 4.13.匹配
- 4.14.模式
- 4.15.方法語法
- 4.16.Vectors
- 4.17.字符串
- 4.18.泛型
- 4.19.Traits
- 4.20.Drop
- 4.21.if let
- 4.22.trait 對象
- 4.23.閉包
- 4.24.通用函數調用語法
- 4.25.crate 和模塊
- 4.26.const和static
- 4.27.屬性
- 4.28.type別名
- 4.29.類型轉換
- 4.30.關聯類型
- 4.31.不定長類型
- 4.32.運算符和重載
- 4.33.Deref強制多態
- 4.34.宏
- 4.35.裸指針
- 4.36.不安全代碼
- 5.高效 Rust
- 5.1.棧和堆
- 5.2.測試
- 5.3.條件編譯
- 5.4.文檔
- 5.5.迭代器
- 5.6.并發
- 5.7.錯誤處理
- 5.8.選擇你的保證
- 5.9.外部函數接口
- 5.10.Borrow 和 AsRef
- 5.11.發布途徑
- 5.12.不使用標準庫
- 6.Rust 開發版
- 6.1.編譯器插件
- 6.2.內聯匯編
- 6.4.固有功能
- 6.5.語言項
- 6.6.鏈接進階
- 6.7.基準測試
- 6.8.裝箱語法和模式
- 6.9.切片模式
- 6.10.關聯常量
- 6.11.自定義內存分配器
- 7.詞匯表
- 8.語法索引
- 9.參考文獻
- 附錄:名詞中英文對照