【编译原理】期末预习PPT前四章笔记II

 看了看学校的ppt,记的比较随意O.o 

 因为我的考试范围里边没有简答所以概念什么的没怎么记 

 没有简答只有选择真是太好了嘿嘿嘿 

目录

I. 概述(好多字。。)

一、高级语言的分类

1、体裁

2、执行方式

二、各种语言的执行方式

三、编译程序和解释程序的区别(看看区别O.o)

四、编译程序的功能

1、翻译

2、纠错

五、编译程序的组成(熟悉一下避免选择选不明白O.o)

1、词法分析

2、语法分析

3、语义分析

4、中间代码生成

5、中间代码优化

6、目标代码生成

六、编译程序的组织方式

七、编译程序的复杂性

II. 文法和语言

一、语言成分(好多定义O.o应该看看就行)

二、文法

1、定义

2、推导

3、Chomsky分类(没记得老师讲过O.o,不过还是看看吧)

4、语言(大题:文法 ←→ 语言)

5、语法树

1)特点(没啥用)

2)二义性

3)推导方式

6、分析方法

III、词法分析

一、概述(看看就行)

1、功能

2、任务

二、DFA 和 NFA(需要看课本)

1、DFA

2、NFA

3、NFA 转成 DFA(要出大题但是ppt没看懂。。需要看课本)

三、自顶向下(主要看了LL(1)文法)

1、first 集

2、follow 集

3、select 集

4、LL(1)

1)条件:同一左部的 select 无交集

2)转换

①提公因子(必要非充分,提完去掉没用的,有的提不了)

②消左递归(直接间接)

3)LL(1) 与递归下降


I. 概述(好多字。。)

一、高级语言的分类

1、体裁

过程式(怎么做),逻辑式(做什么),函数式(数学证明),面向对象(如Java)

2、执行方式

顺序,并行

二、各种语言的执行方式

三、编译程序和解释程序的区别(看看区别O.o)

四、编译程序的功能

1、翻译

将源程序翻译成机器能识别的目标代码程序

2、纠错

检测源程序中可能出现的各种错误,包括:词法错误,语法错误,语义错误等

五、编译程序的组成(熟悉一下避免选择选不明白O.o)

1、词法分析

输入高级语言源程序,识别源程序中的单词,并把单词转换成内部表示形式,同时检测程序中的词法错误。( 把高级语言程序转换成单词序列,检测词法错误 

2、语法分析

检测源程序中的语法错误,即检测程序中语法结构存在的错误。

3、语义分析

构造符号表,并检测程序中的语义错误

4、中间代码生成

将源程序翻译成与机器无关的中间表示形式。中间代码是高级语言与目标语言之间的桥梁不依赖于目标语言,有利于进行与目标机无关的代码优化,也有利于编译程序的重定位移植

5、中间代码优化

中间代码的优化以便产生高质量的目标代码。

6、目标代码生成

可以是汇编语言程序,也可以是机器代码程序。

六、编译程序的组织方式

七、编译程序的复杂性

1、编译程序是元级程序

2、编译程序要面对所有源语言程序,所以要面面俱到,考虑周全

3、高级语言和低级语言是不同级别的语言,二者的差异很大

4、编译程序是计算机系统中最重要的系统软件之一,其可靠性和优化方面的要求均很高

II. 文法和语言

一、语言成分(好多定义O.o应该看看就行)

字母表:符号的有穷集合,符号用以构成语言中的句子。

文法:结构规则的有穷集合,定义句子中符号的合法上下文。

语义:操作规则的集合,定义了程序在计算机上执行的操作效果。

二、文法

1、定义

是定义语言语法结构的一组形式规则(语法规则),可以将语言的所有成分描述出来。

2、推导

一步直接推导 好多步叫推导

3、Chomsky分类(没记得老师讲过O.o,不过还是看看吧)

4、语言(大题:文法 ←→ 语言)

5、语法树

1)特点(没啥用)

2)二义性

某个句子存在两颗不同语法树,即:一个句子有两种推法

3)推导方式

最左 → 推的时候从左边第一个开始换

最右(规范) → 从右边第一个开始换

6、分析方法

III、词法分析

一、概述(看看就行)

1、功能

从左到右逐个字符地对源程序进行扫描,产生单词序列,用于语法分析。

2、任务

二、DFA 和 NFA(需要看课本)

1、DFA

图例(不熟的话可以看看),例图可以看看书,ppt上画的有点。。丑

2、NFA

3、NFA 转成 DFA(要出大题但是ppt没看懂。。需要看课本)

三、自顶向下(主要看了LL(1)文法)

1、first 集

直接看例题,找所有第一个小写字母

2、follow 集

后边的first,后边是空就把左边的follow加进去

3、select 集

4、LL(1)

1)条件:同一左部的 select 无交集

2)转换
①提公因子(必要非充分,提完去掉没用的,有的提不了)

②消左递归(直接间接)

 刚开始还因为B'有个空看了半天。。后来问了大佬懂了。笨死我算了 O.o 

因为 B→ X]或BA,所以B'空相当于B → X]

3)LL(1) 与递归下降


前四章看完了,还有挺多盲区。。等看完后边四章再看看课本去Orz

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于ssm的医院交互系统+vue论文

医院交互系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的医院交互信息管理模式,采用人工登记的方式保存相关数据,这种以人力为主的管理模…

CCNP课程实验-07-OSPF-Trouble-Shooting

目录 实验条件网络拓朴 环境配置开始排错错点1:R1-R2之间认证不匹配错误2:hello包的时间配置不匹配错误3:R2的e0/1接口区域配置不正确错误4:R4的e0/1接口没有配置进OSPF错误5:R2的区域1没有配置成特殊区域错误6&#x…

RK3568 学习笔记 : ubuntu 20.04 下 Linux-SDK 镜像烧写

前言 开发板:【正点原子】ATK-DLRK3568 开发板,编译完 Linux-SDK 后,生成了相关的镜像文件,本篇记录一下 镜像烧写,当前编译环境在 VMware 虚拟机中,虚拟机系统是 ubuntu 20.04 此次烧写还算顺利&#xff…

2024腾讯云轻量应用服务器详细介绍_轻量全解析

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器,CPU内存带宽配置高并且价格特别便宜,大带宽,但是限制月流量。轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年,540元三年、2核4G5M带宽218元一年,756元3年、…

pod探针

Pod进阶: 探针* Poststart Prestop pod的声明周期开始: k8s的pod重启策略: Always deployment的yaml三种模式都可以,不论正常退出还是非正常退出都重启 OnFailure:只有状态码非零才会重启,正常退出事不重启的 …

产品手册非常重要,对产品推广的有很大的影响

如今产品手册作为企业传递产品信息的重要媒介,其制作与呈现方式对于产品的推广和销售具有至关重要的影响。一个优秀的产品手册不仅能够帮助消费者更好地了解产品,还能提升品牌形象,进一步推动产品的市场推广。 | 一、产品手册的重要性体现在以…

mysql 增删改查 数据库基本操作

mysal 数据库基本操作 1,库相关 创建数据库 create database 库名; 查看有哪些数据库 show databases; 结构性删除数据库 drop database 库名; 查看数据库基本信息(字符集) show create database 库名&am…

人工智能AI与3D视觉技术的结合正在引领新一代移动机器人的革新

随着科技的飞速发展,人工智能AI与3D视觉技术的结合正在引领新一代移动机器人的革新。富唯智能移动机器人,以其独特的3D视觉技术,赋予了移动机器人一双“智慧之眼”,从而为现代工业自动化带来了前所未有的突破。 富唯智能移动机器…

自制c++题目《模板综合》

1.输出结果&#xff1a; 2.主函数不允许改变 int arr[5] { 5,2,3,1,4}; char arr1[5] { a,c,b,e,d }; good <int>a(arr,5); good <char>b(arr1,5); bad<int>(1,2); bad<float>(1.1, 1.2); 自制c题目《模板综合》 王赫辰/c语言 - Gitee.com

【深度学习】各领域常用的损失函数汇总(2024最新版)

目录 1、L1 损失、平均绝对误差&#xff08;L1 Loss、Mean Absolute Error&#xff0c;MAE&#xff09; 2、L2 损失、均方误差&#xff08;L2 Loss、Mean Squared Error&#xff0c;MSE&#xff09; 3、交叉熵损失&#xff08;Cross-Entropy Loss&#xff09; 4、混合损失&…

Music!18+免费音乐搜索、音乐下载网站合集!

划到最后“阅读原文”——领取工具包&#xff08;超过1000工具&#xff0c;免费素材网站分享和行业报告&#xff09; Hi&#xff0c;我是胡猛夫~&#xff0c;专注于分享各类价值网站、高效工具&#xff01; 更多内容&#xff0c;更多资源&#xff0c;欢迎交流&#xff01;公 号…

深度学习课程实验一浅层神经网络的搭建

一、 实验目的 1、学习如何建立逻辑回归分类器用来识别猫。将引导你逐步了解神经网络的思维方式&#xff0c;同时磨练我们对深度学习的直觉。&#xff08;说明&#xff09;&#xff1a;除非指令中明确要求使用&#xff0c;否则请勿在代码中使用循环&#xff08;for / while&am…

使用Go语言实现RESTful API

RESTful架构是一种设计风格&#xff0c;用于构建网络应用程序的API。它基于HTTP协议&#xff0c;并使用不同的HTTP方法&#xff08;如GET、POST、PUT、DELETE等&#xff09;来处理不同的操作。在Go语言中&#xff0c;我们可以使用标准库中的net/http包来实现RESTful API。 下面…

申请域名SSL证书并自动推送至阿里云 CDN

近期国外SSL证书厂商调整了免费证书的续签规则&#xff0c;一年期的证书全部取消&#xff0c;现在只能申请90天有效期的免费证书。普通web站点可以通过宝塔面板或部署acme.sh等证书自动管理工具来实现自动化申请和部署&#xff0c;但是阿里云之类的CDN服务就只能通过手动或Open…

力扣刷题-二叉树-构建树

106.从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如&#xff0c;给出 中序遍历 inorder [9,3,15,20,7] 后序遍历 postorder [9,15,7,20,3] 返回如下的二叉树&#xff1a; 思路 参考&#xff1a;…

buuctf 逆向 findkey wp

首先看看怎么个事 点开也就这样了&#xff0c;没有输入的点&#xff0c;感觉和之前的 “刮开有奖” 有一点点相像 winmain长这个样子 看到消息循环了&#xff0c;下一步肯定就是找回调函数了 乍一看还没有&#xff0c;函数一个个点进去看发现sub_401023(hInstance&#xff09…

坚持减调,享受健康:让边调边减成为日常行为

引言&#xff1a; 在当前快节奏的现代社会中&#xff0c;随着生活水平的提高和健康意识的增强&#xff0c;越来越多的人开始关注自己的体态和健康状况。随着各种健身方式和调减方法的出现&#xff0c;人们的选择也越来越多样化&#xff0c;不仅包含节食、劳动和运动&#xff0…

深度优先搜索算法,图的深度优先搜索

深度优先搜索&#xff0c;其核心思想就是以一个点作为搜索的起始点&#xff0c;沿着这个点的分支路径不断地深入&#xff0c;直到没有满足条件的点则退回&#xff0c;并以新的起始点为搜索的点&#xff0c;重复以上的过程&#xff0c;图的遍历就是以深度优先搜索思想为解决问题…

改善 GitHub Pages 阅读体验:Quick Docs

一个不到 10MB 的小工具&#xff0c;来提供本地、快速的文档访问&#xff0c;来改善开发过程中&#xff0c;阅读在线文档体验糟糕的问题。 以及&#xff0c;介绍如何快速制作一个利于分发使用的&#xff0c;离线文档工具包。 写在前面 即使现在 AI 辅助编码和 Chat Bot 类的…