Create CS143.en.md

This commit is contained in:
XeLavend 2022-11-15 23:07:30 -05:00 committed by GitHub
parent 3d0bd2eb0d
commit e8baec5861
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,24 @@
# Stanford CS143: Compilers
## Descriptions
- Offered by: Stanford University
- Prerequisite: Computer Architecture
- Programming Languages: Java or C++
- Difficulty: 🌟🌟🌟🌟🌟
- Learning Hours: 150
All this course intends is imparting principles of compiler construction for programming languages to students. Instructors has designed a “COOL language”, namely Class-Object-Oriented-Language, and you are expected to build a compiler for it. By study and practice, you will acquire the ability to design a appropriate compiler, which can translate human-readable COOL into “computer-readable” MIPS assembly being running on the SPIM emulator.
Following the Dragon Book, the theoretical part covers lexical analysis, syntax analysis, semantics analysis, runtime environments, register allocation, optimization and code generation. The practical part, accordingly, is divided in four modules: 3 for different steps of analysis and 1 for code generation. The difficulty is considered gradual, increasing with a proper rate. Should you have enough capacity and interest even after taking all those regular path, theres a huge room left for you to do optimization.
## Course Resources
- Course Website: <http://web.stanford.edu/class/cs143/>
- Recordings: <https://www.bilibili.com/video/BV17K4y147Bz>
- Textbook: Compilers: Principles, Techniques and Tools (Dragon Book)
- Assignments: 5 textual + 5 programming labs
## Collection of Course Resources
@skyzluo has been maintaining a repo of course resources used and reference implementations of programming labs: [skyzluo/CS143-Compilers-Stanford - GitHub](https://github.com/skyzluo/CS143-Compilers-Stanford).