直譯器模式

2021-09-23 10:41:42 字數 914 閱讀 3957

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

直譯器能夠提供乙個介面,該介面可以連線上下文,並且可以將文章用自己編譯的語言來解釋。

當某件乙個經常出現,且發生頻率很高,而且內容大致都相同,則可以通過直譯器來將內容進行翻譯,從而解決問題

通過建立相應的語言來解釋原本的問題

構造一種相應的語言,而且需要連線上下文的環境

(1)優點:

可擴充套件,靈活性好

比較好實現

(2)缺點:

很少利用,難以維護

將音符轉化為數字和中文,讓不識譜的人也能夠看懂:

1,你所要轉換的內容:

class typecontext

set

}}

2,直譯器,可以用來連線上下文:

abstract class expression

else

}public abstract void excute(string key, double value);

}

3,各種語言的轉換:

class note : expression

console.write("", note);}}

class scale : expression

console.writeline("", scale);

}}

4,客戶端**:

static void main(string args)

expression.interpret(mu);}}

catch (exception ex)

console.read();

}

直譯器模式

include include include include include using namespace std 直譯器模式 給定一種語言,定義它的文法的一種表示,並定義乙個直譯器 該直譯器使用該表示來解釋語言中的句子 類似於程式語言或者指令碼 假設情景是乙個指令碼控制系統 wasd上下左右方...

直譯器模式

1 模式定義 直譯器模式 interpreter pattern 定義語言的文法,並且建立乙個直譯器來解釋該語言中的句子,這裡的 語言 意思是使用規定格式和語法的 它是一種類行為型模式。2 模式結構 直譯器模式包含如下角色 abstractexpression 抽象表示式 terminalexpre...

直譯器模式

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