{"id":13667883,"url":"https://github.com/chyyuu/compiler_course_info","last_synced_at":"2025-07-18T03:38:00.657Z","repository":{"id":37445191,"uuid":"103467175","full_name":"chyyuu/compiler_course_info","owner":"chyyuu","description":"compiler course info","archived":false,"fork":false,"pushed_at":"2023-10-10T16:41:31.000Z","size":758,"stargazers_count":248,"open_issues_count":1,"forks_count":24,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-02T05:08:46.365Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chyyuu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-09-14T00:51:37.000Z","updated_at":"2025-03-23T16:57:45.000Z","dependencies_parsed_at":"2023-10-10T20:16:41.168Z","dependency_job_id":null,"html_url":"https://github.com/chyyuu/compiler_course_info","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chyyuu%2Fcompiler_course_info","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chyyuu%2Fcompiler_course_info/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chyyuu%2Fcompiler_course_info/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chyyuu%2Fcompiler_course_info/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chyyuu","download_url":"https://codeload.github.com/chyyuu/compiler_course_info/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247999861,"owners_count":21031046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T07:00:53.420Z","updated_at":"2025-04-09T08:10:52.528Z","avatar_url":"https://github.com/chyyuu.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# README\n\n# 清华大学编译原理课程（2022秋季）\n\n计算机专业主干课， 编译程序（系统）是计算机系统的核心支撑软件， 贯穿程序语言、运行时系统、体系结构， 联系计算机科学和计算机系统的典范。\n\n## 教师\n- 王生原 wwssyy@tsinghua.edu.cn\n- 陈  渝 yuchen@tsinghua.edu.cn\n\n## 助教\n\n- 焦景辉 王建楠 徐文博 范如文 张齐颢\n\n\n## 教学目的\n掌握编译程序/系统设计的基本原理；掌握“常见”语言机制的实现技术；经历开发一个小型编译程序的主要阶段；自学并使用自动构造工具；加深对计算机系统的理解；会将所学知识灵活应用。\n\n## 先修课程/知识\n- 《程序设计》（Java, C/C++，RUST，Scala,...）\n- 《数据结构》\n- 《形式语言与自动机》（optional）\n- 《计算机组成原理》（optional）（MIPS, RISC-V, X86, ARM,...）\n\n## 时间地点\n2022-09 至 2022-12\n- 每周三下午 1:30-3:05，六教6A414 陈\n\n  \n\n\n## 本课程学习流程（for拿清华学分的同学）\n```\n  for (i=1; i\u003c=16; i++) {\n    1. 预习(optional)\n    2. 完成第i周作业(optional)\n    3. 上课听讲，提问/被提问\n    4. 在deadline前，按序完成compiler_lab实验\n    5. 复习，做课后练习，if (碰到问题)　到微信/网络学堂上提问;\n    }\n  在考试周参加期末考试;\n```\n## 课程参考书\n- Compilers：Principles, Techniques, and Tools， Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman, Addison Wesley, 2007（龙书）\n- Crafting a Compiler, Charles N. Fischer, Ronald K.Cytron,  Richard J. LeBlanc, Jr., 2010.\n- Modern Compiler Implementation in Java/C  Andrew W.Appel，2005    （虎书）\n- Advanced Compiler Design and Implementation,Steven S. Muchnick, 1997（鲸书）\n- The Theory of Parsing, Translation, and Compiling，John E. Hopcroft, Jefferey D. Ullman,    Volume 1 \u0026 Volume 2 Prentice-Hall Series in Automatic Computation，1972\n- 国内的编译原理教材\n\n## 基本实验\n - [labs of minidecaf compilers](https://decaf-lang.github.io/minidecaf-tutorial/) : 实验覆盖词法分析，语法分析，语义分析，后端代码生成等编译器的完整执行过程。\n - [2021编译课程在线小实验](http://121.36.13.33/)\n   - [词法语法在线小实验](https://chyyuu.gitee.io/compiler-toolbox/)：在线实验包括：\n     - [Regex =\u003e NFA](https://chyyuu.gitee.io/compiler-toolbox/regex2nfa)\n     - [Regex =\u003e NFA =\u003e DFA](https://chyyuu.gitee.io/compiler-toolbox/nfa2dfa)\n     - [Regex =\u003e NFA =\u003e DFA =\u003e Min-DFA](https://chyyuu.gitee.io/compiler-toolbox/min_dfa)\n     - [Left factoring](https://chyyuu.gitee.io/compiler-toolbox/left_fact)\n     - [Left recursion](https://chyyuu.gitee.io/compiler-toolbox/left_rec)\n     - [First \u0026 Follow](https://chyyuu.gitee.io/compiler-toolbox/first_follow)\n     - [LL(1)](https://chyyuu.gitee.io/compiler-toolbox/ll1)\n     - [LL(1) Parser Visualization](https://www.cs.princeton.edu/courses/archive/spring20/cos320/LL1/)\n     - [LR(0)/SLR(1)](https://chyyuu.gitee.io/compiler-toolbox/lr0)\n     - [LR(1)](https://chyyuu.gitee.io/compiler-toolbox/lr1)\n     - [LALR](https://chyyuu.gitee.io/compiler-toolbox/lalr)\n   - [grammophone: analyzing and transforming context-free grammars](https://chyyuu.gitee.io/grammophone/)\n   - [LL/LR/SLR/LALR parser live-demo](https://chyyuu.gitee.io/parser-demo/)\n   - [2021 minidecaf compiler using python](http://121.36.13.33/py)\n   - [2021 minidecaf compiler using CPP](http://121.36.13.33/cpp)\n   - [2020 minidecaf compiler using python](http://121.36.13.33/dzy) \n## ReadingList 编译原理课扩展实验\n希望看看编译技术如何用在科研方面或工程项目方面的同学可看看[相关论文和对应的project](https://github.com/chyyuu/compiler_course_info/blob/master/readinglist.md)\n\n## [其他相关资源](https://github.com/chyyuu/compiler_course_info/blob/master/resources.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchyyuu%2Fcompiler_course_info","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchyyuu%2Fcompiler_course_info","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchyyuu%2Fcompiler_course_info/lists"}