楊 平 胡建陶 蘭美輝
(曲靖師范學院計算機科學與工程學院,云南 曲靖655011)
詞法分析是編譯程序的第一階段的工作,對輸入的源程序進行詞法分析,產生與其等價的屬性自流作為輸出[1-2]。編譯程序在完成詞法分析后,就進入語法分析階段。詞法分析是實現編譯第一個核心階段。本實驗的程序設計語言用C語言,因為C語言是本科生最熟悉的語言,C語言編譯器一般都是以匯編語言作為目標語言,匯編語言學生也相對熟悉,用C編程出現的系統報告的出錯信息可作為教學中的實例,而且通過編寫程序,學生對C語言的掌握能達到一個新的高度。
詞法分析的功能是對輸入的源程序,按照構詞規則分解成一系列單詞符號。單詞是語言中具有獨立意義的最小單位[3-5]。用C語言編寫的源代碼,包括如下單詞:關鍵字、標識符、常數、運算符、界限符。程序的輸入為用C編寫的源程序,輸出為屬性字流,為二元組形式(syn,token),syn為單詞種別碼,token為識別出的單詞。
單詞的構詞規則如下(用擴充的BNF表示)
<關鍵字>→int/float/if/for……
<標識符>→<字母>|<_>{<字母>|<數字>|<_>}
<常數>→<數字>|<數字><數字串>
<運算符>→+|-|*|/|=……
<界限符>→(|)|[|]|{|}|;……
<數字>→0|1|2|3|4|5|6|7|8|9
<字母>→a|b|……|z|A|B|……|Z
根據構詞規則(詞法規則),設計的狀態轉換圖如圖1:

圖1 狀態轉換圖

表1 單詞符號對應的種別碼
2.2.1 空格處理算法
for(n=0;n<8;n++)token[n]=NULL;
ch=prog[p++];
while(ch=='')
{
ch=prog[p];p++;
}

圖2 詞法分析程序算法流程圖
2.2.2 關鍵字、標識符的判定算法
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch='_')
{
m=0;
while((ch>='0'&&ch<='9')||(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
token[m++]=ch;
ch=prog[p++];
}
token[m++]=' 主站蜘蛛池模板: 精品国产免费观看一区| 国产va视频| 中文字幕亚洲电影| 久久九九热视频| 国产视频大全| 99热国产这里只有精品9九 | 精品人妻一区无码视频| 国产自产视频一区二区三区| 国产精品免费久久久久影院无码| 国产农村妇女精品一二区| 国产欧美日韩va另类在线播放| 韩国v欧美v亚洲v日本v| 欧美午夜视频在线| 蜜桃视频一区| 国产91熟女高潮一区二区| 综合色在线| 日韩无码视频网站| 特级毛片8级毛片免费观看| 日本午夜三级| 婷婷综合色| 亚洲精品欧美日本中文字幕| 成人午夜久久| 99久久无色码中文字幕| 青青久久91| 天天色天天综合网| 99热免费在线| 免费在线观看av| 精品91在线| 幺女国产一级毛片| 色综合天天综合中文网| 亚洲IV视频免费在线光看| 亚洲资源站av无码网址| 国产在线麻豆波多野结衣| 国产一区二区福利| 久久青草精品一区二区三区| 亚洲午夜片| 国产91av在线| 亚洲另类第一页| 高清无码一本到东京热| 成人a免费α片在线视频网站| 好吊色国产欧美日韩免费观看| 一本久道久久综合多人| 中文一区二区视频| 97无码免费人妻超级碰碰碰| 伊人色综合久久天天| 欧美午夜小视频| 萌白酱国产一区二区| 国产成人精品视频一区二区电影| 91精品国产91久无码网站| 天天色综网| 玖玖精品视频在线观看| 国产第二十一页| 欧美精品不卡| 日韩在线影院| 91亚洲精选| 精品国产一区二区三区在线观看 | 色哟哟国产精品一区二区| 国产午夜福利亚洲第一| 国产精品jizz在线观看软件| 99ri国产在线| 制服无码网站| 99精品免费欧美成人小视频| 亚洲六月丁香六月婷婷蜜芽| 青青青伊人色综合久久| 99国产精品国产高清一区二区| 国产精品自在线拍国产电影| 亚洲欧美日韩色图| 日韩欧美在线观看| 国产成人综合日韩精品无码首页| 国产黄色片在线看| 亚洲国产91人成在线| 国产一区二区视频在线| 婷婷在线网站| 色135综合网| 日韩人妻无码制服丝袜视频| 久久久91人妻无码精品蜜桃HD| 国产精品极品美女自在线看免费一区二区| 亚洲天堂精品视频| 国产国产人成免费视频77777| 亚洲精品无码人妻无码| 99热国产这里只有精品9九 | 国产精品福利社|