移入 歸約技術

2021-09-24 12:47:21 字數 1075 閱讀 8659

定義:我們可以將自底向上語法分析過程看成是建乙個串w「歸約」慰問發開始符號的過程,在歸約中,乙個與某產生式體相匹配的特定子串被替換為該產生式的頭部的非終結符號。

定義理解起來比較晦澀,我們來看個例子就知道了。

已知有文法

e ——> e + t | t

t ——> t * f | f

f ——> ( e ) |id

他的產生式為id*id那麼歸約過程為:

id*id=》 f *id=》 t *id=》 t * f =》 t =》 e

顯而易見,這就是乙個反向的最右推導。

定義:如果有s=》αaw=》αβw,那麼緊跟α的產生式a->β是αβw的乙個控制代碼。

特性:1)控制代碼右邊的串w一定只包含終結符號。

2)如果乙個文法無二義性,那麼該文法的每個右句型都有且只有乙個控制代碼。

例如,對於上述例子而言

#移入——歸約分析技術

移入——歸約語法分析是自底向上語法分析的一種形式。他使用乙個棧來儲存文發符號,並用乙個輸入緩衝區來存放將要進行語法分析的其餘符號。

其分析器會採取以下四中動作:

歸約(reduce):被歸約的符號串右端必然是棧頂。語法分析器在棧中確定這個串的左端並決定用哪個非終結符號來替換這個串。

接受(accept):宣布語法分析過程成功完成。

報錯(error):發現乙個語法錯誤,並呼叫乙個錯誤恢復。

還是以上述為例,展現乙個完整的推導過程。

當然,這種語法中也存在衝突

1)移入/歸約衝突:無法確定進行移入還是歸約操作

2)歸約/歸約衝突:多個可能歸約中無法確定

對於衝突,我們後續也會用不同的具體lr語法來解決。

MPI中的歸約

在上面一篇文章中,有乙個利用梯形積分求面積的程式,在程式中,執行緒0用來接受每乙個小小梯形的面積然後在將所有梯形求和,很明顯,當資料傳到執行緒0時,其他執行緒就停止了工作,這樣造成所有求和都是由執行緒0來進行的。為了讓盡量多的執行緒進行工作,可以利用歸約的思想 因為對於大小不一樣的樹形結構來說,編寫...

JS動畫 移入移出

移入移出動畫效果的實現主要用到了定時器。定時器即 setinterval 方法可按照指定的週期 以毫秒計 來呼叫函式或計算表示式。它會不停地呼叫函式,直到clearinterval 被呼叫或視窗被關閉。由 setinterval 返回的 id 值可用作 clearinterval 方法的引數。htm...

移入雲中的模式

正如我們先前所報道的,關於雲計算的正確使用和經濟效益,我們仍然沒有足夠的知識 資料 tech ed大會上,simon guest在題為 移入雲中的模式 的演講中提出了有關此主題的一些額外資訊。simon的演講試圖回答 什麼應用在雲中執行地最好?這一問題,並介紹了將應用移入雲中的五個主要模式 遷移 將...