国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

求first集的改進算法

2016-08-02 10:50:50熊鵬榮
上饒師范學(xué)院學(xué)報 2016年3期
關(guān)鍵詞:文法上饒終極

熊鵬榮

(上饒師范學(xué)院數(shù)學(xué)與計算機科學(xué)學(xué)院,江西上饒334001)

求first集的改進算法

熊鵬榮

(上饒師范學(xué)院數(shù)學(xué)與計算機科學(xué)學(xué)院,江西上饒334001)

[1]和[2],給出的求文法G的終極符和非終極符的首符集算法進行改進,改進的算法使原算法循環(huán)需要進行(n1+n2)m次,減少為循環(huán)只需要進行n1+n2*m次。

文法;首符集;算法

編譯程序是將高級語言程序翻譯成機器語言的系統(tǒng)軟件,對編譯程序設(shè)計的基礎(chǔ)理論研究很有必要。求文法G的終極符和非終極符的首符集是編譯程序中自頂向下語法分析方法過程中的一個算法。求文法G的符號V的首符集的方法有根據(jù)定義求first集法和由關(guān)系圖求文法符號的first集[1-3]。本文對參考文獻[1]和[2]中對文法G的符號V的求first集算法做出優(yōu)化改進,使得算法的效率更高。

1 文法的基礎(chǔ)知識

定義1 設(shè)G=(VT,VN,S,P)是一個四元組,

其中VT是有限的終極符集;

VN是有限的非終極符集;

S是初始符,S∈VN;

P是產(chǎn)生式的有限集且形式:A→X1X2…Xn,其中A∈VN,Xi∈(VT∪VN)*(i=1,2,…,n),稱四元組G為上下文無關(guān)文法,記VT∪VN=V,稱V為文法G的字母表,且VT∩VN=φ。

對于一個可用的文法應(yīng)滿足的條件是其一,?A∈VN都至少出現(xiàn)于一個產(chǎn)生式的左部,且?a∈VT至少出現(xiàn)于一個產(chǎn)生式的右部中;其二,?A∈VN都能推導(dǎo)出VT中的元素終極符。

定義2 設(shè)G=(VT,VN,S,P)是上下文無關(guān)文法,first(β)={a|β?*aγ,a∈VT,β,γ∈V*}∪(ifβ?*εthen{ε}elseφ),稱集合first(β)為β首符集。

由定義可得,若X∈VT,則first(X)={X},對于空串ε有first(ε)={ε}。

2 算法的改進

[1]和[2]中給出了對每個X∈VT∪VN,求首符集的算法。在該算法的第3步為:Changes=F;

對P中的每個產(chǎn)生式A→X1…Xi…Xn,do{

Oldfirst=first(A);

若Oldfirst≠first(A),則Changes=T}

其中A→X1…Xi…Xn(表示Xi是產(chǎn)生式右部中第一個不可推導(dǎo)ε的符號)。

但該步驟是可以改進優(yōu)化的,使該算法的效率更高。

將產(chǎn)生式集P分為兩個子集:

第一個子集是P1={A→aβ|A∈VN,a∈VT,β∈V*};

第二個子集是P2=P-P1。

由此可得P=P1∪P2。

原算法中第3步中,對P1中的產(chǎn)生式形式為A→aβ,有

該式子說明只要first(A)含有終極符a,無論該產(chǎn)生式以后使用多少次計算①式操作,再也不能為first(A)增加一個終極符元素。這樣可以將P1中產(chǎn)生式在循環(huán)中計算①式操作,移到循環(huán)外計算①式操作,而不會改變求first(A)集的結(jié)果。故可以將算法進行改進,使算法的效率更高。

對每一個X∈V,求first(X)的改進優(yōu)化算法如下:

(1)當(dāng)X∈VT,有first(X)={X};

(2)當(dāng)X∈VN,有若X?*ε,則first(X)={ε},否則first(X)=φ;

(3)對P1中的每個產(chǎn)生式A→aβ|A→a,有first(A)=first(A)∪{a};

(4)Changes=F;

對P2中的每個產(chǎn)生式A→X1…Xi…Xn,do{

Oldfirst=first(A);

若Oldfirst≠first(A),則Changes=T}

(5)若Changes=T,則轉(zhuǎn)(4);

(6)算法結(jié)束。

該改進算法由于將產(chǎn)生式P的子集P1移到循環(huán)外計算①式操作,這樣在循環(huán)中可以減少循環(huán)中的運算量。

設(shè)|P1|=n1,|P2|=n2,步驟4的循環(huán)次數(shù)為m,則原算法中,在循環(huán)中對每個產(chǎn)生式都需要進行計算①式的操作,共需要進行(n1+n2)*m次計算①式的操作,改進后的算法,由于將產(chǎn)生式P的子集P1移到循環(huán)外,在循環(huán)中只是需要對P2中產(chǎn)生式的進行計算①式的操作,再加上P1中產(chǎn)生式在循環(huán)外進行一次計算(1)式的操作,故改進算法只需要進行n1+n2*m次計算①式的操作,比原算法減少了n1(m-1)計算①式的操作。這樣減少算法的工作量,從而提高算法的效率。

高級語言PASCAL用上下文無關(guān)文法G[4]定義的過程中,文法G的產(chǎn)生式集P共有318條產(chǎn)生式,其中產(chǎn)生式集P1的產(chǎn)生式為152條,占總數(shù)47.78%,故該算法的改進在實際上是可以提高算法的效率,有一定的實際應(yīng)用價值。

參考文獻:

[1]金成植.編譯程序設(shè)計原理[M].北京:高等教育出版社,2000:70.

[2]呂映芝.編譯原理[M].北京:清華大學(xué)出版社,1998:75-76.

[3]呂映芝.語法圖到產(chǎn)生式的自動轉(zhuǎn)換[J].清華大學(xué)學(xué)報(自然科學(xué)版),1996,36(5):84-89.

[4]譚浩強.PASCAL語言程序設(shè)計[M].北京:高等教育出版社,1999:330-335.

An Improved Algorithm for First Set

XlONG Pong-rong

(School of Mathematics and Computer Science,Shangrao Normal University,Shangrao Jiangxi 334001,China)

On the[1]and[2],the and the non ultimate symbol of G are improved.The improved algorithm makes the original algorithm(n1+n2)m times,and reduces the need for n1+n2*m times.

grammar;first set;algorithm

O142

A

1004-2237(2016)03-0010-02

10.3969/j.issn.1004-2237.2016.03.003

2015-10-20

熊鵬榮(1961-),男,江西上饒人,副教授,學(xué)士,主要從事算法設(shè)計和分析研究。E-mail:xpr7810@163.com

猜你喜歡
文法上饒終極
上饒集中營名勝區(qū)
鐵軍(2022年8期)2022-07-31 13:41:44
關(guān)于1940 年尼瑪抄寫的《托忒文文法》手抄本
Brass tacks on iron: Ferrous metallurgy in Science and Civilisation in China
Similarity measurement method of high-dimensional data based on normalized net lattice subspace①
上饒師范學(xué)院書法家風(fēng)采
終極發(fā)明師
A nearest neighbor search algorithm of high-dimensional data based on sequential NPsim matrix①
文法有道,為作文注入音樂美
終極發(fā)明師
終極發(fā)明師
宜君县| 伊宁市| 德兴市| 阆中市| 铜陵市| 通化市| 德格县| 阳信县| 新宁县| 张北县| 龙州县| 华亭县| 昌邑市| 页游| 卢湾区| 红原县| 颍上县| 丰顺县| 大竹县| 湟源县| 兴仁县| 梁河县| 昌吉市| 沈阳市| 东辽县| 成安县| 南投县| 哈巴河县| 沐川县| 芜湖市| 依安县| 喀什市| 龙门县| 梅河口市| 武功县| 禹州市| 阜城县| 云梦县| 普安县| 洛川县| 喀喇|