SLR文法Java代碼 SLR1文法

Java中,注釋符和文檔注釋符的區(qū)別?

注釋符就是用來標(biāo)記注釋的符號(hào),Java中有3種注釋符號(hào)

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的富縣網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1. 單行注釋:

從“//”開始到行末結(jié)束,均視為單行注釋。

2. 多行注釋:

從“/*”開始到“*/”結(jié)束,均視為多行注釋。

3. 文檔注釋:

從“/**”開始到“*/”結(jié)束,均視為文檔注釋。

所謂文檔注釋,是指用javadoc命令可以提取為Java API文檔的注釋內(nèi)容,也就是類的注釋和方法的注釋。

Java中沒有標(biāo)識(shí)符的概念,有標(biāo)識(shí)的概念。標(biāo)識(shí)是指包名、類名、方法名、變量名、參數(shù)名。在你的代碼中,比如類名 slra、方法名 main、參數(shù)名 args,這些是標(biāo)識(shí)

編譯原理怎么判斷是否為slr文法

LL(1)就是向前只搜索1個(gè)符號(hào),即與FIRST()匹配,如果FIRST為空則還要考慮FELLOW.

LR需要構(gòu)造一張LR分析表,此表用于當(dāng)面臨輸入字符時(shí),將它移進(jìn),規(guī)約(即自下而上分析思想),接受還是出錯(cuò).

LR(0)找出句柄前綴,構(gòu)造分析表,然后根據(jù)輸入符號(hào)進(jìn)行規(guī)約.

SLR(1)使用LR(0)時(shí)若有沖突,不知道規(guī)約,移進(jìn),活移進(jìn)哪一個(gè),所以需要向前搜索,則只把有問題的地方向前搜索一次.

LR(1)1.在每個(gè)項(xiàng)目中增加搜索符.2.舉個(gè)列子如有A-α.Bβ,則還需將B的規(guī)則也加入.

LALR(1)就是假如兩個(gè)產(chǎn)生式集相同則將它們合并為一個(gè),幾合并同心集.

如何判斷一個(gè)文法是否為SLR(1)文法

最有效的方法是畫slr分析表,有移入-規(guī)約沖突,或者規(guī)約-規(guī)約沖突的就不是slr文法,沒有沖突就是slr文法。簡單的用follow集合是不能準(zhǔn)確判斷它是不是slr文法的

要證明一個(gè)文法是SLR(1)文法,但不是LL(1)文法,是不是要分SLR和LL來分析說明呢?

是。

一、例如:證明下列文法是LL(1)文法但不是SLR(1)文法

S-AaAb|BbBa A-?(空值) B-?(空值)

1、首先該文法無左遞歸存在,沒有公共左因子。

其次:對(duì)于S→AaAb|BbBa FIRST(AaAb)={a} FIRST(BbBa)=

FIRST(AaAb)∩FIRST(BbBa)=Φ

所以該文法是LL(1)文法.

2、證明該文法不是SLR的。

文法的LR(0)項(xiàng)目集規(guī)范族為:

I0={S’→.S S→.AaAb S→.BbBa A→. B→.}

I1={ S’→ S. }

I2={ S→A.aAb }

I3={ S→B.bBa }

I4={ S→Aa.Ab A→. }

I5={ S→Bb.Ba B→. }

I6={ S→AaA.b }

I7={ S→BbB.a }

I8={ S→AaAb. }

I9={ S→BbBa. }

考察I0:

FOLLOW(A)={a,b} FOLLOW(B)={a,b} FOLLOW(A)∩FOLLOW(B)= {a,b}

產(chǎn)生規(guī)約-規(guī)約沖突,所以該文法不是SLR(1)文法。

二、構(gòu)造LR(1)自動(dòng)機(jī)(沒有需要合并的狀態(tài)):

沒有狀態(tài)存在沖突,因而是LALR(1)文法。

構(gòu)造LR(0)自動(dòng)機(jī):在狀態(tài)I6,由于’a’∈FOLLOW(A),因而對(duì)于SLR(1)分析而言,存在移進(jìn)-歸約,所以這一文法不是SLR(1)文法。

擴(kuò)展資料:

它通過兩種方法做到這一點(diǎn)。首先,它在一個(gè)移進(jìn)之前先考慮輸入記號(hào)以確保存在著一個(gè)恰當(dāng)?shù)?DFA 。其次,使用構(gòu)造的非終結(jié)符的 Follow 集合來決定是否應(yīng)執(zhí)行一個(gè)歸約。令人吃驚的是,先行的這個(gè)簡單應(yīng)用的能力強(qiáng)大得足以分析幾乎所有的一般的語言構(gòu)造。

定義:SLR(1) 分析算法(SLR(1) parsing algorithm)。令s 為當(dāng)前狀態(tài)(位于分析棧的頂部)。則動(dòng)作可定義如下:

若狀態(tài)s 包含了格式A →a.Xb 的任意項(xiàng)目,其中X 是一個(gè)終結(jié)符,且X 是輸入串中的下一個(gè)記號(hào),則動(dòng)作將當(dāng)前的輸入記號(hào)移進(jìn)到棧中,且被壓入到棧中的新狀態(tài)是包含了項(xiàng)目A →aX.b 的狀態(tài)。

參考資料來源:百度百科-SLR(1)分析

當(dāng)前題目:SLR文法Java代碼 SLR1文法
文章鏈接:http://muchs.cn/article22/docohcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、App開發(fā)、云服務(wù)器Google、微信小程序、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司