Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chyyuu/compiler_course_info
compiler course info
https://github.com/chyyuu/compiler_course_info
Last synced: about 2 months ago
JSON representation
compiler course info
- Host: GitHub
- URL: https://github.com/chyyuu/compiler_course_info
- Owner: chyyuu
- Created: 2017-09-14T00:51:37.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2023-10-10T16:41:31.000Z (12 months ago)
- Last Synced: 2024-06-20T08:06:25.793Z (3 months ago)
- Language: Python
- Homepage:
- Size: 740 KB
- Stars: 243
- Watchers: 9
- Forks: 23
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# README
# 清华大学编译原理课程(2022秋季)
计算机专业主干课, 编译程序(系统)是计算机系统的核心支撑软件, 贯穿程序语言、运行时系统、体系结构, 联系计算机科学和计算机系统的典范。
## 教师
- 王生原 [email protected]
- 陈 渝 [email protected]## 助教
- 焦景辉 王建楠 徐文博 范如文 张齐颢
## 教学目的
掌握编译程序/系统设计的基本原理;掌握“常见”语言机制的实现技术;经历开发一个小型编译程序的主要阶段;自学并使用自动构造工具;加深对计算机系统的理解;会将所学知识灵活应用。## 先修课程/知识
- 《程序设计》(Java, C/C++,RUST,Scala,...)
- 《数据结构》
- 《形式语言与自动机》(optional)
- 《计算机组成原理》(optional)(MIPS, RISC-V, X86, ARM,...)## 时间地点
2022-09 至 2022-12
- 每周三下午 1:30-3:05,六教6A414 陈
## 本课程学习流程(for拿清华学分的同学)
```
for (i=1; i<=16; i++) {
1. 预习(optional)
2. 完成第i周作业(optional)
3. 上课听讲,提问/被提问
4. 在deadline前,按序完成compiler_lab实验
5. 复习,做课后练习,if (碰到问题) 到微信/网络学堂上提问;
}
在考试周参加期末考试;
```
## 课程参考书
- Compilers:Principles, Techniques, and Tools, Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman, Addison Wesley, 2007(龙书)
- Crafting a Compiler, Charles N. Fischer, Ronald K.Cytron, Richard J. LeBlanc, Jr., 2010.
- Modern Compiler Implementation in Java/C Andrew W.Appel,2005 (虎书)
- Advanced Compiler Design and Implementation,Steven S. Muchnick, 1997(鲸书)
- The Theory of Parsing, Translation, and Compiling,John E. Hopcroft, Jefferey D. Ullman, Volume 1 & Volume 2 Prentice-Hall Series in Automatic Computation,1972
- 国内的编译原理教材## 基本实验
- [labs of minidecaf compilers](https://decaf-lang.github.io/minidecaf-tutorial/) : 实验覆盖词法分析,语法分析,语义分析,后端代码生成等编译器的完整执行过程。
- [2021编译课程在线小实验](http://121.36.13.33/)
- [词法语法在线小实验](https://chyyuu.gitee.io/compiler-toolbox/):在线实验包括:
- [Regex => NFA](https://chyyuu.gitee.io/compiler-toolbox/regex2nfa)
- [Regex => NFA => DFA](https://chyyuu.gitee.io/compiler-toolbox/nfa2dfa)
- [Regex => NFA => DFA => Min-DFA](https://chyyuu.gitee.io/compiler-toolbox/min_dfa)
- [Left factoring](https://chyyuu.gitee.io/compiler-toolbox/left_fact)
- [Left recursion](https://chyyuu.gitee.io/compiler-toolbox/left_rec)
- [First & Follow](https://chyyuu.gitee.io/compiler-toolbox/first_follow)
- [LL(1)](https://chyyuu.gitee.io/compiler-toolbox/ll1)
- [LL(1) Parser Visualization](https://www.cs.princeton.edu/courses/archive/spring20/cos320/LL1/)
- [LR(0)/SLR(1)](https://chyyuu.gitee.io/compiler-toolbox/lr0)
- [LR(1)](https://chyyuu.gitee.io/compiler-toolbox/lr1)
- [LALR](https://chyyuu.gitee.io/compiler-toolbox/lalr)
- [grammophone: analyzing and transforming context-free grammars](https://chyyuu.gitee.io/grammophone/)
- [LL/LR/SLR/LALR parser live-demo](https://chyyuu.gitee.io/parser-demo/)
- [2021 minidecaf compiler using python](http://121.36.13.33/py)
- [2021 minidecaf compiler using CPP](http://121.36.13.33/cpp)
- [2020 minidecaf compiler using python](http://121.36.13.33/dzy)
## ReadingList 编译原理课扩展实验
希望看看编译技术如何用在科研方面或工程项目方面的同学可看看[相关论文和对应的project](https://github.com/chyyuu/compiler_course_info/blob/master/readinglist.md)## [其他相关资源](https://github.com/chyyuu/compiler_course_info/blob/master/resources.md)