設計模式 直譯器模式 Interpreter

2021-10-09 15:17:14 字數 846 閱讀 9517

直譯器模式是我們暫時的最後一講,一般主要應用在 oop 開發中的編譯器的開發中,所以適用面比較窄

context 類是乙個上下文環境類,plus 和 minus 分別是用來計算的實現

給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子

當有乙個語言需要解釋執行,並且你可將該語言中的句子表示為乙個抽象語法樹時,可使用直譯器模式。而當存在以下情況時該模式效果最好:

該文法簡單對於複雜的文法,文法的類層次變得龐大而無法管理

效率不是乙個關鍵問題最高效的直譯器通常不是通過直接解釋語法分析樹實現的,而是首先將它們轉換成另一種形式

public

abstract

class

expression

public

class

advanceexpression

extends

expression

}public

class

******expression

extends

expression

}public

class

context

public string getcontent()

public

void

add(expression eps)

public list getlist()

}public

class

test}}

result:

這是普通解析器!

這是高階解析器!

這是普通解析器!

設計模式 直譯器模式

未來機器智慧型化已然成為趨勢,現在手機都能聽懂英語和普通話,那我大中華幾萬種方言的被智慧型化也許也是趨勢,我們的方言雖然和普通話相似,但是還是不一樣的。這可能需要乙個新的語法分析器來幫助我們。我們的直譯器模式就是描述了如何為簡單的語言定義乙個文法,如何在該語言中表示乙個句子,以及如何解釋這些句子。但...

設計模式 直譯器模式

直譯器模式 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。如果一種特定型別的問題發生的頻率足夠高,那麼可能就值得將該問題的各個例項表述為乙個簡單語言中的句子。這樣就可以構建乙個直譯器,該直譯器通過解釋這些句子來解決該問題。當有乙個語言需要解釋執行,並...

設計模式 直譯器模式

直譯器模式 interpreter pattern 提供了評估語言的語法或表示式的方式,它屬於行為型模式。這種模式實現了乙個表示式介面,該介面解釋乙個特定的上下文。這種模式被用在 sql 解析 符號處理引擎等。給定乙個語言,定義它的文法表示,並定義乙個直譯器,這個直譯器使用該標識來解釋語言中的句子。...