HNU-编译原理-甘晴void学习感悟

前言

熬过煎熬的考试周、复习以及更加煎熬的等成绩,查到成绩的那一刻,心里还是挺开心的。

虽然我没有完全学懂这门课程,但我还是兢兢业业地通过了课程的考试,拿到了这门课程的认可。

记录一下自己对编译原理的学习感悟,算是给这学期编译原理的学习一个总结,也可以给后来者一点帮助。

编译原理我的卷面不错,期中和期末都是9X分,总评也挺好看,属于是少见的平时成绩将总评向下拉的学科。

总领

编译原理这门课程十分困难,湖南大学课程组对于编译原理的课程教学仅仅局限在一个很小的部分,如

  • 词法分析部分(RE,NFA,DFA,min-DFA等),
  • 语法分析部分(LL1,LR0,LR1,SLR,LALR等,我们老师还讲了算符优先文法,但考试没有考察),
  • 中间代码生成部分(主要在实验中涉及到,老师上课讲过DAG图,依赖图等,但没有深入涉及,也没做复杂考察),
  • 代码优化部分(活性分析,到达分析,寄存器分配等)

由于我对编译这一块不是很感兴趣,所以没有深入去了解,仅仅是抱着“通过考试,拿到成绩,有别的用处”这样的想法去学习,备考的,故我接下来仅仅从应试这个角度分析一下如何取得较好的成绩。

我们班组对于成绩的给定如下:

作业(16%) + 实验(16%) + 小班讨论(5%) + 期中考试(23%) + 期末考试(40%)

因此我主要分平时、作业、实验、小班讨论、考试,这5个方面做总结。

<0> 平时

推荐网课

中科大 华保健教授:

编译原理 华保健 高清课程_哔哩哔哩_bilibili编译原理 华保健 高清课程共计127条视频,包括:1.1 编译器概述、1.2 编译器结构、1.3 编译器实例等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1m7411d7iS/中南大学 徐德智教授:

编译原理 中南大学 徐德智教授_哔哩哔哩_bilibili编译原理 中南大学 徐德智教授共计42条视频,包括:课时1:形式语言与文法描述、课时2:词法分析:正规式与自动机(DFA,NFA)、课时3:词法分析:Thompson算法,子集构造算法,Hopcroft算法等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1oV411e7Fj/词法分析部分,这个up主小姐姐讲的非常好:

致爱意的个人空间-致爱意个人主页-哔哩哔哩视频哔哩哔哩致爱意的个人空间,提供致爱意分享的视频、音频、文章、动态、收藏等内容,关注致爱意账号,第一时间了解UP主动态。icon-default.png?t=N7T8https://space.bilibili.com/514480242

<1> 作业

对于专业课的作业,我还是跟之前的态度一样:先自己独立完成一遍,然后找同学对答案,找到自己不会的部分,务必搞懂。最后上交的时候确保平时成绩。

由于我们使用的是龙书,龙书是上到现在为止,唯一一门我没有找到教材标准答案的课本,所以答案只能靠与同学讨论得到。网上流传的答案都不太可信,有缺漏的部分,也有错误的部分。

对于这门课程,我个人感觉作业是很有用的,务必自己认真完成。道理很简单,作业就是考试题型。作业答案我就不提供了,主要全是PDF,截图上传太烦了。

<2> 实验

我们实验用的是USTC中科大2020版的cminus-f,简单来说就是动手自己写出一个类c编译器,但这个编译器完成的功能小一点,然后这个类c的语法也比c要简单一些。

实验使用gitee上交(git也要学一下,这是学计算机必须掌握的),

我开放了我的gitee仓库,有需要的同学可以参考着看看。

资源位置:https://gitee.com/wolfvoid17/cminus_compiler-2023-fall

cminus_compiler-2023-fall: 编译原理课程实验报告甘晴void-计科210X-202108010XXXicon-default.png?t=N7T8https://gitee.com/wolfvoid17/cminus_compiler-2023-fall我的4次实验报告如下,欢迎参考:

HNU-编译原理-实验1-利用FLEX构造C-Minus-f词法分析器-CSDN博客

HNU-编译原理-实验2-Bison-CSDN博客

HNU-编译原理-实验3-LLVM IR与LightIR-CSDN博客

HNU-编译原理-实验4-cminus-f语言(由AST生成IR)-CSDN博客

实验采取gitee提交留档 + 助教线下验收的形式。

验收要能给助教表达清楚自己对于实验的理解,如果能现场演示具体的案例更好。

<3> 小班讨论

自选题目,基本上就是复现上课的内容,对于应试也是有帮助,这些基本都是需要掌握的。

讨论课助教参与并打分,面向班级同学。给合适的例子,把知识讲懂就可以了。

我们组的两次讨论课PPT如下:

HNU-编译原理-讨论课1-CSDN博客

HNU-编译原理-讨论课2-CSDN博客

<4> 考试

考试应该是应试环节最为重要的一个部分。

期中考试是开卷考试,就不说了。其实这个学科没有开卷的必要,因为不可能直接抄到答案的。开卷和闭卷没啥差别,又不让讨论。没什么好说的。

这次期末由于有4们核心课而且在第17周就直接考试,所以我的复习时间很少。我大概花了2天时间在编译原理的复习上。主要是元旦看了一下代码优化和语法制导翻译(其实没咋看懂),然后在数据库考完之后,最后一门是编译原理的情况下,看了一整天的编译原理(考完数据库之后打了一下午英雄联盟,然后晚上去综合楼自习,第二天学了一整天编译原理)。感觉时间应该差不多。

总结为一句话,编译原理很难,但是编译原理的考试不难。

我在复习的时候参考的资料有:

我们班组老师的PPT,隔壁班组老师的PPT(因为几个班组用的同一套试卷),

【PPT我就不放了,毕竟是老师的劳动成果,直接放不太好】

基本上跟中科大华老师的这个很像

编译原理 华保健 高清课程_哔哩哔哩_bilibili编译原理 华保健 高清课程共计127条视频,包括:1.1 编译器概述、1.2 编译器结构、1.3 编译器实例等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1m7411d7iS/

可找到的历年期末考试卷(这个很难找到,所以很珍贵,下面或是我找到的,或是我自己做的,能收集到的资料)。

编译原理期末复习_(1)语义规则: → { a.i=n.val } 下面是我自己做的,或者是我回忆的2023年的原题。

HNU-编译原理-期末复习(刷题)-CSDN博客

编译原理-2022期末考试解析-CSDN博客

湖南大学-编译原理-2023期末考试【原题】-CSDN博客

总共就这5个模块:

  • 词法分析
  • 语法分析
  • 语法制导翻译
  • 中间代码
  • 优化

复习完一个模块就做相应的练习题,练会就好了。

对于语法分析部分(LL1,LR0,LR1,SLR,LALR等),B站的这个up小姐姐讲的很清晰,推荐看看。

致爱意的个人空间-致爱意个人主页-哔哩哔哩视频哔哩哔哩致爱意的个人空间,提供致爱意分享的视频、音频、文章、动态、收藏等内容,关注致爱意账号,第一时间了解UP主动态。icon-default.png?t=N7T8https://space.bilibili.com/514480242

对于数值分析和到达分析部分,中南大学的许德智教授讲的很好,可以看看。

编译原理 中南大学 徐德智教授_哔哩哔哩_bilibili编译原理 中南大学 徐德智教授共计42条视频,包括:课时1:形式语言与文法描述、课时2:词法分析:正规式与自动机(DFA,NFA)、课时3:词法分析:Thompson算法,子集构造算法,Hopcroft算法等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1oV411e7Fj/

如果有想对应试更加深入理解的同学,推荐看这个武汉大学的学长做的,面向它们试卷难度的讲解。可见武汉大学的考察难度确实比湖南大学要大。这个看看题目和思路就好,湖南大学的考察一般达不到这个深度的。

【武汉大学】编译原理混子速成——面向期末试卷复习:全集_哔哩哔哩_bilibili【武汉大学】编译原理混子速成——面向期末试卷复习:全集共计9条视频,包括:1 简介、2 NFA转DFA和DFA化简、3 求firsrt集follow集和LL(1)分析表等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1SB4y1S7Sc/

结语

还是要感谢我们的全教授的授课与解惑,

全教授的讲课风格偏向理性化,没有过多强调代码,会比较清晰地展现每一步骤与实现,

真的帮助很大。

最后祝大家都能得到自己满意的成绩+知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/648947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优化用户体验测试应用领域:提升产品质量与用户满意度

在当今数字化时代&#xff0c;用户体验测试应用已经成为确保产品质量、提升用户满意度的关键工具。随着技术的不断发展&#xff0c;用户的期望也在不断演变&#xff0c;因此&#xff0c;为了保持竞争力&#xff0c;企业必须将用户体验置于产品开发的核心位置。本文将探讨用户体…

知识圣殿,智慧熔炉

知识圣殿&#xff0c;智慧熔炉 知识殿堂&#xff0c;巍然屹立 一座灵魂熔炉&#xff0c;号称图书馆 万卷书香盈架&#xff0c;智慧如星河汇聚 每一册书页&#xff0c;流淌着人类文明的血脉 钢笔与墨水交织诗篇 思想发芽&#xff0c;真理绽放光焰 浩瀚知识海洋&#xff0c;波涛…

Dlearning

Deep Learning Basic 神经网络&#xff1a; #mermaid-svg-rR22a8Udy5SxGOoP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rR22a8Udy5SxGOoP .error-icon{fill:#552222;}#mermaid-svg-rR22a8Udy5SxGOoP .error-t…

【MATLAB源码-第122期】基于matlab斑马优化算法(ZOA)无人机三维路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 斑马优化算法&#xff08;Zebra Optimization Algorithm&#xff0c;简称ZOA&#xff09;是一种模仿斑马群体行为的优化算法。在自然界中&#xff0c;斑马是一种社会性很强的动物&#xff0c;它们具有独特的群体行为模式&…

【STM32】STM32学习笔记-硬件SPI读写W25Q64(40)

00. 目录 文章目录 00. 目录01. SPI简介02. W25Q64简介03. SPI相关API3.1 SPI_Init3.2 SPI_Cmd3.3 SPI_I2S_SendData3.4 SPI_I2S_ReceiveData3.5 SPI_I2S_GetFlagStatus3.6 SPI_I2S_ClearFlag3.7 SPI_InitTypeDef 04. 硬件SPI读写W25Q64接线图05. 硬件SPI读写W25Q64示例06. 程序…

1块9毛钱,修复拓牛TC1D智能垃圾桶盖子不能正常开合的故障

前言 21年9月份买了拓牛的智能垃圾桶&#xff0c;一直用的很流畅&#xff0c;再加上屋里没啥有机垃圾&#xff0c;也没有宠物&#xff0c;用上之后每次投入垃圾&#xff0c;之后都会盖上盖子&#xff0c;没有很多的异味散发&#xff0c;屋里也没有蟑螂等害虫。 再加上门口有帘…

Chrome单独配置代理的方法

Windows Windows上单独对Chrome设置代理&#xff0c;需要在启动时传递参数&#xff0c;具体步骤如下。 在Chrome浏览器的快捷方式上右击&#xff0c;进入属性。在 快捷方式 标签下找到 目标 项目&#xff0c;在最后添加 –proxy-server“socks5://xxx.xxx.xx.xx:xxxx” 如果要…

Flink SQL 实时数据开发经验总结

使用SQL实现流处理的核心技术 在了解了Table\SQL API的使用方法以及作业运行机制之后&#xff0c;接下来分析SQL实现流处理的核心技术。 为什么要分析这个问题呢&#xff1f; 因为传统的关系代数以及SQL最开始是为了批处理设计的&#xff0c;在传统关系型数据库以及批处理中…

SpringBoot操作Jedis

SpringBoot操作Jedis 1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://ma…

大创项目推荐 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 行人车辆目标检测计数系统 …

Conda python管理环境environments 二 从入门到精通

Conda系列&#xff1a; 翻译: Anaconda 与 miniconda的区别Miniconda介绍以及安装Conda python运行的包和环境管理 入门Conda python管理环境environments 一 从入门到精通 1. 指定环境environment的位置 可以通过提供路径来控制 conda 环境所在的位置 复制到目标目录。例如…

实习日志6

1.发现base64编码对同一张图片编码好像不会改变 用word文档的查重&#xff0c;似乎是一模一样的 于是去看了一下CSDN 1.1.base64编码原理 编码原理 使用 Base64 进行编码&#xff0c;大致可以分为 4 步&#xff1a; 将原始数据每三个字节作为一组&#xff0c;一共是 24 个 …

Python解释器的启动方式

Python解释器的启动方式 Python 解释器是一个运行 Python 代码的程序。它读取并执行写成 Python 语言的指令。由于 Python 是一种解释型语言&#xff0c;所以它的代码不需要编译成机器语言就可以直接运行。这就是为什么我们需要一个解释器来逐行读取 Python 代码&#xff0c;将…

QT5.14.2开发的Mysql8.0系统安装部署过程

最近在Windows 11 64位系统下使用QT5.14.2开发了套系统、使用了MYSQL8.0数据库&#xff0c;项目使用mingw-64编译器进行编译&#xff0c;编译完成后使用windeployqt进行发布&#xff0c;并制作安装包&#xff0c;拷贝到工控机Windows10 64位系统上进行安装运行。本文记录下安装…

RedisInsight详细安装教程

简介 RedisInsight 是一个直观高效的 Redis GUI 管理工具&#xff0c;它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控&#xff0c;并且可以在界面上使用 CLI 和连接的 Redis 进行交互&#xff08;RedisInsight 内置对 Redis 模块支持&#xff09;。 RedisIn…

试卷扫描转化word的功能有吗?分享4款工具!

试卷扫描转化word的功能有吗&#xff1f;分享4款工具&#xff01; 随着科技的飞速发展&#xff0c;将试卷扫描并转化为Word文档已经成为我们日常学习和工作的常规需求。但是&#xff0c;市面上的扫描工具众多&#xff0c;如何选择一个既方便又准确的工具呢&#xff1f;本文将为…

Win7 和 Win Server 2008 安装Anaconda报错:Failed to extract packages

在Python官网来看&#xff0c;Python 3.8.18之后&#xff0c;就不再支持Windows7。 对应Anaconda的版本就是anaconda3-2021.05。 下载地址是&#xff1a;https://repo.anaconda.com/archive/Anaconda3-2021.05-Windows-x86_64.exe 相关链接 Python官方下载 Anaconda归档

k8s学习(RKE+k8s+rancher2.x)成长系列之概念介绍(一)

一、前言 本文使用国内大多数中小型企业使用的RKE搭建K8s并拉起高可用Rancher2.x的搭建方式&#xff0c;以相关技术概念为起点&#xff0c;实际环境搭建&#xff0c;程序部署为终点&#xff0c;从0到1的实操演示的学习方式&#xff0c;一步一步&#xff0c;保姆级的方式学习k8…

JavaScript DOM对象的尺寸和位置详解

在DOM对象操作中&#xff0c;其尺寸和位置也是DOM的核心内容&#xff0c;因为js的“交互式应用”几乎少不了对DOM对象的尺寸和位置进行操作&#xff0c;特别是js动画效果。 一、关于DOM对象的尺寸和位置介绍 二、DOM文档对象的尺寸 1、obj.scrollWidth 和 obj.scrollHeight …

JDBC学习笔记

一.什么是JDBC 我们操作数据库是用sql语句&#xff0c;那么怎么编写程序来操作数据库呢&#xff1f;这就要学习JDBC。 JDBC就是使用Java中操作关系型数据库的一套API。全称&#xff1a;( Java DataBase Connectivity ) Java 数据库连接。 JDBC更准确的来说是一套接口/API&…