没有合适的资源?快使用搜索试试~ 我知道了~
计算机软件基础:07第二章UNIX工具backus-vi.doc
1 浏览量
2022-11-28
01:17:25
上传
评论
收藏 677KB DOC 举报
计算机软件基础:07第二章UNIX工具backus-vi.doc
资源详情
资源推荐
资源评论

《计算机软件基础》多媒体教程
第七讲
第二章 UNIX 的软件工具
2.1 Unix 软件开发工具简介
※文本编辑工具(text editor,编辑器,编辑程序)
软件工具分类
适合于字符终端
适合于图形终端
功能特点
行文本编辑
ed,ex
面向行
交互文本编辑
vi,vim,emacs
xeditor 等
面向字符
字符流编辑
sed,awk
面向整个文件
部分编辑功能
tr,dd,sort,uniq 等
非编辑工具,具有可
利用的编辑功能
※文本格式化工具(document generation)
⊙书写文档资料(documentation)
按格式自动排版文本文件,编写连机用户手册(on line manual)
nroff,troff,tbl,eqn
⊙撰写学术论文(paper and thesis)
tex,latex,poscript (ps),pdf
※软件维护工具(software maintanence)
⊙软件编译和生成,或工程组织等过程的自动辅助工具
make
⊙版本管理工具(version controller)
SCCS,CVS,SVN 等
⊙库函数管理(archive)
ar 等
※软件调试查错工具(debugging tools)
功能:设置断点;跟踪运行;单步或多步;监视数据变化;设定循环次数;条件运行等
⊙适合于字符终端
adb,sdb,gdb
⊙适合于图形终端
dbx,dbxtool,wdb,ddd,...
※编译器生成工具(compiler generation)
⊙词法编译器生成工具(lexical generation)
lex
⊙语法编译器生成工具(yet another compiler compiler)
yacc
※软件工具中各种命令使用格式的约定
⊙正体字“abc” 语法规定的字符,不能改变。
⊙斜体字“abc” 命令参数,具体值由用户根据需要决定。
⊙省略号“...” 重复在省略号前面的内容。
⊙方括号“[xyz]” 方括号内的内容可以省略,如需要使用方括号将专门说明。
⊙回车符 必要处用⊕或者<CR>表示,禁止出现将专门说明。明显需要回车符
的地方可能省略,例如大多数结束命令的回车符都将省略。
⊙空格 必要处用□表示,禁止出现将专门说明,明显需要空格的地方可省略。
⊙控制符 用^X表示,如^D。
⊙下划线“abc” 用户键入的数据或者字符,用下划线表示。
⊙缺省 在明显的情况将省略以上的约定。
⊙例外 与以上约定不符的例外情况将专门说明。

※约定示例
⊙:[i [,j]]d⊕
“:”和 d 是规定字符。i 和 j 的值由用户确定,“,j”可以省略或者“i,j”都可省略。回车符⊕不
能省略。
⊙vi [file [...] ]
vi 命令可以没有参数,或者带一个或者多个 file。省略了明显需要的回车符。
⊙echo $a□$b $a$b
标出空格,表示$a□$b 与$a$b 的效果不同。省略了回车符。
⊙
变量
=
值
禁止空格,规定等号=的两侧不能出现空格。
⊙iHi⊕Bye<ESC>
i 和<ESC>是命令(不显示),其余由用户输入(下划线)。禁止回车符。
⊙[□
表达式
□]
方括号[ ]是规定字符,不能省略,空格不能省略。
2.2 BACKUS 系统
※什么是BACKUS系统
由约翰•巴克斯(John Warner Backus)和彼得•诺尔(Peter Naur)发明的 BACKUS 系统,
通常称为 BNF 范式(Backus Naur Form,巴克斯-诺尔范式),是一种针对计算机语言的形式
化描述语言,或者说是一种描述计算机语言语法的符号集。
计算机面对任何形式的字符流或者命令流,都可以看成是具有一定语法和词法规则的语
言。这种语言可以是文字形式,例如各种输入的数据文件或者文本文件、用 shell 命令或者
shell 程序表达的操作命令;也可以是图形界面形式,例如在窗口中用菜单命令表达的操作
命令。而 BNF 范式恰恰可以用来描述任何一种形式化语言的语法和词法结构。
我们在学习 UNIX 的软件工具时,将借鉴 BNF 范式来描述需要处理的文本文件的语法
结构和词法结构,以便使得文字处理工具比较容易理解和掌握。
※BNF范式的定义
设∑是不含有符号::=,<,>和|的终结符(字符)集合;
用括号< >括起来的终结符的组合,称为变量 V;
终结符和变量的组合称为字 W;
形为 V ::= W1 | W2 | ... | Wn 的表达式称为产生式;
由有限个产生式组成的系统称为 BNF 范式。
本课程约定关于数字和字母的定义可以省略:
<数字> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<字母> ::= <大写字母> | <小写字母>
<大写字母> ::= A | ... | Z
<小写字母> ::= a | ... | z
※BNF范式描述计算机语言的典例
用 BNF 范式描述某种语言(例如 A 语言)的形式为:
∑={
字符
1,
字符
2, ...,
字符
n }
<A 语言> ::= <
语法
>... A 语言由若干语法成分组成
<
语法
> ::= <
子语法
> ... 语法由若干子语法成分组成
<
子语法
> ::= <
词法
>... 子语法由若干词法成分组成
<
词法
> ::=
字符集合
... 词法由若干字符集合组成
字符集合
::=
字符
... 字符集合由若干字符组成
※BNF范式的特征
BNF 范式具有描述形式化语言的三种基本特征:顺序性、选择性和重复性。
⊙顺序性:按确定的次序定义产生式中的成分。
例如,由 A、B 和 C 的顺序排列组成 X,描述为:
X ::= A B C
⊙选择性:产生式可以从多个可能的成分中选一个,用符号“|”表示连接。

例如,X 的组成可能是 A 和 B 中的一个,描述为:
X ::= A | B
特别地,A 可以是空,即可以表述为:
X ::= | B
⊙重复性:产生式可以由某个成分的多次重复组成,并采用递归的形式表示。
例如,X 由多个 A 组成,描述为:
X ::= A | X A 右递归
或者 X ::= A | A X 左递归
【例 2-1】用 BNF 范式表达的简单算术表达式 SAE(Simple Arithmatic Expression)。
∑={ 0-9, ., +, -. *, /, (, ) }
<SAE>::= <number> | <SAE> <op> <SAE> | ( <SAE> )
<number> ::= <数字> . | <数字> <number>
<op> ::= + | - | * | /
例如:
7.,372.,(2. + 14.),3.*(5.-2.)+7. 都是<SAE>
.5,7.3,A,(2. + 14.)+ 都不是<SAE>
分析过程示例:
(1) 7 是<digit>, 7. 符合<digit>.,是<number>,<number>是<SAE>,所以 7.是
<SAE>。
(2) 5.-2.符合<SAE> <op> <SAE>,(5.-2.)符合(<SAE>),
3.*(5.-2.)和 3.*(5.-2.)+7.都符合<SAE> <op> <SAE>,所以 3.*(5.-2.)+7.是 SAE。
(3) 2.+14.符合<SAE><op><SAE>,(2.+14.)符合( <SAE> ),
(2.+14.)+不符合<SAE><op><SAE>,所以(2.+14.)+不是 SAE。
【例 2-2】用 BNF 范式表达的无括号表达式 PFE(Parentheses Free Expression)。
∑={ 0-9, ., +, -. *, / }
<PFE> ::= <number> | <PFE> <PFE> <op>
<number> ::= <数字> . | <数字> <number>
<op> ::= + | - | * | /
例如:
7.,372.,2.14.+,3.5.2.-*7.+ 都是<PFE>
7.*5.3.7.-, A,2.6.8.+1./5.* 都不是<PFE>
分析过程示例:
(1) 2.和 14.都是 PFE,2.14.+符合<PFE><PFE><op>,是 PFE。
(2) 5.2.-符合<PFE><PFE><op>,3.5.2.-*符合<PFE><PFE><op>,
3.5.2.-*7.+符合<PFE><PFE><op>,所以 3.5.2.-*7.+是 PFE。
(3) 3.7.-符合<PFE><PFE><op>,7.*不符合<PFE><PFE><op>,且
5.3.7.-不符合<PFE><PFE><op>,所以 7.*5.3.7.-不是 PFE。
【例 2-3】用 BNF 范式描述 X 格式的文件
∑={ 0-9, A-Z, a-z, =,⊕}
<文件>::= <定义行> | <文件> <定义行>
<定义行>::= <变量> = <数值> ⊕
<变量>::= <字母串>
<数值>::= <整数串>
例如,以下文件 datain 符合 X 格式:
RES□=□12⊕
CAP□=□9⊕
DIOD□=□20⊕
【例 2-4】用 BNF 范式表达电路分析程序 SPICE 中描述电阻的语句格式为
电阻名 节点号 节点号 电阻值 单位
例如图中所示:R1 0 3 20 K
剩余12页未读,继续阅读





















资源评论

yyyyyyhhh222
- 粉丝: 3
- 资源: 6万+

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
