c语言标识符的词法形式,C语言词法器实验.doc
計(jì)算機(jī)科學(xué)與工程系
編譯原理課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
姓名:__ ******__ 學(xué)號(hào)_ *******__ 年級(jí)專業(yè)及班級(jí)___08計(jì)算機(jī)科學(xué)與技術(shù) 成績
實(shí)驗(yàn)名稱
詞法分析程序設(shè)計(jì)與實(shí)現(xiàn)
完成日期2011/4/12指導(dǎo)教師*******實(shí)驗(yàn)?zāi)康?#xff1a;能夠采用C編程語言實(shí)現(xiàn)簡單的詞法分析程序;設(shè)計(jì)、編制并調(diào)試一個(gè)詞法分析程序,加深對(duì)詞法分析原理的理解
實(shí)驗(yàn)要求: 1. 對(duì)單詞的構(gòu)詞規(guī)則有明確的定義;
2. 編寫的分析程序能夠正確識(shí)別源程序中的單詞符號(hào);
3. 識(shí)別出的單詞以的形式保存在符號(hào)表中(鏈表);
4. 詞法分析中源程序的輸入以.c格式,分析后的符號(hào)表,將二元組保存在.txt文件中。實(shí)驗(yàn)內(nèi)容:選擇高級(jí)語言(C語言),編制它的詞法分析程序。詞法分析程序的實(shí)現(xiàn)可以采用任何一種編程工具
實(shí)驗(yàn)原理:1、算法的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào);
2、其基本思想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類,拼出相應(yīng)的單詞符號(hào)。
實(shí)驗(yàn)分析:(1)關(guān)鍵字:if else while do case int break等所有的關(guān)鍵字都是小寫。
(2)運(yùn)算符和界符: = + - * / < <= <> > >= = ; ( ) 等
(3)其他單詞是標(biāo)識(shí)符(ID)和整型常數(shù)(SUM),通過以下正規(guī)式定義:
ID = _ | letter (letter | digit)*
NUM = digit digit*
(4)空格有空白、制表符和換行符組成。空格一般用來分隔ID、SUM、運(yùn)算符、界符和關(guān)鍵字,詞法分析階段通常被忽略。
(5)注釋被忽略
(6)各種單詞符號(hào)對(duì)應(yīng)的種別碼
種別碼
單詞符號(hào)
種別碼
auto
1
double
2
int
3
struct
4
break
5
else
6
long
7
switch
8
case
9
enum
10
register
11
typedef
12
char
13
extern
14
return
15
union
16
const
17
float
18
short
19
unsigned
20
continue
21
for
22
signed
23
void
24
default
25
goto
26
sizeof
27
volatile
28
do
29
while
30
static
31
if
32
\a
33
\b
34
\f
35
\n
36
\t
37
\v
38
\\
39
\?
40
\’
41
\”
42
\0
43
\ddd
44
\ xhh
45
數(shù)字
46
標(biāo)識(shí)符
47
#
48
(
49
)
50
[
51
]
52
{
53
}
54
‘
55
*
56
:
57
~
58
%
59
^
60
+
61
?
62
=
63
|
64
&
65
!
66
<
67
>
68
>=
69
==
70
>>
71
!=
72
<<
73
&&
74
<=
75
||
76
++
77
?=
78
-
79
--
80
->
81
“
82
%A(A可為d’s’c)
83
;
84
_
85
/
86
87
88
89
90
91
其他類別
99
實(shí)驗(yàn)流程圖(由于流程圖過大因此各部分分開寫):
整體:
掃描注釋:
掃描數(shù)字:
掃描引號(hào):
掃描單詞:
掃描其他字符:
實(shí)驗(yàn)環(huán)境:需要TC、VC++ 6.0等開發(fā)工具作為本次試驗(yàn)的環(huán)境。
實(shí)驗(yàn)步驟:
1、準(zhǔn)備: 用TC、VC++等開發(fā)工具;
2、對(duì)本實(shí)驗(yàn)的任務(wù)進(jìn)行分析,確定實(shí)現(xiàn)功能的函數(shù);
3、寫好程序,仔細(xì)修改函數(shù);
4、上機(jī)操作:輸入源程序,修改、調(diào)試,運(yùn)行。
5、寫好試驗(yàn)報(bào)告。實(shí)驗(yàn)調(diào)試過程及測試結(jié)果
/*******************************源代碼******************************/
#include
#include
#include
#include
void main()
{
FILE *fp,*fp1;
int hanjsq=1;//行計(jì)數(shù)器,保存行號(hào)
int guanjz(char ch1[]);//關(guān)鍵字和標(biāo)識(shí)符判斷
char ch,infile[15],outfile[15];//定義輸入和輸出文件名
printf("*****************Enter the infile name*******************\n");
scanf("%s",infile);//輸入需要掃描
總結(jié)
以上是生活随笔為你收集整理的c语言标识符的词法形式,C语言词法器实验.doc的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 外卖小哥神器!美团发布头盔交互系统专利
- 下一篇: 用c语言实现0到59的数码管,跪求单片机