亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C語(yǔ)言switch語(yǔ)句的一種文法改寫(xiě)方法

        2008-04-12 00:00:00孫勁光
        現(xiàn)代電子技術(shù) 2008年14期

        摘 要:為了使C語(yǔ)言中的switch語(yǔ)句被計(jì)算機(jī)理解,首先要對(duì)其建立文法并對(duì)其進(jìn)行文法改寫(xiě)。針對(duì)switch語(yǔ)句,提出一種文法改寫(xiě)方法。該方法采用自底向上的語(yǔ)法制導(dǎo)翻譯方法,根據(jù)switch語(yǔ)句代碼結(jié)構(gòu)的特點(diǎn),利用拆分法,使得改寫(xiě)前后的文法完全等價(jià),只要給出語(yǔ)義動(dòng)作,就能實(shí)現(xiàn)switch語(yǔ)句的翻譯。這種方法不會(huì)對(duì)原文法的語(yǔ)法分析帶來(lái)影響,而且使得分析程序在棧中存取語(yǔ)義信息更方便。

        關(guān)鍵詞:C語(yǔ)言;switch語(yǔ)句;文法改寫(xiě);語(yǔ)法分析

        Grammar Adapt Method for Language C switch entence

        ZANG Jing,UN Jinguang

        (College of Electronic and Information Engineering,Liaoning echnical University,uludao,1210,China)

        Abstract: In order to make switch sentence to be understood by computer,first of all is to set up its grammar and adapt itIt puts forward a kind of grammar adapt method for switch sentencehis method adopts bottom-up syntax-directed translation method,according to switch sentence code structure′s feature,using taking apart method and make the adapted grammar be equal to the unadapted,it can realize switch sentence′s translation if only giving the semantic actionhis method will not bring influence to the original grammar′s syntax analysis,and make it more convenient for analytic program to access semantic information in stack

        Keywords:language C;switch sentence;grammar adapt;grammer analysis

        1 switch語(yǔ)句

        C語(yǔ)言提供的條件語(yǔ)句是實(shí)現(xiàn)程序二叉分支的常見(jiàn)結(jié)構(gòu),但if語(yǔ)句只有兩個(gè)分支可供選擇,而實(shí)際問(wèn)題中常常需要用到多分支的選擇。當(dāng)然,這些都可以用嵌套的if語(yǔ)句來(lái)處理,但如果分支較多,則嵌套的if語(yǔ)句層數(shù)多、程序冗長(zhǎng)而且可讀性降低。因此,有些程序設(shè)計(jì)語(yǔ)言提供了實(shí)現(xiàn)多分支的語(yǔ)句結(jié)構(gòu),C語(yǔ)言中的switch語(yǔ)句就是這類(lèi)結(jié)構(gòu)的典型。switch語(yǔ)句是多分支選擇語(yǔ)句,用來(lái)實(shí)現(xiàn)多分支選擇結(jié)構(gòu),它的一般形式如下:

        其中,E是表達(dá)式;Ci是常量表達(dá)式(1≤i≤n);i是語(yǔ)句(1≤i≤n+1)。當(dāng)表達(dá)式的值與某一個(gè)case后的常量表達(dá)式Ci的值相等時(shí),就執(zhí)行此case后面的語(yǔ)句i,若所有case中的常量表達(dá)式的值都沒(méi)有與表達(dá)式E的值匹配,就執(zhí)行default后面的語(yǔ)句n+1。

        2 文法需要改寫(xiě)?yīng)?/p>

        由于計(jì)算機(jī)硬件只懂得自己的指令系統(tǒng),即只能直接執(zhí)行相應(yīng)機(jī)器語(yǔ)言格式的代碼程序,而不能直接執(zhí)行用高級(jí)語(yǔ)言編寫(xiě)的程序。因此,要在計(jì)算機(jī)上實(shí)現(xiàn)除機(jī)器語(yǔ)言之外的任意程序設(shè)計(jì)語(yǔ)言,就必須先使此種語(yǔ)言為計(jì)算機(jī)所理解,也就是必須經(jīng)過(guò)等價(jià)變換,使它成為計(jì)算機(jī)能理解與執(zhí)行的機(jī)器語(yǔ)言的程序,而這種等價(jià)變換的工作由翻譯程序來(lái)完成。編譯程序是從高級(jí)語(yǔ)言到匯編語(yǔ)言或機(jī)器語(yǔ)言的翻譯程序,C語(yǔ)言使用的就是編譯程序。當(dāng)編譯程序在進(jìn)行翻譯時(shí),可以采用自底向上的語(yǔ)法制導(dǎo)翻譯方法,也可以采用自頂向下的語(yǔ)法制導(dǎo)翻譯方法。

        自頂向下語(yǔ)法制導(dǎo)翻譯可根據(jù)需要在產(chǎn)生式右部的任何位置上調(diào)用語(yǔ)義動(dòng)作,但在產(chǎn)生式右部符號(hào)之間插入語(yǔ)義動(dòng)作,容易帶來(lái)混亂。一方面,它不易閱讀,另一方面,在具體的編譯系統(tǒng)中也不容易實(shí)現(xiàn)。

        在常見(jiàn)的編譯系統(tǒng)中,往往希望將語(yǔ)義動(dòng)作置于產(chǎn)生式中所有符號(hào)的右側(cè),其目的是使翻譯按這樣的方式進(jìn)行:當(dāng)用某產(chǎn)生式進(jìn)行歸約時(shí),在完成語(yǔ)法分析動(dòng)作(歸約)之后,執(zhí)行相應(yīng)的語(yǔ)義動(dòng)作,即采用自底向上的語(yǔ)法制導(dǎo)翻譯方法。為達(dá)到此目的,需要對(duì)文法進(jìn)行改寫(xiě),以適應(yīng)這一要求。改寫(xiě)的方法有2種,一種是將所有出現(xiàn)在產(chǎn)生式“中部”的動(dòng)作符號(hào)用一新的非終結(jié)符號(hào)取而代之,并為這個(gè)非終結(jié)符號(hào)定義一個(gè)ε-產(chǎn)生式,而為該ε-產(chǎn)生式所配的語(yǔ)義動(dòng)作即為原來(lái)插入的動(dòng)作符號(hào)。除了這種方法外,另外一種改造方法是將原產(chǎn)生式“拆分”成若干個(gè)“小”產(chǎn)生式,拆分點(diǎn)就設(shè)在每個(gè)語(yǔ)義動(dòng)作符的出現(xiàn)處,以保證動(dòng)作符均出現(xiàn)在最右側(cè)。 

        3 switch語(yǔ)句的文法改寫(xiě)?yīng)?/p>

        對(duì)于上述2種改寫(xiě)文法的方法,第一種方法比較簡(jiǎn)單,且對(duì)原文法的可讀性影響不大,在需插入的動(dòng)作不多時(shí),可采用此法。但對(duì)于語(yǔ)法分析程序來(lái)說(shuō),若使用此法過(guò)多,就會(huì)帶來(lái)問(wèn)題,就是由于大量ε-產(chǎn)生式的引入,可能會(huì)產(chǎn)生許多新的移進(jìn)-歸約或歸約-歸約沖突,使語(yǔ)法分析無(wú)法進(jìn)行。因此,編譯系統(tǒng)更常采用的方法是拆分法?;谏鲜鲈颍瑢?duì)switch語(yǔ)句的改寫(xiě)將采用拆分法。上面的switch語(yǔ)句對(duì)應(yīng)的文法的產(chǎn)生式只有一個(gè),產(chǎn)生式右部就是它自身,左部可定義為M。在對(duì)switch語(yǔ)句進(jìn)行翻譯時(shí),要完成如下功能:

        (1) 計(jì)算選擇表達(dá)式E的值;

        為了實(shí)現(xiàn)上述目標(biāo),經(jīng)過(guò)拆分后的switch語(yǔ)句如下所示:

        上面給出的6個(gè)產(chǎn)生式就是switch語(yǔ)句經(jīng)過(guò)改造后形成的產(chǎn)生式集。

        可以驗(yàn)證,經(jīng)過(guò)改寫(xiě)后的文法與switch語(yǔ)句未改寫(xiě)前的文法完全等價(jià)。若不使用第3個(gè)產(chǎn)生式(即W→I case C:),則只含有一個(gè)常量表達(dá)式;若使用1次第3個(gè)產(chǎn)生式,則含有2個(gè)常量表達(dá)式,即,使用i(i≥0)次第3個(gè)產(chǎn)生式,則switch語(yǔ)句含有i+1個(gè)常量表達(dá)式。改寫(xiě)后的文法是一個(gè)實(shí)用的方法,只要配上相應(yīng)的語(yǔ)義動(dòng)作就可以進(jìn)行翻譯。實(shí)際工作經(jīng)驗(yàn)證明,這種文法改寫(xiě)方法不會(huì)對(duì)原文法的語(yǔ)法分析帶來(lái)影響,且由于產(chǎn)生式相對(duì)“短”些,分析程序在棧中存取語(yǔ)義信息會(huì)更方便。

        4 結(jié) 語(yǔ)

        總的說(shuō)來(lái),在對(duì)于一個(gè)語(yǔ)句進(jìn)行翻譯時(shí),基本策略是先研究各種語(yǔ)句的代碼結(jié)構(gòu),然后根據(jù)代碼結(jié)構(gòu)的特點(diǎn)和只有在歸約時(shí)才調(diào)用語(yǔ)義動(dòng)作這一關(guān)系,對(duì)原文法進(jìn)行適當(dāng)?shù)母脑?,使得在翻譯時(shí)能及時(shí)調(diào)用相應(yīng)的語(yǔ)義子程序,執(zhí)行某些重要的語(yǔ)義動(dòng)作。

        參 考 文 獻(xiàn)

        [1]譚浩強(qiáng).C程序設(shè)計(jì)[M].2版.北京:清華大學(xué)出版社,200

        [2]肖軍模.程序設(shè)計(jì)語(yǔ)言編譯方法[M].大連:大連理工大學(xué)出版社,2000

        [3]劉峰1~2R濾波器直接Ⅱ型的C語(yǔ)言?xún)?yōu)化實(shí)現(xiàn)[J]現(xiàn)代電子技術(shù),2007,30(4):9-10,13

        作者簡(jiǎn)介 張晶 女,197年出生,講師,工學(xué)碩士。

        东京热无码人妻中文字幕| 亚洲色大成网站www久久九九| 中文字幕av一区中文字幕天堂| 久久久久中文字幕无码少妇| 亚洲视频一区二区三区免费 | 中文字幕av一区二区三区| 成年女人午夜特黄特色毛片免| 久久综网色亚洲美女亚洲av| 成人免费777777被爆出| 日韩免费小视频| 国内精品久久人妻互换| 老鲁夜夜老鲁| 日韩人妻无码免费视频一区二区三区| 国内成人精品亚洲日本语音| 白白色日韩免费在线观看 | 欧美亚洲国产日韩一区二区三区| 亚洲一区二区视频蜜桃| 日韩精品专区在线观看| 又长又大又粗又硬3p免费视频 | 成人黄色网址| 成人精品国产亚洲欧洲| 日本师生三片在线观看| 亚洲乱码日产精品一二三| 久久亚洲黄色| 西西少妇一区二区三区精品| 手机av在线中文字幕| 男人靠女人免费视频网站| 欧美亚洲国产人妖系列视| av一区二区三区有码| 欧美成人国产精品高潮| 亚洲av日韩av不卡在线观看| 国产人妖xxxx做受视频| 精品国产亚洲第一区二区三区| 69一区二三区好的精华| 国产欧美精品一区二区三区,| 一区二区三区观看在线视频| 国产无遮挡aaa片爽爽| 国产亚洲av人片在线观看| 中文熟女av一区二区| 99久久精品在线视频| 国产女主播喷水视频在线观看|