日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言词法分析程序实验报告,实验一词法分析程序设计与实现

發布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言词法分析程序实验报告,实验一词法分析程序设计与实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗一?詞法分析程序設計與實現

一、實驗目的:

加深對詞法分析器的工作過程的理解;加強對詞法分析方法的掌握;能夠采用一種編程語言實現簡單的詞法分析程序;能夠使用自己編寫的分析程序對簡單的程序段進行詞法分析。

二、實驗內容:

自定義一種程序設計語言,或者選擇已有的一種高級語言(C語言),編制它的詞法分析程序。詞法分析程序的實現可以采用任何一種編程工具。

三、實驗要求:

1. 對單詞的構詞規則有明確的定義;

2. 編寫的分析程序能夠正確識別源程序中的單詞符號;

3. 識別出的單詞以的形式保存在符號表中;

4. 詞法分析中源程序的輸入以.c格式,分析后的符號表保存在.txt文件中。

5. *對于源程序中的詞法錯誤,能夠做出簡單的錯誤處理,給出簡單的錯誤提示,保證順利完成整個源程序的詞法分析;

6. 實驗報告要求用自動機或者文法的形式對詞法定義做出詳細說明,說明詞法分析程序的工作過程,說明錯誤處理的實現*。

四、實驗學時:6學時

五、實驗步驟:

1. 定義目標語言的可用符號表和構詞規則;

2. 依次讀入源程序符號,對源程序進行單詞切分和識別,直到源程序結束;

3.

對正確的單詞,按照它的種別以的形式保存在符號表中;

4. *對不正確的單詞,做出錯誤處理*。

六、選作實驗

學生可以根據自身的情況完善詞法分析程序的錯誤處理功能,如對錯誤的單詞給出準確的位置和錯誤類型提示。

七、作業提交時間

第8周實驗課結束后提交詞法分析程序(amy_lcx@126.com)。

八、提示

1. char Scanin[100],Scanout[100]; //用于接收輸入輸出文件名

FILE *fin,*fout; //用于指向輸入輸出文件的指針

2. //下面定義保留,為簡化程序,使用字符指針數組保存所有保留字。

//如果想增加保留字,可繼續添加,并修改保留字數目

#define keywordSum?8

char *keyword[keywordSum]={

"if","else","for","while","do","int","read","write"};

3. //下面定義純單分界符,如需要可添加

char singleword[50]="+-*(){};,:";

4. //下面定義雙分界符的首字符

char doubleword[10]="><=!";

5. ?scanf("%s",Scanin);

printf("請輸入詞法分析輸出文件名(包括路徑):");

scanf("%s",Scanout);

6. ?if

((fin=fopen(Scanin,"r"))==NULL) //判斷輸入文件名是否正確

{

printf("\n打開詞法分析輸入文件出錯!\n");

return(1);//輸入文件出錯返回錯誤代碼1

}

if

((fout=fopen(Scanout,"w"))==NULL) //判斷輸出文件名是否正確

{

printf("\n創建詞法分析輸出文件出錯!\n");

return(2); //輸出文件出錯返回錯誤代碼2

}

7.?ch=getc(fin);//讀取文件里的一個字符

8.?isalpha(ch)

//字母判斷函數

isalnum(ch)) //數字判斷函數

strcmp(token,keyword[n]) //串比較

fprintf(fout,"%s\t%s\n","ID",token);?//輸出標識符符號到fout指定的文件

strchr(singleword,ch)?//聲明: char *strchr(

const char *string, int c );

//在字符串string中搜索字符c,若成功則返回一個指向該字符第一次出現的位置,否則返回NULL

//這個例子中的變量x的值為5:char string[]="hello"; char *p; int x;

p=strchr(string,'o'); x=p-string+1;

網上下載c語言庫函數查詢工具。

總結

以上是生活随笔為你收集整理的c语言词法分析程序实验报告,实验一词法分析程序设计与实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。