generated by the mw compiler
namespace hellomw.firstlook
public global::system.activities.outargumentturns
private global::system.activities.activity __getimplementation__()
));var __v__1 = new global::system.activities.statements.dowhile();
__v__1.condition = new global::metahwfuncactivity(__ctx__ => guess.get(__ctx__) != target.get(__ctx__));
));__v__2.activities.add(new global::metahwactionactivity(__ctx__ =>
));var __v__3 = new global::system.activities.statements.if();
__v__3.condition = new global::system.activities.inargument(new global::metahwfuncactivity(__ctx__ => guess.get(__ctx__) != target.get(__ctx__)));
var __v__4 = new global::system.activities.statements.if();
__v__4.condition = new global::system.activities.inargument(new global::metahwfuncactivity(__ctx__ => guess.get(__ctx__) < target.get(__ctx__)));
__v__4.then = new global::metahwactionactivity(__ctx__ =>
);__v__4.else = new global::metahwactionactivity(__ctx__ =>
);__v__3.then = __v__4;
__v__2.activities.add(__v__3);
__v__1.body = __v__2;
}__v__0.activities.add(__v__1);
__vroot__ = __v__0;
}return __vroot__;
}private global::system.func__implementation__;
protected override global::system.funcimplementation
set}
}public sealed class prompt : global::system.activities.activity
public global::system.activities.inargumenttext
private global::system.activities.activity __getimplementation__()
));__v__0.activities.add(new readint().initialize(__activity2__ =>
));__vroot__ = __v__0;
return __vroot__;
}private global::system.func__implementation__;
protected override global::system.funcimplementation
set}
}}
這就是元程式設計,把語法糖解糖的過程,即把高階抽象的描述翻譯成低階具體的實現。我覺得,「語法糖」是個膚淺的認識,實際上,多數的「語法糖」都涉及到語義,不僅僅是簡單的語法轉換。元程式設計的另乙個例子,早期某些c++編譯器能將c++**翻譯成等價的c**,即c++是門元程式語言,它是c的「語法糖」。
日光之下,並無新事。元程式設計是個非常「古老」的概念,但在每個「時代」它都能玩出耳目一新的花樣。
欲知後事如何,請聽下回分解。
C 之 模板元程式設計(一)
利用模板特化機制實現編譯期條件選擇結構,利用遞迴模板實現編譯期迴圈結構,模板元程式則由編譯器在編譯期解釋執行。模板是c 支援引數化多型的工具,使用模板可以使使用者為類或者函式宣告一種一般模式,使得類中的某些資料成員或者成員函式的引數 返回值取得任意型別。模板是一種對型別進行引數化的工具 通常有兩種形...
PE結構擴充套件與元資料
net對pe結構的擴充套件主要體現在.text節上,儲存了msil 元資料 各種特殊的.net結構。text變樣後 輸入表 clr頭 msil 和可選的異常處理表 強名稱的hash資料 元資料 託管資源資料 可選 非託管資源資料 可選 執行時啟動資訊 clr頭 定義在sdk安裝目錄的corhdr.件...
c 模板元程式設計學習筆記(一)
習題 2 1.編寫乙個三元元函式replace type,它接受乙個任意復合型別c作為其第乙個引數,並將c中出現的type x替換為y typedef replace type type t1 int typedef replace type int const 10 int const,long ...