CS-4620 - 001编译器讲师:Matthew Dwyer matthewbdwyer@virginia.edu办公时间:星期三。下午2-3pm通过Zoom(Canvas上的链接)助教:Soneya Binta Hossain sh7hv@virginia.edu办公时间:星期五。下午4-5点通过Zoom(canvas上的链接)或面对面的(通过电子邮件安排)nicholas phair np4ay@virginia.edu办公时间:星期一。下午2-3pm通过Zoom(Canvas上的链接)Saket upadhyay saket@virginia.edu办公时间:星期五。上午11点通过Zoom(canvas上的链接)或面对面的(通过电子邮件安排)课程说明:这是编译器的本科课程。 该课程广泛关注编译器的主要组成部分,并试图提供有关这些重要软件系统的概念,算法和实践知识。 课程目标是让学生(a)在编译中学习基础概念,(b)在现有编译器的“受控”设置中探索实践中这些概念的实现,以及(c)通过将编译器扩展到一个学期的长期项目中来加深和加强学习。 该课程将理论和算法与工程编译器的实际方面融合在一起。 学生有望从先前的CS课程中具有软件开发经验,并且熟悉C ++。 他们将成对地在一个项目上工作,该项目将涉及了解使用现代C ++编写的相当大的代码库并扩展它。 该项目将涉及编写大量代码(整个学期以上的SLOC超过1000个),记录该代码,并提供证明该代码正确性的测试用例。 学生将使用多种工具来实现这一目标,但将为他们提供一个模型系统来基于他们的工作。下午2-3pm通过Zoom(Canvas上的链接)Saket upadhyay saket@virginia.edu办公时间:星期五。上午11点通过Zoom(canvas上的链接)或面对面的(通过电子邮件安排)课程说明:这是编译器的本科课程。该课程广泛关注编译器的主要组成部分,并试图提供有关这些重要软件系统的概念,算法和实践知识。课程目标是让学生(a)在编译中学习基础概念,(b)在现有编译器的“受控”设置中探索实践中这些概念的实现,以及(c)通过将编译器扩展到一个学期的长期项目中来加深和加强学习。该课程将理论和算法与工程编译器的实际方面融合在一起。学生有望从先前的CS课程中具有软件开发经验,并且熟悉C ++。他们将成对地在一个项目上工作,该项目将涉及了解使用现代C ++编写的相当大的代码库并扩展它。该项目将涉及编写大量代码(整个学期以上的SLOC超过1000个),记录该代码,并提供证明该代码正确性的测试用例。学生将使用多种工具来实现这一目标,但将为他们提供一个模型系统来基于他们的工作。本课程中的项目在本科编译课程中是独一无二的,因为它使学生接触了现代的软件工程工具,技术和实践。它还涉及当今使用中最广泛使用的编译器基础架构之一 - LLVM - 是Clang编译器家族的核心。因此,学生将获得大量实用
主要关键词