直譯器模式

2021-09-06 18:01:09 字數 1644 閱讀 1373

什麼是直譯器模式?

直譯器模式:擬定一種 「語言」,定義該語言文法的一種表示,並定義一種直譯器,這個直譯器使用該表示文法來解釋語言中的句子。

直譯器模式**示例:

(1)**示例1:

1 #include 2 #include 3 #include 

4using

namespace

std;56

class

context;78

class

abstractexpression9;

1314

class terminalexpression : public

abstractexpression

1521

};22

23class nonterminalexpression : public

abstractexpression

2430

};31

32class

context33;

3738

intmain()

3951

52return0;

53}54//

result:

55/*

56終端直譯器

57非終端直譯器

58終端直譯器

59終端直譯器

60*/

view code

(2)**示例2:

1 #include 2 #include 3 #include   45

using

namespace

std; 67

class

context817

18int getvalue(string

key)

1922

};23

24class

abstractexpression25;

2930

class addnonterminalexpression : public

abstractexpression

3142

43int

interpreter(context context)

4447

};48

49class subtractnonterminalexpression : public

abstractexpression

5061

62int

interpreter(context context)

6366

};67

68class terminalexpression : public

abstractexpression

6976

77int

interpreter(context context)

7881

};82

83int

main()

84

view code

應用通常當乙個語言需要解釋執行,並且你可以將語言中的句子表示成為乙個抽象的語法樹時,可以使用直譯器模式。

good   good   study,  day   day  up.

順序   選擇  迴圈  總結

直譯器模式

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

直譯器模式

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

直譯器模式

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