楊 平 胡建陶 蘭美輝
(曲靖師范學院計算機科學與工程學院,云南 曲靖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++]=' 主站蜘蛛池模板: 怡红院美国分院一区二区| 免费看av在线网站网址| 精品人妻无码中字系列| 国产精品va| 尤物国产在线| 第九色区aⅴ天堂久久香| 国产色婷婷| 国产亚洲精品资源在线26u| 视频在线观看一区二区| 69av免费视频| 日本不卡在线| 国产成人精品第一区二区| 久久久久国色AV免费观看性色| 亚洲黄色视频在线观看一区| 欧美一区日韩一区中文字幕页| 国产精品9| 视频国产精品丝袜第一页| 最新亚洲人成网站在线观看| 国产人成在线观看| 免费精品一区二区h| 新SSS无码手机在线观看| 丁香五月婷婷激情基地| 热这里只有精品国产热门精品| 国产青榴视频| 亚洲日韩精品欧美中文字幕| 天堂网国产| 国产成人亚洲精品色欲AV| 青青青草国产| 国产麻豆精品手机在线观看| 欧美精品v日韩精品v国产精品| 欧美一区二区三区欧美日韩亚洲| 久久精品人妻中文视频| 国产制服丝袜91在线| 亚洲VA中文字幕| 不卡无码网| 四虎AV麻豆| 亚洲一区无码在线| 国产视频入口| 日韩欧美成人高清在线观看| 久久婷婷人人澡人人爱91| 996免费视频国产在线播放| 亚洲开心婷婷中文字幕| 91在线一9|永久视频在线| 国产精品亚洲综合久久小说| 国产精品xxx| 久热re国产手机在线观看| 亚洲中文字幕av无码区| 女人18毛片一级毛片在线 | 成人字幕网视频在线观看| 国产成人精品一区二区免费看京| 成人福利在线免费观看| 伊人丁香五月天久久综合| 欧美yw精品日本国产精品| 国产亚洲成AⅤ人片在线观看| 成人免费一区二区三区| 国产丰满大乳无码免费播放| 综合亚洲网| 国产亚洲精久久久久久无码AV| 国产女人18毛片水真多1| 色哟哟国产成人精品| 免费Aⅴ片在线观看蜜芽Tⅴ | 亚洲VA中文字幕| 四虎亚洲精品| 在线观看91香蕉国产免费| 久久综合亚洲色一区二区三区| 国产呦视频免费视频在线观看| 91精品专区国产盗摄| 亚洲国产成人久久77| 精品一区二区三区四区五区| 久久综合久久鬼| 黄色网址手机国内免费在线观看| 永久成人无码激情视频免费| 97国产精品视频自在拍| 日本午夜精品一本在线观看 | 日韩在线2020专区| 国产午夜在线观看视频| 99爱在线| 国产不卡一级毛片视频| 国产精品刺激对白在线| 国产免费a级片| 国产靠逼视频| 中文字幕永久视频|