一个编译原理的笔试题目,好久没看过这方面的东西,不记得了

fu_gui 2004-08-06 12:00:28
解释如下词汇:

Lexical
YACC
L1
LL1
LR1
Stack frame

非常感谢!
...全文
390 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gbbword 2004-08-07
  • 打赏
  • 举报
回复
/ .
' / .- .
. .- .-
./ .--...
.-------- 0 .--
/ .......
' ..
'........ ----
. --..
. .---.. -
分 o . ' -.
分 / '
/ ' ' '
\-分--/....... . ' ' ' '
\ __/ - - -' ' ' '
' ' ' '
o ' ' ' '
' ' '
-..'.----------.
I ----------
/////////.
hewittlee 2004-08-06
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
L1在编译原理中只是代表某种语言的符号.如以下考试题:
=======================================================
请写出产生下列语言的文法.
1. L1={a^ib^j|i>j>=1}
2. L2={ω1|ω1∈{0,1}*&ω1中包含0,1个数相等的任意串}
3. L3={ω2|ω2∈{a,b}*&ω2中a之后必定跟b}
4. L4={ω3+ω3|ω3∈{0,1}*}
=======================================================

LL(1)和LR(1)都是语法分析。两者具体解释见我上面的说明。
LL(1)属于自顶向下语法分析的一种文法,LR(1)属于自底向上语法分析的一种文法。
vioy 2004-08-06
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
有两类自顶向下分析算法:分别是递归下降分析和LL(1)分析。
LL(1)分析方法是这样得名的:第一个“L”是指由左向右的处理输入。
第二个“L”指的是它为输入串描绘一个最左的推导。
括号中的数字1意味着它仅使用输入中的一个符号来预测分析的方向。

与LL(1)分析程序的术语相类似,最普通的自底向上算法称作LR(1)分析(LR(1)parsing):L代表由左向右处理输入,R表示生成了最右推导,而数字1则表示使用了先行的一个符号。
  • 打赏
  • 举报
回复
lexical analysis (词汇分析)
Flex就是fast lex的意思.而lex就是Lexical Analyzar的意思.flex可以在cygwin或者gnupro中找到.它是unix的一个工具,属于GNU组织产品.网上也可以找到单独可以在windows下用的版本.

我们一般把我们的词法扫描程序要扫描的一些单词(token)用正则表达式写好,然后作为lex的输入文件,输入命令flex xxx.l(xxx.l就是输入文件),lex经过处理后,就能得到一个名字叫lex.yy.c的C源代码.这个C源代码文件,就是我们的词法扫描程序.通常lex为我们生成的词法分析器的C源代码都是十分复杂而且庞大的,我们一般根本不会去查看里面的代码(放心好了,flex这个东西不会出错的)

yacc工具来帮助我来识别文法
Lex和yacc这两个东西本来是unix下的两个工具.
Lex和yacc这两个工具是经典的词法分析和语法分析工具,但是它们都是基于C语言下面的工具.
文法识别(语法分析):自顶向下的算法(LL算法)

stack frame(堆栈帧)
An area of the stack associated with a particular function call.
一个关联特殊函数调用的堆栈区域。
RookieStar 2004-08-06
  • 打赏
  • 举报
回复
mark~
oldwood 2004-08-06
  • 打赏
  • 举报
回复
Lexical 是一个词法分析工具
YACC 是一个语法分析工具
L1 ?
LL1 是从左到右分析,从左到右扫描。
LR1 是从左到右分析,从右到左扫描。
Stack frame ?

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧