- 100
- 0
- 约1.69千字
- 约 9页
- 2018-08-30 发布于湖北
- 举报
二、任务及要求
基本要求:
词法分析器 产生下述小语言的单词序列
这个小语言的所有的单词符号,以及它们的种别编码和内部值如下表:
单词符号
种别编码
助记符
内码值
DIM
IF
DO
STOP
END标识符
常数(整)
=
+
*
**
,
(
)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$DIM$IF$DO$STOP$END$ID$INT$ASSIGN$PLUS$STAR$POWER$COMMA$LPAR$RPAR
-
-
-
-
-
-
内部字符串
标准二进形式
-
-
-
-
-
-
语法分析器 能识别由加+ 减- 乘* 除/ 乘方^ 括号()操作数所组成的算术表达式,其文法如下:
使用的算法可以是:预测分析法;递归下降分析法;算符优先分析法;LR分析法等。
(1)A-EB
(2)B-EB|EB|ε
(3)E-TG
(4)G-+TG|-TG|ε
(5)T-FS
(6)S-*FS|/FS|ε
(7)F-(E)|i |i=E
中间代码生成器 产生上述算术表达式的中间代码(四元式序列)
较高要求:
扩充上述小语言的单词;
增加语法分析器的功能,能识别条件语句和循环语句等;
增加中间代码生成器的功能,能产生条件语句和循环语句等的中间代码(四元式序列)
增加报错功能;
将中间代码翻译成汇编语言。
3 具体的种别编码和内部值:
单词符号
种别编码
单词值
int
1
char
2
float
3
if
4
else
5
do
6
while
7
printf
8
main
9
标识符
100
内部字符串
常数(整)
200
二进制数值表示
= =
401
=
402
=
403
404
=
405
406
!=
407
!
408
+=
409
++
410
+
411
-=
412
- -
413
-
414
*=
415
*
416
/=
417
/
418
^
419
;
501
(
502
)
503
[
504
]
505
{
506
}
507
:
508
“
509
%=
510
%
511
,
512
#
513
@
514
空格
515
$
0
流程图:
主流程图
扫描程序流程图:
(a),标识符词法分析流程图
(b), 数字(整)词法分析流程图
(c), 其他字符流程图
(a)
(b) (c)
3 流程图:
主流程图
e函数流程图:
调用t函数p函数流程图:
调用t函数
t函数流程图:
f函数流程图:
原创力文档

文档评论(0)