第二章笔记

Linux系统
linux是一个倒树结构
linux中所有的东西都是文件
这些文件都在系统顶级目录“/” /就是根目录
/目录以下为二级目录这些目录都是系统装机时系统自动建立的
二级目录的作用
/bin ##二进制可执行文件也就是系统命令
/sbin ##系统管理命令存放位置
/boot ##启动分区,负责系统启动
/dev ##设备管理文件
/etc ##大多数系统管理支持性文件
/home ##普通用户的家目录
/lib ##32位系统库文件存放位置
/lib64 ##64位系统库文件存放位置
/media ##系统临时设备挂载点
/mnt ##系统临时设备挂载点
/run ##系统临时设备挂载点
/opt ##第三方软件安装位置
/proc ##系统信息
/root ##超级用户家目录
/srv,/var ##系统数据
/sys ##系统管理,主要是关于内核的
/tmp ##系统临时文件存放位置
/usr ##系统用户相关信息数据及用户自定义软件存放位置
文件的地址
绝对路径
文件在系统的真实位置,文件名字以“/”开头
相对路径
文件相对与当前所在位置的一个的目录,而且名字会自动添加pwd显示的值
文件的管理

1.touch 建立文件或修改文件时间戳

touch file ##创建文件

2.mkdir 建立目录

mkdir directory ##创建目录
-p ##上级目录不存在自动建立

3.rm 删除目录或文件

rm -f ##强行删除不提示
-r ##删除目录

4.cat|head|tail 查看文件内容

cat|head|tail ##文件内容查看命令

5.vim 文本方式编辑文件

vim filename 进入到命令模式
命令模式不能编辑文件,如果要编辑文件要进入插入模式
按”i”进入插入模式
如果完成编辑,按”esc“推出插入模式,输入”:wq“ 保存退出
vim filename 如果文件名字不存在,会自动创建

## 6.cd 切换工作目录

cd directory ##切换工作目录到指定目录
cd - ##切换工作目录到之前所在目录
cd ~ ##切换到自己的家目录
cd ~usernmae ##切换到指定用户家目录
cd .. ##进入到当前目录的上级目录

## 7.ls 列出目录或文件信息

ls ##如果后面没有目标那么默认目标为当前目录
ls direcory|filename ##列出文件或目录内容
ls -d direcotry ##列出目录本身
ls -l filename|dorectory ##列出文件或目录里面内容的属性
ls -ld directory ##列出目录本身属性
ls -a ##显示目录中的所有内容,包括以”.”开头的隐藏文件
ls -R ##第归显示目录中的内容

8.cp 文件复制

cp是新建文件的过程
cp file file1 file2 … directory ###把file file1 file2 复制到 directory中
cp file test ###建立test文件模板为file
cp -r directory direcotry1 ###复制目录

9.mv 移动或重命名

相同磁盘的mv是重命名,不同磁盘的mv是复制删除过程
mv file file1 direcotry ##移动file file1到directory中
mv 存在文件不存在文件##重命名文件
mv westos/linux . ##把westos中的linux移动到当前目录 .代表当前目录
正则表达式(一般针对目录或文件)
* ###匹配0到任意字符
? ###匹配单个字符
[[:alpha:]] ###匹配单个字母
[[:lower:]] ###匹配单个小写字母
[[:upper:]] ###匹配单个大写字母
[[:digit:]] ###匹配单个数字
[[:alnum:]] ###匹配单个数字或字母
[[:punct:]] ###匹配单个符号
[[:space:]] ###匹配单个空格
{}表示不存在的或者存在的
{1..9} ###1-9
{a..f} ###a-f
{1,3,5} ###135
{a,c,e} ###a c e
{1..3}{a..c} ###1a 2a 3a 2a 2b 2c 3a 3b 3c
[]表示存在的
[a-C] ###aA bB cC
[a-c] ###aA或者bB或者c
[1-3] ###1或者2或者3
[145] ###1或者4或者5
[^abc]|[!abc] ###除了a并且除了b并且除了c
~ ###当前用户家目录
~username ###指定的用户家目录
~+ ###当前目录
~- ###当前目录之前所在目录
. ###当前目录
.. ###当前目录的上一级

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
<think>嗯,用户让我介绍《编译原理(第三版)》清华大学出版社第二章笔记。首先,我需要确认这本书的作者是谁,可能是不是陈火旺或者其他人?不过可能用户没有提到具体作者,但第三版应该是比较经典的版本。第二章通常是词法分析部分,但不同教材的结构可能有所不同,所以得先回忆一下常见的编译原理教材结构。比如,龙书(紫皮书)的第一章是引言,第二章可能开始词法分析,而其他教材可能结构不同。但清华大学出版社的版本,可能需要查证一下。不过用户可能指的是张素琴等编写的《编译原理》第三版,清华大学出版社,常见的章节安排。 假设第二章是关于词法分析的话,通常会包括词法分析的作用、正则表达式、有限自动机(DFA、NFA)、从正则表达式到NFA的转换,NFA到DFA的转换,DFA的最小化,以及词法分析器的生成工具如Lex。但需要更准确地确认内容。 不过用户可能希望得到一个结构清晰的笔记,所以需要分点列出。根据系统指令,要使用中文,注意数学公式的格式,行内用$...$,独立公式用$$...$$。同时要确保内容正确,比如正则表达式的定义、自动机的转换步骤是否正确。 另外,用户可能需要的是重点知识总结,而不是详细的内容。因此需要提炼关键概念,比如词法分析的任务、单词的分类、正则表达式、有限自动机、算法(子集构造法、最小化算法)、Lex工具等。 可能需要注意常见的错误点,比如确定有限自动机和非确定有限自动机的区别,NFA到DFA的转换过程,以及最小化的步骤。另外,正则表达式与自动机的关系也是重点。 需要检查是否有遗漏的部分,比如词法分析中的错误处理,或者某些具体例子,比如如何用正则表达式描述标识符、数字等。此外,可能还要提到词法分析器的输出形式,比如词法单元序列,属性值等。 最后,组织内容时按照逻辑顺序,先介绍任务和作用,然后正则表达式,接着自动机,转换算法,最后工具。确保每个部分简明扼要,重点突出,符合用户的笔记需求。</think>以下为《编译原理(第三版)》(清华大学出版社)第二章内容的系统性笔记整理,按核心知识点分层归纳: --- ### 第二章:词法分析 #### 1. 词法分析的任务与作用 - **输入**:源代码字符串(字符流) - **输出****: 词法单元序列(Token序列),格式为:$(\text{种别码}, \text{属性值})$ - **核心功能**: - 过滤注释与空白符 - 识别单词并分类(如标识符、常量、运算符等) - 错误检测(如非法字符) --- #### 2. 单词的分类与描述 - **单词类别**: - **关键字**:具有固定含义的单词(如 `if`, `while`) - **标识符**:用户定义的名称,需满足正则规则:$[a-zA-Z][a-zA-Z0-9]*$ - **常量**:整型、浮点型、字符串等(如 `123`, `"hello"`) - **运算符**:`+`, `-`, `*`, `/` 等 - **界符**:`;`, `(`, `)` 等 --- #### 3. 正则表达式(RE) - **定义**:描述单词构成规则的符号系统 - **基本运算**: - 并:$A|B$(A或B) - 连接:$AB$(A后接B) - 闭包:$A^*$(A重复0次或多次) - **扩展语法**: - `[0-9]` 等价于 $0|1|…|9$ - `A+` 等价于 $AA^*$ - `A?` 等价于 $A|\varepsilon$ --- #### 4. 有限自动机(Finite Automata) - **非确定有限自动机(NFA)**: - 定义:五元组 $(Q, \Sigma, \delta, q_0, F)$ - 特点:允许$\varepsilon$-转移,同一状态对同一字符有多个转移 - **确定有限自动机(DFA)**: - 定义:五元组 $(Q, \Sigma, \delta, q_0, F)$ - 特点:无$\varepsilon$-转移,每个状态对每个字符有唯一转移 --- #### 5. 正则表达式到自动机的转换 - **Thompson算法**: 1. 将正则表达式分解为基本单元(字符、空串) 2. 递归构建NFA(通过连接、并、闭包操作组合子NFA) **示例**:正则表达式 `a(b|c)*` 的NFA构造 (此处可插入NFA状态图描述) --- #### 6. NFA到DFA的转换(子集构造法) - **步骤**: 1. 计算NFA初始状态的$\varepsilon$-闭包 2. 对每个未处理的状态集合$T$,计算所有字符输入后的转移闭包 3. 生成DFA状态,直到无新状态产生 **公式表示**: $$ \delta_{\text{DFA}}(T, a) = \varepsilon\text{-closure}\left( \bigcup_{q \in T} \delta_{\text{NFA}}(q, a) \right) $$ --- #### 7. DFA最小化(划分法) - **目标**:合并等价状态,减少DFA状态数 - **步骤**: 1. 将状态分为接受态和非接受态 2. 递归细分集合,直到同一集合内状态对所有输入字符的转移目标属于同一集合 --- #### 8. 词法分析器生成工具(Lex/Flex) - **工作原理**: - 输入:正则规则与动作代码 - 输出:可识别Token的C程序 - **文件结构**: ```lex %{ // 声明部分(头文件、变量) %} // 正则定义段 digit [0-9] %% // 规则段 {digit}+ { printf("整数: %s", yytext); } %% // 用户代码段 ``` --- #### 9. 关键问题总结 - **冲突解决**:最长匹配原则 & 优先级规则 - **错误处理**:跳过非法字符并报错 - **性能优化**:预计算转移表加速DFA执行 --- 如需更详细的公式推导或实例分析,可指定具体知识点进一步展开。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值