c语言标识符的词法形式,C语言词法器实验.doc
計算機科學與工程系
編譯原理課程設計實驗報告
姓名:__ ******__ 學號_ *******__ 年級專業及班級___08計算機科學與技術 成績
實驗名稱
詞法分析程序設計與實現
完成日期2011/4/12指導教師*******實驗目的:能夠采用C編程語言實現簡單的詞法分析程序;設計、編制并調試一個詞法分析程序,加深對詞法分析原理的理解
實驗要求: 1. 對單詞的構詞規則有明確的定義;
2. 編寫的分析程序能夠正確識別源程序中的單詞符號;
3. 識別出的單詞以的形式保存在符號表中(鏈表);
4. 詞法分析中源程序的輸入以.c格式,分析后的符號表,將二元組保存在.txt文件中。實驗內容:選擇高級語言(C語言),編制它的詞法分析程序。詞法分析程序的實現可以采用任何一種編程工具
實驗原理:1、算法的基本任務是從字符串表示的源程序中識別出具有獨立意義的單詞符號;
2、其基本思想是根據掃描到單詞符號的第一個字符的種類,拼出相應的單詞符號。
實驗分析:(1)關鍵字:if else while do case int break等所有的關鍵字都是小寫。
(2)運算符和界符: = + - * / < <= <> > >= = ; ( ) 等
(3)其他單詞是標識符(ID)和整型常數(SUM),通過以下正規式定義:
ID = _ | letter (letter | digit)*
NUM = digit digit*
(4)空格有空白、制表符和換行符組成。空格一般用來分隔ID、SUM、運算符、界符和關鍵字,詞法分析階段通常被忽略。
(5)注釋被忽略
(6)各種單詞符號對應的種別碼
種別碼
單詞符號
種別碼
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
數字
46
標識符
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
實驗流程圖(由于流程圖過大因此各部分分開寫):
整體:
掃描注釋:
掃描數字:
掃描引號:
掃描單詞:
掃描其他字符:
實驗環境:需要TC、VC++ 6.0等開發工具作為本次試驗的環境。
實驗步驟:
1、準備: 用TC、VC++等開發工具;
2、對本實驗的任務進行分析,確定實現功能的函數;
3、寫好程序,仔細修改函數;
4、上機操作:輸入源程序,修改、調試,運行。
5、寫好試驗報告。實驗調試過程及測試結果
/*******************************源代碼******************************/
#include
#include
#include
#include
void main()
{
FILE *fp,*fp1;
int hanjsq=1;//行計數器,保存行號
int guanjz(char ch1[]);//關鍵字和標識符判斷
char ch,infile[15],outfile[15];//定義輸入和輸出文件名
printf("*****************Enter the infile name*******************\n");
scanf("%s",infile);//輸入需要掃描
總結
以上是生活随笔為你收集整理的c语言标识符的词法形式,C语言词法器实验.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 外卖小哥神器!美团发布头盔交互系统专利
- 下一篇: 中国电竞酒店突破 2 万家,西安超 62