编译原理 构造LR分析表

LR分析表的构造LR分析的两个阶段产生分析表语法分析分析结果是一个是否属于该文法的判断结果或者语法树。复习分析栈内的符号串和剩下的输入符号串能构成一个规范句型一旦栈顶出现句柄(可归约串),则进行归约栈内永远不会出现句柄之后的符号字前缀与活前缀字的前缀指的是任意字的首部,abc的前缀有ε,a,ab,abc。活前缀指的是规范句型的一个前缀,这种前缀不包含句柄之后的任何符号。活前缀右边添加一些非终结符或

- 阅读全文 -

编译原理 LR分析器

LR分析器编译原理的老师上课实在是太赶了...感觉自己落下了好多课程,也跟不上,不过今天发现国防科技大学的编译原理慕课说的很清楚,所以先跟着慕课来学习吧。规范规约与句柄规范规约的关键载与寻找句柄LR分析器应该有能力在任何时候判断分析栈的顶部是否出现路句柄,如果出现了句柄,那么把分析栈顶部形成句柄的部分弹出,然后把归约后的符号压入。完成移进归约。根据这三类信息判断是否出现句柄以及下一步如何工作。LR

- 阅读全文 -

linux学习笔记8 账号管理

linux账号管理UID与GIDlinux主机其实并不会直接认识用户的账户名称,实际上识别的是用户的ID,账户名字与ID的对应关系记录在 /etc/passwd 里面,登录后用户至少能够取得两个ID——使用者ID(UID)和群组ID(GID),当需要显示一个用户是谁/属于哪个群组的时候,系统又会根据用户的ID去查找 /etc/passwd 与 /etc/group 中和ID对应的名字。#尝试查看一

- 阅读全文 -

linux学习笔记7 Shell脚本

Shell scriptsShell scripts类似于windows下的批处理文件,可以批量执行shell的命令,除了“将许多命令整合在一起”,shell脚本还能提供循环,条件/逻辑判断等功能,用于实现复杂一些的功能。需要注意的一些点指令执行从上到下,从左向右分析与执行指令与选项间的多个空白会被忽略空白行会被忽略读取到一个Enter符号,就会开始尝试执行如果一行钟内容太多,可以使用 Enter

- 阅读全文 -

linux学习笔记6 正则表达式

正则表达式正则表达式是处理字符串的方法,通过符号的辅助进行对字符串的搜索/删除/替换等操作。按照不同的严谨度区分成了基础正则表达式和延伸正则表达式,延伸的正则除了简单的一组字串处理还可以做群组的字串处理。另外注意,语系会对正则表达式的选择造成影响,因为某些语言编码中,字母大小写是交替出现的,这时如果我们使用A-Z这样的写法就会出现问题,所以我们可以先把语系改为en_us.utf8之类的。另外还可以

- 阅读全文 -

编译原理——文法和语言

文法和语言一个程序设计语言的定义应该包含语法和语义两反面。语法指的是用来形成和产生一个程序的一组规则。目前广泛使用上下文无关文法。语法只定义了什么样的符号序列是合法的,与符号的含义无关,类型匹配,作用域等无法使用上下文无关的方式来检查的,这属于语义分析的范畴。 语义分为两类,静态语义和动态语义,静态语义是一系列的先定规则,确定哪些语法争取的程序是合适的;动态语义表明程序要做些什么。文法的直观概念语

- 阅读全文 -

linux学习笔记5 Bash shell

Linux Bash ShellShell是什么操作系统管理着整个计算机的运行,协调着各部分的工作。操作系统的核心是被保护着的,如果我们想要和操作系统核心交互,就需要通过Shell(壳——就像核心外的一层外壳啦)来沟通(提供了使用操作系统的接口)。另外,我们还可以通过Shell调用其他的程序,让这些程序调用核心来完成我们的工作。Linux中的图形界面不属于系统的一部分,只算是一组应用程序,所以并不

- 阅读全文 -

linux学习笔记4 vim

Linux学习笔记 4 vim编辑器之前一直觉得vi/vim的指令比较繁琐,所以用的都是轻量一些的nano,但是轻量的代价就是如果想要进行一些复杂的操作就不太方便了,另外好几次在没有联网的linux系统计算机上编辑文件时,也发现只有自带的vi而没有安装nano,操作起来就很生疏。另外vim不光是一个“文本”编辑器,他还是一个“程序“编辑器,可以对代码进行高亮显示,多窗口显示等等,另外熟悉了vi的快

- 阅读全文 -