rust-lang / rustc-dev-guide

A guide to how rustc works and how to contribute to it.
https://rustc-dev-guide.rust-lang.org
Apache License 2.0
1.64k stars 505 forks source link

Add compilers bibliography apprendix #377

Closed spastorino closed 4 years ago

spastorino commented 5 years ago

There's already a Rust Bibliography appendix, I think it would be great to start a compilers bibliography appendix that may help give some background to better understand the compiler.

For instance, we could start by adding some of these resources from Rust Programming Language Community Server #lang-dev channel.

/cc @mark-i-m

mark-i-m commented 5 years ago

I like the idea. Perhaps a section at the end of Background Appendix with extra reading?

spastorino commented 5 years ago

@mark-i-m yes, I think that would be fine.

mark-i-m commented 4 years ago

@spastorino The link appears to be broken... Do you happen to know what was there...

Also, in the future, perhaps it would be best not to post links to discord?

spastorino commented 4 years ago

What was there is the following ...

BOOKS
----
Types and Programming Languages: https://www.cis.upenn.edu/~bcpierce/tapl/
Programming Language Pragmatics: https://www.cs.rochester.edu/~scott/pragmatics/
Practical Foundations for Programming Languages: https://www.cs.cmu.edu/~rwh/pfpl/2nded.pdf
Compilers: Principles, Techniques, and Tools 2nd: https://www.amazon.com/dp/9332518661/ref=cm_sw_r_other_apa_1tUSBb5VHAVA1
Garbage Collection: Algorithms for Automatic Dynamic Memory Management: https://www.cs.kent.ac.uk/people/staff/rej/gcbook/
Linkers and Loaders: https://linker.iecc.com/
Advanced Compiler Design and Implementation: https://www.goodreads.com/book/show/887908.Advanced_Compiler_Design_and_Implementation
Building an Optimizing Compiler: https://www.goodreads.com/book/show/2063103.Building_an_Optimizing_Compiler
Crafting Interpreters: http://www.craftinginterpreters.com/

COURSE RELATED
----
University of Oregon Programming Languages Summer School archive: https://www.cs.uoregon.edu/research/summerschool/archives.html

WIKIS
----
Wikipedia: https://en.wikipedia.org/wiki/List_of_programming_languages_by_type
Esoteric Programming Languages: https://esolangs.org/wiki/Main_Page
Stanford Encyclopedia of Philosophy: https://plato.stanford.edu/index.html
nLab: https://ncatlab.org/nlab/show/HomePage

MISC (PAPERS/BLOG POSTS)
----
Programming in Martin-Löf's Type Theory: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.118.6683&rep=rep1&type=pdf
Polymorphism, Subtyping, and Type Inference in MLsub: https://www.cl.cam.ac.uk/~sd601/papers/mlsub-preprint.pdf

Thanks to mem, scottmcm, and Levi (on the official Discord) for the recommendations, and to tinaun for posting a link to a twitter thread from Graydon Hoare (https://twitter.com/graydon_pub/status/1039615569132118016) which had some more recommendations!
Other sources:
- https://gcc.gnu.org/wiki/ListOfCompilerBooks (not all included)

If you have a suggestion for this list, please @ me!