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

news2024/11/16 7:38:17

前言

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

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

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

编译原理我的卷面不错,期中和期末都是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.coloradmin.cn/o/1411419.html

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

相关文章

虹科分享丨汽车技术的未来:Netropy如何测试和确保汽车以太网的性能

来源&#xff1a;艾特保IT 虹科分享丨汽车技术的未来&#xff1a;Netropy如何测试和确保汽车以太网的性能 原文链接&#xff1a;https://mp.weixin.qq.com/s/G8wihrzqpJJOx5i0o63fkA 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; #汽车以太网 #车载网络 #Netropy …

【格密码基础】基于LWE问题的密码系统

目录 一. 介绍 二. LWE密码方案简单介绍 三. LWE经典归约 四. LWE性质 五. LWE的鲁棒性 一. 介绍 在2005年&#xff0c;Regev基于LWE问题提出了一个新的公钥密码方案。该方案可实现语义安全&#xff08;semantic security&#xff09;&#xff0c;其中误差率&#xff08;…

2023年我国民用无人机产业规模超过1200亿元,低空经济时代来临

2023年我国民用无人机产业规模超过1200亿元&#xff0c;低空经济时代来临 根据最新数据显示&#xff0c;2023年中国的民用无人机产业规模已经超过了1200亿元&#xff0c;稳居全球榜首。预计到2025年&#xff0c;这个数字将突破2000亿元&#xff0c;届时低空经济对国民经济的综…

SpringBoot 自定义Filter 提前返回 CORS 错误 处理前后端分离跨域配置无效问题解析

前言 浏览器有跨域限制&#xff0c;非同源策略 (协议、主机名或端口不同) 被视为跨域请求&#xff0c;解决跨域有跨域资源共享(CORS)、反向代理和 JSONP的方式。本篇通过 SpringBoot 的资源共享配置 (CORS) 来解决前后端分离项目的跨域&#xff0c;以及从原理上去解决跨域配置…

docker指令存档

目录 Docker 1、概念 2、架构图 3、安装 4、Docker怎么工作的&#xff1f; 5、Docker常用命令 帮助命令 镜像命令 1、查看镜像 2、帮助命令 3、搜索镜像 4、拉取镜像 5、删除镜像 容器命令 1、启动 2、查看运行的容器 3、删除容器 4、启动&停止 其他命令…

开始学习Vue2(axios和Vuex)

一、Axios 1、Axios 简介 Axios 是一个基于 promise 网络请求库 &#xff0c;作用于node.j s 和浏 览器中。它是 isomorphic 的(即同一套代码可以运行在浏览器 和 node.js 中)。在服务端它使用原生 node.js http 模块, 而在 客户端 (浏览端) 则使用 XMLHttpRequests。 …

滴滴开源小程序框架 Mpx 新特性:局部运行时能力增强

Mpx 是滴滴开源的一款增强型跨端小程序框架&#xff0c;自 2018 年立项开源以来如今已经进入第六个年头&#xff0c;在这六年间&#xff0c;Mpx 根植于业务&#xff0c;与业务共同成长&#xff0c;针对小程序业务开发中遇到的各类痛点问题提出了解决方案&#xff0c;并在滴滴内…

C语言实现插入排序算法(附带源代码)

插入排序 插入排序&#xff08;英语&#xff1a;Insertion Sort&#xff09;是一种简单直观的排序算法。它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常…

【Vue3】计算属性computed和监听属性watch

目录 &#x1f449; computed &#x1f448; &#x1f40c;只读取不修改 ☃️既读取又修改 &#x1f449; watch &#x1f448; 1、监听 ref 基本类型 数据 2、监听 ref 对象类型 数据 3、监听 reactive 对象类型 数据 4、监听对象类型的某个属性 5、监视以上多个数据…

小程序 样式 WXSS

文章目录 样式 WXSS尺⼨单位样式导⼊选择器⼩程序中使⽤less 样式 WXSS WXSS( WeiXin Style Sheets )是⼀套样式语⾔&#xff0c;⽤于描述 WXML 的组件样式。 与 CSS 相⽐&#xff0c;WXSS 扩展的特性有&#xff1a; 响应式⻓度单位 rpx样式导⼊ 尺⼨单位 rpx &#xff08;…

08.Elasticsearch应用(八)

Elasticsearch应用&#xff08;八&#xff09; 1.为什么需要相关性算分 我们在文档搜索的时候&#xff0c;匹配程度越高的相关性算分越高&#xff0c;算分越高的越靠前&#xff0c;但是有时候我们不需要算分越高越靠前我们可能需要手动影响算分来控制顺序比如广告&#xff08…

数学建模学习笔记||一文了解美赛论文如何写作

目录 ​编辑 Title/标题 要求 形式 Summary Sheet/摘要 要求 三要素 书写特点 内容 开头段 中间段 格式 内容 结尾段 关键词 Contents/目录 Introduction/引言 Problem Background/问题背景 Restatement of the Problem/问题重述 Literature Review/文献综…

有向图的拓扑序列——拓扑排序

问题描述 什么是拓扑序列 若一个由图中所有点构成的序列 A 满足&#xff1a;对于图中的每条边 (x,y)&#xff0c;x 在 A 中都出现在 y 之前&#xff0c;则称 A 是该图的一个拓扑序列。图中不能有环图中至少存在一个点的入度为0 如何求拓扑序列&#xff1f; 计算出每个节点的…

将Python打包为exe+inno setup将exe程序封装成向导安装程序

为什么要打包&#xff1f; Python脚本不能在没有安装Python的机器上运行。如果写了一个脚本&#xff0c;想分享给其他人使用&#xff0c;可她电脑又没有装Python。如果将脚本打包成exe文件&#xff0c;即使她的电脑上没有安装Python解释器&#xff0c;这个exe程序也能在上面运行…

数据结构实验八:排序的应用

目录 一、实验目的 二、实验原理 1.直接插入排序 2.快速排序 三、实验内容 实验1 代码 截图 实验2 代码 截图 一、实验目的 1、掌握排序的基本概念&#xff1b; 2&#xff0e;掌握并实现以下排序算法&#xff1a;直接插入排序、快速排序。 二、实验原理 1.直接插…

RK3399ProD开发板的固件烧录实战

参考 Toybrick-开源社区-TB-RK3399ProD-RK3399ProD开发板的固件烧录教程 https://download.csdn.net/download/quantum7/88769396 环境 主机&#xff1a;win10 开发板&#xff1a;TB-RK3399ProD 烧录工具&#xff1a;FlashTool_CN\Windows\AndroidTool.exe 串口驱动&#xf…

14.5 Flash查询和添加数据库数据

14.5 Flash查询和添加数据库数据 在Flash与数据库通讯的实际应用中&#xff0c;如何实现用户的登录与注册是经常遇到的一个问题。登录实际上就是ASP根据Flash提供的数据查询数据库的过程&#xff0c;而注册则是ASP将Flash提供的数据写入数据库的过程。 1.启动Access2003&…

linux 查找文件或查找内容 (find grep)

一 linux 查找包含指定内容的文件&#xff1a; 在linux 有时我们只我知道内容但不知道文件在哪&#xff0c;可以使用find 与grep查找 例1 要查找指定目录&#xff08;默认包含子目录&#xff09;文件内容包含 xxx 的文件 find /etc/ -type f -exec grep -l "mysql"…

音频格式之AAC:(2)AAC封装格式ADIF,ADTS,LATM,extradata及AAC ES存储格式

系列文章目录 音频格式的介绍文章系列&#xff1a; 音频编解码格式介绍(1) ADPCM&#xff1a;adpcm编解码原理及其代码实现 音频编解码格式介绍(2) MP3 &#xff1a;音频格式之MP3&#xff1a;(1)MP3封装格式简介 音频编解码格式介绍(2) MP3 &#xff1a;音频格式之MP3&#x…

第14章_数据结构与集合源码(一维数组,链表,栈,队列,树与二叉树,List接口分析,Map接口分析,Set接口分析,HashMap的相关问题)

文章目录 第14章_数据结构与集合源码本章专题与脉络1. 数据结构剖析1.1 研究对象一&#xff1a;数据间逻辑关系1.2 研究对象二&#xff1a;数据的存储结构&#xff08;或物理结构&#xff09;1.3 研究对象三&#xff1a;运算结构1.4 小结 2. 一维数组2.1 数组的特点2.2 自定义数…